学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

初级问题,大家近来答下^^

初级问题,大家近来答下^^

#include <stdio.h>
/*统计数字空白付及其他字符出现的次数*/
main()
{
int c,i,nwhite,nother;
int ndigit[10];
nwhite=nother=0;
for(i=0;i<10;i++)
ndigit[i]=0;
while((c=getchar())!=EOF)
if(c>='0'&&c<='9')
++ndigit[c-'0'];
else if(c==' '||c=='\n'||c=='\t')
++nwhite;
else
++nother;
printf("digits=");
for(i=0;i<10;++i)
printf(" %d",ndigit[i]);
printf(",white space=%d,other=%d\n",nwhite,nother);
}

程序中++ndigit[c-'0']是什么意思?
如果输入一个数字9那么这句就是++ndigit[9-'0']
就是++ndigit[9]是吗
如果下个数字是8
那就是++ndigit[8]
看起来觉的不对,可能我理解不对
高手帮我讲解一下
谢谢

TOP

如果输入的是9,则那句就是++ndigit['9'-'0']
在c里面,字符可以相加减,我认为你说的应该是对的,
希望我没说错
哈哈!!

TOP

差不多,请查看ACSII字符表。
九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东

TOP

发新话题