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]!='