一、 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:Jerey_Jobs Version:0.1 Date: Description: Funcion List: *****************************************************/ #include <stdio.h> int stat(int a[],int n,int c[][2]); int main( ) { int i = 0; int n = 20; int a[20]; int c[10][2]; printf("Please input twenty numbers:\n"); while(n > 0) { scanf("%d",&a[i]); n--; i++; } n = 20; stat(a,n,c); return 0; } int stat(int a[],int n,int c[][2]) { int j; int i = 0; int k = 0 ; //不同整数的个数 int b[n / 2]; while(i < 20) //依次将a中字符两两组合为二位整数,放在b中 { b[i / 2] = a[i] * 10 + a[i + 1]; i += 2; } for(i = 0;i <= 9;i++) { c[k][1] = 1; for(j = i + 1;j <= 9;j++) { if(b[i] == b[j]) { c[k][1]++; b[j] = -1; //把b中重复的赋为-1 } } if( b[i] >= 0 ) //没有和前面重复,赋为c中下一位的值 { c[k++][0] = b[i]; } } for(i = 0;i < k;i++) { for(j = 0;j < 2;j++) { printf("%d ",c[i][j]); } printf("\n"); } return k; // printf("%d",a[i][0]); }
二、编写函数fun(int *a, int n, int *odd, int *even),功能是:求出数组a[]中所有奇数之和以及所有偶数之和。并利用指针odd返回奇数之和,利用指针even返回偶数之和。 例如:a[]的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:Jerey_Jobs Version:0.1 Date: Description: Funcion List: *****************************************************/ #include <stdio.h> int fun(int * a,int n,int * odd,int * even); int main() { int n,p,odd,even; int a[100]; printf("Please input the number:\n"); scanf("%d",&n); //输入数字的个数 printf("Please input the number:\n"); p = n; while(n > 0) { scanf("%d",&a[n-1]); n--; } n = p; fun(a,n,&odd,&even); return 0; } int fun(int * a,int n,int * odd,int * even) { int i; *odd = 0; *even = 0; for(i = 0;i < n;i++) { if(a[i] % 2 == 0) *even += a[i]; else *odd +=a[i]; }
printf("The sum of odd numbers is %d.\n",*odd); printf("The sum of even numbers is %d.\n",*even);
return *odd,*even; }
