数组越界,把i<=n这行代码改为i<n;就可以。
把main函数中的for(i=0;i<=n;i++)都改为for(i=0;i<n;i++)
子函数中的for(i=1;i<=10;i++)不用改
另外,scanf("%d",a[i])也要修改为 scanf("%d",&a[i]),a[i]必须取地址才行
还有就是Swin函数要定义返回值,int Swin(int *p,int n),并且要定义s变量,int i;改为int i,s;
还有Swin函数中的for循环也不对,改为
for(i=1;i<=n;i++)
{
s+=*p;
p++;
}
p++要放在循环内部
int Swin(int *p, int n)
{
int i, s;
for (i = 1; i <= 10; i++)
{
s += *p;
p++;
}
return s;
}
void main()
{
int i, x, a[10];
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
x = Swin(a, 10);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("%d", x);
}
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632