看不懂代码#includemain(){int i,c[10];char s[80];printf("input a string:\n");gets(s);for(i=0;i='0'&&s[i]

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 09:32:45

看不懂代码#includemain(){int i,c[10];char s[80];printf("input a string:\n");gets(s);for(i=0;i='0'&&s[i]
看不懂代码
#include
main()
{int i,c[10];
char s[80];
printf("input a string:\n");
gets(s);
for(i=0;i='0'&&s[i]

看不懂代码#includemain(){int i,c[10];char s[80];printf("input a string:\n");gets(s);for(i=0;i='0'&&s[i]
#include<stdio.h>//程序目的是统计一个字符串中每个数出现的次数,请看截图示例
main()
{
\x05int i,c[10];
    char s[80];
    printf("input a string:\n");
\x05gets(s);//输入一个字符串
\x05for(i=0;i<10;i++)//将c数组的元素值初始化为0
    \x05c[i]=0;
\x05for(i=0;s[i]!='\0';i++)
    \x05if(s[i]>='0'&&s[i]<='9')//找出字符串中的数字
        \x05c[s[i]-48]++;//当数字是比如说1,那么c数组中相对应元素(此时为c[1])就自加1,
\x05\x05 //s[i]-48 其实是ASCII码在做减法,当s[i]是数字(0-9)时,他们对应的ASCII范围为48-57,
\x05\x05//做差的范围恰好是0-9,作为c数组的下标,这样一来当检查到的元素是1时,c[1]自加1,是2时c[2]自加1)
\x05for(i=0;i<10;i++)//输出各数出现的个数
    \x05if(c[i]!=0)
        \x05printf("%c\'numbers %d \n",i+48,c[i]);
}