C语言问题求解 以下程序的输出结果是 。 main() { char c1=’6’

C语言问题求解
以下程序的输出结果是 。
main()
{
char c1=’6’,c2=’0’;
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
答案是6,0,6,102 为什么?c1+c2不是6吗?

程序基本没有问题啊。我修改优化了一下,代码如下:
#include<stdio.h>int main(void){ int choice,i; //double price; // 这里不用price了,优化掉了 for(i=1;i<=5;i++) { printf("[1]apples \n"); printf("[2]pears \n"); printf("[3]oranges \n"); printf("[4]grapes \n"); printf("[0]exit \n"); printf("Enter choice: "); scanf("%d",&choice); if(choice==0) break; switch(choice) { case 1: printf("[1]apple price=3.0\n\n"); // 直接将结果显示出来了,无需price中转,也不用在后面去写if else语句了。 break; case 2: printf("[2]pears price=2.5\n\n"); break; case 3: printf("[3]oranges price=4.1\n\n"); break; case 4: printf("[4]grapes price=10.2\n\n"); break;        //后面的defalut ,可以不要了。因为不是这里面的水果,根本就不用显示。 } } printf("Thanks \n"); return 0; }
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-04
因为 c1、c2 赋的值是字符,不是数字 。把char c1=’6’,c2=’0’; 改成 char c1 = 6, c2 = 0; 就可以了本回答被网友采纳
第2个回答  2014-11-13
%d是打印字符的ASII值追答

其中字符0的值为48,6为54,和为102

追问

谢谢!

本回答被提问者采纳
第3个回答  2019-11-09
%d为其表示的十进制数
相似回答