C语言 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.
C语言输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为0元素统计字符"0"的个数,下标为1的元素统计字符"1"的个数,...请问怎么做我还没学到...
C语言 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为0元素统计字符"0"的个数,下标为1的元素统计字符"1"的个数,... 请问怎么做
我还没学到字符串,能否不用这个做一个 展开
我还没学到字符串,能否不用这个做一个 展开
1个回答
展开全部
#include<stdio.h>
main(){
char c,*str;
int i,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
while(*str){//字符串*str不为空,循环继续;
c=*str;//把从*str数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
*str++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
字符串就是字符数组,只是表达方式不太一样而已,给你改写一下:
#include<stdio.h>
#define N 100 //字符数组最长为100
main(){
char c,str[N];
int i,j,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
j=0;
while(str[i]&&j<N){//字符数组元素str[i]不为空,循环继续;
c=str[i];//把从str[]数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
j++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
main(){
char c,*str;
int i,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
while(*str){//字符串*str不为空,循环继续;
c=*str;//把从*str数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
*str++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
字符串就是字符数组,只是表达方式不太一样而已,给你改写一下:
#include<stdio.h>
#define N 100 //字符数组最长为100
main(){
char c,str[N];
int i,j,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
j=0;
while(str[i]&&j<N){//字符数组元素str[i]不为空,循环继续;
c=str[i];//把从str[]数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
j++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询