#include <stdio.h>
void SUM(int *p,int n);
int main()
{
int a[10],i,*p;
printf("please input 10 int :\n");
for(i=0;i<10;i++)
scanf("%d",a[i]);
p=&a[0];
SUM(p,10);
return 0;
}
void SUM(int *p,int n)
{
int j,sum=0;
printf("the odd is :\n");
for(j=0;j<n;j++)
if(*(p+j)%2!=0)
{
printf("%d",*(p+j));
sum=sum+*(p+j);
}
printf("\n");
printf("sum is %d:\n",sum);
}
解决方案
30
scanf(“%d”,&a[i]);
5
sum的逻辑不对:
for(j=0;j<n;j++)
{
sum += *(p+j);
if(*(p+j)%2!=0)
printf(“%d “,*(p+j));
}
for(j=0;j<n;j++)
{
sum += *(p+j);
if(*(p+j)%2!=0)
printf(“%d “,*(p+j));
}
5
SUM里面的变量j也可以名为i,原因是SUM里的i和main里的i都是局部变量是不同的。