为什么这个数组赋值不是asc码值,而是1?
#include <stdio.h>int main()
{
int i = 0, cp, c, sum, a, b;
printf("请输入第一个字符串:\n");
while(a = getchar() != '\n')
{
printf("%d",a);
i++;
}
printf("请输入第二个字符串:\n");
i = 0;
while(b = getchar() != '\n')
{
printf("%d",b);
i++;
}
printf("请输入比较的字符数:\n");
scanf("%d",&cp);
for(i = 0;i < cp;i++)
{
c = a - b;
sum += c;
}
printf("比较的结果是%d",sum);
} 本帖最后由 昨非 于 2020-10-13 17:41 编辑
误答
//a = getchar() != '\n' 这条语句先作判定,然后再赋值,因此当 getchar() != '\n'为真时,总是返回1,所以数组元素的值总是1
//加上括号应该就没问题了。
while((a = getchar()) != '\n')
{
printf("%d",a);
i++;
}
printf("请输入第二个字符串:\n");
i = 0;
while((b = getchar()) != '\n')
{
printf("%d",b);
i++;
} 你们的运作快
#include <stdio.h>
int main()
{
int i = 0, cp, c, sum;
char ch, a, b;
printf("请输入第一个字符串:\n");
while((ch = getchar())!= '\n')
{
a = ch;
printf("%d",a);
i++;
}
printf("请输入第二个字符串:\n");
i = 0;
while((ch = getchar()) != '\n')
{
b =ch;
printf("%d",b);
i++;
}
printf("请输入比较的字符数:\n");
scanf("%d",&cp);
for(i = 0;i < cp;i++)
{
c = a - b;
sum += c;
}
printf("比较的结果是%d",sum);
}
页:
[1]