刚学C语言10,自己写了个代码不是很明白

来源:百度知道 编辑:UC知道 时间:2024/06/03 02:28:04
main()
{char a,b,c;
scanf("%c%c",&a,&c);
printf("%d\n",a);
printf("%d\n",c);
b=a+c;
printf("%d",b);
}
这个是我写的代码
假如我输入Aa
屏幕现实的第一个数字是65
第2个数字是97
这两个数都很正常
但第3个数
就是b=a+c即65+97的值为什么会是-94请高手解答
是刚学C语言10天,少个天字

哈哈 因为你的B是CHAR类型的 因为只有 0-127个字符 你看你的65+97=162了 你看看有没有了呢
然后加一位就是 256为 -162是不是等于94呢

看懂没有呢

void main()
{
int iFirNum ,iSecNum,iSum;
printf("请输入第一个整数:");
scanf("%d",&iFirNum);
printf("\n请输入第二个整数:");
scanf("%d",&iSecNum);
iSum=iFirNum+iSecNum;
printf("\n%d + %d=%d\n",iFirNum,iSecNum,iSum);

}
请参考我的!!!!!!!!!

这个b因为是char(1个字节),b=65+97后溢出,值为-94。

晕~~~
你定于C是字符不是整形
你c=a+b是会出错的
输出那个值是不定的值
你把C改为整形就OK了他是吧a+c的字符值赋给B