想法
想法1:%最后一位数字,遍历找出相同数字,并记下个数;/ 再次重复上述操作;
想法2:定义一个从0-9的数组,遍历;
思路
按照想法二来做
(1):定义两个数组,一个是正整数N,另一个是从0-9的数组;
(2):运用指针知识;
(3):循环k次(即N的个数次),使用switch-case,结合0-9的数组,将0-9的个数分别赋给这个数组;
(4):按条件输出;
程序
#include
int main()
{
char n[1001];
int a[10]={0},i;
scanf("%s",n);
char* d=n; //(1)(2)
while(*d)
{
switch(*d){
case '0':a[0]++;break;
case '1':a[1]++;break;
case '2':a[2]++;break;
case '3':a[3]++;break;
case '4':a[4]++;break;
case '5':a[5]++;break;
case '6':a[6]++;break;
case '7':a[7]++;break;
case '8':a[8]++;break;
case '9':a[9]++;break;
}
d++;
}//(3)
for(i=0; i<10; i++)
{
if(a[i]>0)
printf("%d:%d\n",i,a[i]);
}//(4)
return 0;
}
反思
写出程序后,再次溢出,指针知识并没有掌握,需要回顾并学习指针知识,相信自己,大方向没有错误,也渐渐形成了自我独立思考问题的能力,并结合别人的想法找出最适合自己的做法,切忌焦躁;