本文共 928 字,大约阅读时间需要 3 分钟。
室友畅的c语言作业。
基本思路:a[]用来存放数据,b[]用来存放a[]中每个数据的出现次数,注意当一个数据出现多次时,只有第一次出现时对应的b[]是次数,剩下的都是1。这样减少判断次数。NUM记录众数的出现次数,FLAG记录众数的出现位置。考虑到多个众数的情况,引入c[],记录与众数出现次数相同的次数的数据。 源代码如下:#include#define N 8int a[N+1],b[N+1],c[N+1];int i,j;int NUM,FLAG;int main(){ for (i = 0; i < N; i++) b[i] = 0; printf("Please input a array.\n"); for (i = 0; i < N; i++) scanf_s("%d",&a[i]); for (i = 0; i < N; i++) { for (j = i; j < N; j++) if (a[i] == a[j]) b[i]++; } NUM = b[0]; for (i = 0; i < N; i++) { if (NUM <= b[i]) { NUM = b[i]; FLAG = i; } } for (i = 0; i < N; i++) c[i] = 0; c[FLAG] = a[FLAG]; for (i = 0; i < N; i++) { if (NUM == b[i]) c[i] = a[i]; } printf("Mode is:"); for (i = 0; i < N; i++) if (c[i]!=0) printf("%d&",c[i]); printf("\b \n"); return 0;}
转载地址:http://yvohi.baihongyu.com/