C语言:以下程序是输出26个大写字母和它们的ASCII代码,每行输出两组数据

#include "stdio.h"
main()
{char ch;
int i;
for(i=0;i<26;i++)
{ch=65+i;
if(i%2==0) printf("\n");
printf("c=%c ascii=%d",ch,ch);
}
putchar('\n');
}
问:1、为什么i<26(我认为应该是i<=26)
2、 printf("c=%c ascii=%d",ch,ch) 为什么后面两个都是ch ?

26个字母,从0到25,正好26个,如果是《=,就是27个了,i只是个循环控制变量,控制循环的次数而已。

printf("c=%c ascii=%d",ch,ch) ,两个都是ch,因为输出的是同一个变量,只是两个格式显示而已,一个是字符类型%c,一个是整型%d。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-07
i<26的问题楼上说的已经很清楚了,c语言中经常这样做,因为数组也是从0开始的,这样做很方便。
ch是字符型变量,%c表示输出字符,%d表示输出一个整数,会自动把字符型变量的ascii码转换成整形输出
第2个回答  2011-09-09
简单说明:
ch=i+65;//A的ascii是65,i从0开始,循环的第一个ch=65='A'
if(i%2==0) printf("\n");//i%2==0表示i能被2整除就输出\n,\n表示换行
prinf(" c=%c ASCII=%d",ch,ch);//%c以字符输出 %d以数字输出
第3个回答  2011-09-08
0 ~ 25 刚好是26个字母 ch,ch 是想输出字母,和字母对应的ascii 码是多少。。 而且你这个程序应该有问题的,ch没有初始化。
第4个回答  2011-09-09
1,在ascii中 65为A,90为Z,两者相减为26?
2,虽然输出对象都是ch,但请注意"c=%c ascii=%d"这个有何不同?
相似回答