关于这个问题,感觉昨天的想法太low了,今天看见同学,
用if完成这个程序,程序写的非常单调而且繁琐,定义是
十个变量,输出是个printf.但是学完数组,感觉瞬间高大
上许多,而且省时省事。
定义一个一维数组,a[10],将0,1,2,3,4,5,6,7,8,9分别放在
数组中,利用for循环计算每个数字出现的个数,而不需要
if的判断。
程序如下:
#include<stdio.h>
int main()
{
int num;
scanf("%d",&num);
int a[10]={0};
int i;
int temp;
for (i = 0; i <= num; i++)
{
if(i == 0) // 这里i必须要等于1才能执行while的循环,因为i=0,会跳过while的循环
{
a[i]++;
continue;
}
temp = i;
while(temp)
{
a[temp%10]++; //计数
temp = temp / 10; //temp=0跳出循环,比如当temp=i=12时,第一次取余2,对2计数,然后12/10=1,再循 环,取余等于1,对1计数,载1/10=0,跳出循环。
}
}
for (i = 0; i < 10; i++)
{
printf("a[%d]: %4d\n",i,a[i]);//输出
}
return 0;
}
数组是一个很神奇的东西,感觉c语言学习数组,之后,之前
学到的都是皮毛,现在的许多算法都有用到数组。