我写了一个代码,但我不知道为什么它不起作用并打印“beterek”。 它也不会通过我的while循环而不会调用我的凸轮功能... 请帮忙... 以下代码是我的代码的一部分:
int main()
{
int a[100], b[100], diff=0, m=0, n=0, temp[100], s=0,z,max=0;
printf("Enter binary number 1: ");
scanf("%d", &a[100]);
printf("Enter binary number 2: ");
scanf("%d", &b[100]);
while(a!='\0')
m++;
while(b!='\0')
n++;
if(m>n)
{
printf("beterek");
max = m;
diff = m - n;
for(s=0; s<=diff; s++)
temp[s] = 0;
for(z=s; z<=n; z++)
temp[s] = b[s];
cal(a,temp);
}
else
{
printf("beterek");
max = n;
diff = n - m;
for(s=0; s<=diff; s++)
temp[s] = 0;
for(z=s; z<=m; z++)
temp[s] = a[s];
cal(b, temp);
}
}
答案 0 :(得分:1)
使用fgets读取输入字符串,直到达到换行符(这意味着直到用户点击进入)。然后将每个字符转换为int。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a[100], b[100], diff=0, m=0, n=0, temp[100], s=0,z,max=0;
int iIndex=0;
char cString[100];
int i=0;
char* cpString=NULL;
memset(&cString,0,100);
printf("Enter binary number 1: ");
//scanf("%s",cString);
fgets(cString,sizeof(cString),stdin);
cpString=cString;
while(*cpString!='\n'){
a[iIndex]=*cpString-'0'; // this converts char to int
cpString++;
iIndex++;
}
printf("Count of elements in a : %d\n", iIndex);
for (i=0;i<iIndex;i++){
printf("%d\n",a[i]);
}
return 0;
}
输出:
Enter binary number 1: 1101010
Count of elements in a : 7
1
1
0
1
0
1
0
请确保检查输入的数字是否为有效的二进制数字!