c语言,一道题 150
运行后无法输入,是数组溢出了吗?怎么弄呀。这道题要求打出1到输入数字n的所有0到9数字个数,比如输入12展开就是123456789101112,就是输出142111111...
运行后无法输入,是数组溢出了吗?怎么弄呀。这道题要求打出 1到输入数字n的所有0到9数字个数,比如输入12展开就是123456789101112,就是输出1421111111,有个最大输入数字为10000的限制
展开
6个回答
展开全部
scanf参数加&
scanf("%d",&n);
这个是你不能输入的原因。 而你的算法,明显是有问题。
解决了这个还会有其他的错误的。 建议再考虑一下,其实可以很简单的。
scanf("%d",&n);
这个是你不能输入的原因。 而你的算法,明显是有问题。
解决了这个还会有其他的错误的。 建议再考虑一下,其实可以很简单的。
追问
改了,还是不能输入,书上的答案教我这么做的,
我不知道怎么破
追答
改后的程序和运行截图发上来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
char num[100];
int i, d[10] = {0};
scanf("%s", num);
for(i=0; num[i]; i++)
d[num[i]-'0']++;
for(i=0; i<10; i++)
printf("%d", d[i]);
return 0;
}
追问
抱歉,看样子我表述错了,比如我输入125,那么前124个数字的所有的位数都要计算进输出中,
你能把代码给我的话,我就选你了
追答
然而你给的例子就是计算输入的数各位数字的出现次数啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入12输出应该是1 5 2 1 1 1 1 1 1 1吧
#include<stdio.h>
int main(){
int n,i;
int count[10]={0};
scanf("%d",&n);
for(i=1;i<=n;i++){
int k=i;
while(k){
count[k%10]++;
k/=10;
}
}
for(i=0;i<9;i++){
printf("%d ",count[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决了这个还会有其他的错误的。 建议再考虑一下,其实可以很简单的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询