C语言高手进来帮个忙
帮忙编一下下面的两个程序谢了1、请编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参...
帮忙编一下下面的两个程序谢了
1、 请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n 给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even 返回偶数之和。 例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。
2, 编一函数*match,在一个整型数组中查找输入的一个整数,找到后把该数置换为0。
提示:*match函数的返回值是地址值,所以在主函数数中要用取内容运算符“*”将数值0放入该单元,又因为在这10个元素中如果查找不到的话就会返回a[10]的地址,所以主函数中a的大小应定义为11。 展开
1、 请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n 给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even 返回偶数之和。 例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。
2, 编一函数*match,在一个整型数组中查找输入的一个整数,找到后把该数置换为0。
提示:*match函数的返回值是地址值,所以在主函数数中要用取内容运算符“*”将数值0放入该单元,又因为在这10个元素中如果查找不到的话就会返回a[10]的地址,所以主函数中a的大小应定义为11。 展开
3个回答
展开全部
题1:
#include<stdio.h>
int fun(int *a,int n,int *odd,int *even)
{
int i,Sodd=0,Seven=0;
for(i=0;i<n;i++)
{
if(a[i]%2==0) Sodd=Sodd+a[i];
else Seven=Seven+a[i];
}
*odd=Sodd;
*even=Seven;
return 0;
}
int main()
{
int i,n,a[100];
int odd=0,even=0;
puts("Please input n:\n");
scanf("%d",&n);
puts("Please input arrow element:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
fun(a,n,&odd,&even);
printf("The sum of odd is %d.\nThe sum of even is %d.\n",odd,even);
}
题2:
#include<stdio.h>
int *match(int n,int *a)
{
int i,tap=0;
for(i=0;tap==1||i<10;i++)
{
if(a[i]==n)
{
tap=1;
a[i]=0;
break;
}
}
if(tap==0) return &a[10];
else return 0;
}
int main()
{
int i,n,a[11],*sp;
printf("Please input arrow element:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
puts("Please input element you want to serch:\n");
scanf("%d",&n);
puts("The element you inout is:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
sp=match(n,a);
printf("a[10]'s adress is %d.\n",sp);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
#include<stdio.h>
int fun(int *a,int n,int *odd,int *even)
{
int i,Sodd=0,Seven=0;
for(i=0;i<n;i++)
{
if(a[i]%2==0) Sodd=Sodd+a[i];
else Seven=Seven+a[i];
}
*odd=Sodd;
*even=Seven;
return 0;
}
int main()
{
int i,n,a[100];
int odd=0,even=0;
puts("Please input n:\n");
scanf("%d",&n);
puts("Please input arrow element:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
fun(a,n,&odd,&even);
printf("The sum of odd is %d.\nThe sum of even is %d.\n",odd,even);
}
题2:
#include<stdio.h>
int *match(int n,int *a)
{
int i,tap=0;
for(i=0;tap==1||i<10;i++)
{
if(a[i]==n)
{
tap=1;
a[i]=0;
break;
}
}
if(tap==0) return &a[10];
else return 0;
}
int main()
{
int i,n,a[11],*sp;
printf("Please input arrow element:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
puts("Please input element you want to serch:\n");
scanf("%d",&n);
puts("The element you inout is:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
sp=match(n,a);
printf("a[10]'s adress is %d.\n",sp);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
展开全部
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)
*odd+=*(a+i);
else
*even+=*(a+i);
}
}
int *match(int *a, int value,int n)
{
int i;
int *readd=a+n-1;
for(i=0;i<n;i++)
{
if(*(a+i)==value)
{
*(a+i)=0;
readd=a+i;
}
}
return readd;
}
{
int i;
*odd=0;
*even=0;
for(i=0;i<n;i++)
{
if(*(a+i)%2)
*odd+=*(a+i);
else
*even+=*(a+i);
}
}
int *match(int *a, int value,int n)
{
int i;
int *readd=a+n-1;
for(i=0;i<n;i++)
{
if(*(a+i)==value)
{
*(a+i)=0;
readd=a+i;
}
}
return readd;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(int *a,int n,int *odd,int *even)
{
int i;
for (int i=0;i<n;i++,a++)
{
if ( (*a)% 2 == 0)(*dd)++;else (*even)++
}
}
int *match(int *a,int n,int f)
{
int i;
for (int i=0;i<n;i++,a++)
{
if (*a==f)
{
*a=0;
return a;
}
}
return a;
}
{
int i;
for (int i=0;i<n;i++,a++)
{
if ( (*a)% 2 == 0)(*dd)++;else (*even)++
}
}
int *match(int *a,int n,int f)
{
int i;
for (int i=0;i<n;i++,a++)
{
if (*a==f)
{
*a=0;
return a;
}
}
return a;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询