编写函数int stat(int a[],int n,int c[][2])。

来源:互联网 发布:剑桥少儿英语网络课程 编辑:程序博客网 时间:2024/05/16 08:30
a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。
#include <stdio.h>#include<time.h>int stat(int a[],int n,int c[][2]){int i;int j;int k;int num = 0;int count = 0;int b[50];for (i = 0; i < n; i++){if (i % 2 == 0){b[i / 2] = a[i] * 10 + a[i + 1];}}for (i = 0; i < n / 2; i++){for (j = 0; j < i; j++){if (b[j] == b[i]){break;}}if (j == i){c[num][1] = b[i];for (k = i; k < n / 2; k++){ if (b[k] == b[i]){count++;}}c[num][2] = count;num++;count = 0;}}return num;}int main(){int n;int i;int len;int a[100];int c[50][2];srand(time(NULL));printf("Enter an even number(<=100)!\n");scanf("%d",&n);printf("Puts a!\n");for (i = 0; i < n; i++){if ((i != 0) && (i % 2 == 0)){printf(",");}a[i] = rand() % 10;printf("%d ",a[i]);}printf("\n");len = stat(a,n,c);printf("The result!\n");for (i = 0; i < len; i++){printf("number of %2d is %d\n",c[i][1],c[i][2]);}    return 0;}

0 0
原创粉丝点击