01c語言
⑴ c語言中怎麼在輸出時在個位數前+0例如1顯示成01;5顯示成05
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
⑵ C語言中1和1.0在以下程序中的區別是什麼
1、如果是1,那就是整數,整數除法1/2結果也會是整數,數學中答案是0.5,但是整型的不能保存0,5.因此會直接變成0.後面的計算結果是什麼就不重要了。
2、如果是1.0那麼就表示這個數是float類型,float與int運算,結果會變成float的方式存儲。1.0/2就是0.5.這樣才能得到正確結果。
⑶ c語言01背包問題誰能簡單說下
01背包問題就是有個容量為W的包,然後有一堆的物品(1...n),其中wi、vi分別為第i個物品的重量和價值,現在需要求的就是使得包中所裝的物品盡可能的價值高。那麼這個物品放不放在包中對應取值0
or
1。其演算法為動態規劃,需要證明最優子結構性質。用s[i][j]表示只有前i個物品且包容量為j時所能等到的最大價值,而有遞歸式
s[i][j]=
s[i-1][j],
wi>j
max{s[i-1][j],s[i-1][j-wi]+vi},
wi<=j
s[0][j]=0
1<=j<=W
s[i][0]=0
1<=i<=n
所以不論用什麼語言實現,就是計算上面的式子,最終求得s[n][W],上面的式子很好用遞推實現的,這個是自底向上的,就是兩層for;你也可以用棧實現自頂向下的,這個是記錄式的方法。
以上的W是只考慮整數的。
⑷ 求01變數的C語言演算法
#include <stdio.h>
#define M 8
#define N 256
int arr[M];
int index;
void fun(int num)
{
if ((1 == num) || (0 == num))
{
arr[index++] = num;
return;
}
else
{
index--;
fun(num/2);
arr[index++] = num % 2;
}
}
int main(void)
{
int i, j;
for (i=0; i<N; i++)
{
index = M - 1;
printf("%3d-->", i);
fun(i);
for (j=0; j<M; j++)
{
printf("%d ", arr[j]);
}
printf("\n");
}
}
⑸ c語言中為什麼輸入01出來只是1
你的存儲變數是int型的吧?
數據變數只會存儲實際上的數值
你如果想要輸出01,變數應該是char
⑹ c語言 01字元串轉換為二進制形式,例如字元串「1010101」轉化為二進制1010101
#include<stdio.h>
#include "string.h"
void main ()
{
char buf[10];
int n=0;
strcpy(buf, "1010101");
for(int i=strlen(buf); i>-1; i--)
{
if(buf[i] =='1')
n = 2 * n + 1;
else
n = 2* n;
}
printf("%x", n);
}
⑺ C語言怎麼輸入001 輸出001
1.新建工程,在.cpp文件里輸入如圖所示代碼。
程序清單:
#include "stdafx.h"
#include "stdio.h"
void main()
{
//定義字元數組001
char number[3];
int i=0;
//提示輸入字元數組001
printf("請輸入第一位字元 ");
scanf("%s",&number[0]);
printf("請輸入第二位字元 ");
scanf("%s",&number[1]);
printf("請輸入第三位字元 ");
scanf("%s",&number[2]);
//輸出字元串001
printf("輸出結果:");
for (i=0;i<3;i++)
{
printf("%c",number[i]);
}
printf(" ");
}
⑻ C語言輸入一個01串得到連0和連1最大的個數
#include<stdio.h>
voidmain()
{
inti,j,k,l,M0=0,M1=0;
charN[30];
scanf("%s",N[30]);//有下標就是這個元素了
for(i=0;N[i]!='