#include<stdio.h>intmain(){int arr[]={1,2,2,5,8,8,8};int len =sizeof(arr)/sizeof(arr[0]);int i =0;int j =0;int count =0;for(i =0; i <=9; i++){
count =0;for(j =0; j < len;++j){if(i == arr[j])
count++;}printf("%d : %d\n", i, count);}return0;}
解法二: 利用数组存储元素个数,不用循环嵌套。
#include<stdio.h>intmain(){int arr[]={1,2,2,5,8,8,8};int len =sizeof(arr)/sizeof(arr[0]);int cnt[10]={0};int num =0;for(int j =0; j < len;++j){
num = arr[j];
cnt[num]+=1;}for(int i =0; i <10;++i){printf("%d, %d\n", i, cnt[i]);}return0;}
题目:一个数组中包含的元素从0到9,请输出每个元素出现的个数?解答:解法一:常规解法,两个循环嵌套。#include<stdio.h>int main(){ int arr[] = {1, 2, 2, 5, 8, 8, 8}; int len = sizeof(arr) / sizeof(arr[0]); int i = 0; int j = 0; int count = 0; for (i = 0; i <= 9;