stat(int a[],int n,int c[][2])

来源:互联网 发布:java应用程序开发实例 编辑:程序博客网 时间:2024/06/05 05:10

编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。

#include <stdio.h>#include <time.h>#define N 10int stat(int a[],int n,int (*c)[2]);int main(){    int a[N],c[N/2][2];int i,n;n = N;srand(time(NULL));printf("随机输出数组: \n");for(i = 0;i < N;i++){a[i] = rand() % 100;printf("%5d",a[i]);}printf("\n");printf("输出组合数组数字次数:\n");printf("%d",stat(a,n,c));printf("\n");    return 0;}int stat(int a[],int n,int (*c)[2]){    int i,j,k,sum;int b[N / 2];sum = 0;for(i = 0;i < n;i = i + 2){b[i / 2] = a[i] * 10 + a[i + 1];}printf("输出组合数组:");for(i = 0;i < N / 2;i++){printf("%5d",b[i]);}printf("\n");for(i = 0;i < N / 2;i++){for(j = i + 1;j < N / 2;j++){if(b[i] == b[j]){k++;c[i][0] == c[i][0] + 1;}}}for(i = 0;i <= k;i++){sum = sum + c[k][0];}return sum;}

0 0