程序

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值