一、 编写函数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;
}