编写程序,输入一个正整数n,统计n中不同数字出现的次数。

例如:输入的n 为 100311,则有2个0,3个1,和1个3。输入格式:
输入一个正整数n。
输出格式:
对n中每一种不同的数字,以d:m的格式在一行中输出该位数字d及其在n中出现的次数m。要求按d的升序输出。
【样例输入1】
100311
【样例输出1】
0:2
1:3
3:1

程序为:

#include <stdio.h> 

int main()

{

   int i,num;

   scanf("%d",&num);

   int array[10]={0};

   while(num!=0

   {

       for(i=0;i<10;i++)

       {

           if(num%10==i) array[i]++;

       }

       num/=10;

   }

   for(i=0;i<10;i++)

   {

       if(array[i]!=0)

           printf("%d:%d\n",i,array[i]);

   }

}

扩展资料:

注意事项

public class Test01 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

System.out.println("请输入一串字符串:");

String str = sc.nextLine();

System.out.println("请输入需要查询的字符串:");

String s = sc.nextLine();

int count=0;

for (int i = 0; i < str.length(); i++) {

if(str.indexOf(s)==i){

str = str.substring(i+1,str.length());

count++;

}

}

System.out.println("共出现了"+count + "次"); 

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-12
#include <stdio.h>

int main()
{
   int i,num;
   scanf("%d",&num);
   int array[10]={0};
   while(num!=0)
   {
       for(i=0;i<10;i++)
       {
           if(num%10==i) array[i]++;
       }
       num/=10;
   }
   for(i=0;i<10;i++)
   {
       if(array[i]!=0)
           printf("%d:%d\n",i,array[i]);
   }
}

本回答被提问者采纳
相似回答