#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都是局部变量是不同的。