大一C语言简单编程题

题目是:编程计算一下,从1~100之间,0~9十个数字各出现了几次。 我想问问这个代码错在哪了呀 #include int main() { int count=0,n; for(int i=0;i<=100;i++) { for(n=1,count<100;n<=9;n++) {if(0==i%n||n==i/10) count++; printf("0到100之间%d出现的次数为%d\n",n,count); } if(0==i%10) count++; printf("0到100之间0出现的次数为%d\n",count); } return 0; }

#include<stdio.h>

int main() {
    int a[10]={0};
    for(int i=1;i<=100;i++) {
        int n=i;
        do {
            a[n%10]++;
        } while ((n/=10)!=0);
    }
    for(int i=0;i<10;i++)
        printf("1到100之间%d出现的次数为%d\n",i,a[i]);
    return 0;
}

 

①缺少<iostream>

②for循环前面用了中文分号

③内层循环应该在外边,外层循环应该在里面

。。。。

 

代码已更改

#include <iostream>      
int main()
{
	int count = 0, n;
	
		for (n = 0; n <= 9; n++)
		{
			for (int i = 1; i < 100; i++)
			{
				if (i >= 10 && i / 10 == n) {
					++count;
				}
				if( i % 10 == n) {
					++count;
				}
				
				
			}
			//100的特殊情况
			if (n == 0) {
				count += 2;
			}
			if (n == 1) {
				++count;
			}

			printf("0到100之间%d出现的次数为%d\n", n, count);
			count = 0;
		} 
		return 0;
}

 

建议使用一个数组存放每个数字出现的次数,然后用取余的方法计算,用一个switch case结构

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632