int data[4],sum=0;//存放数值的数组
int *prc_data;//指针
for(int i=0;i<4;i++)
{
printf("data[%d]=",i);
scanf("%d",&data[i]);
}
for(i=0;i<4;data[i]++)
{
*prc_data=&data[0];
sum+=*prc_data;
prc_data++;
}
printf("他的和等于%d\n",sum);
int pinjun;
pinjun=sum/4;
printf("他的平均值等于%d",pinjun);
出不来,有一个错误请各位看一下,谢啦,
#include <stdio.h>
const int len = 4;
int main(int argc,char *argv[])
{
int i, data[len]={0};
int sum=0;
int *p;
float average=0.0;
for(i=0;i< len;++i){
printf("data[%d]=",i);
scanf("%d",&data[i]);
}
for(i=0;i<len;i++){
sum+=data[i];
}
printf("sum=%d\n",sum);
average = sum / len;
printf("average=%f\n",average);
return 0;
}
for(i=0;i<4;data[i]++)
这条语句中,i的值一直没变。变得一直是data[0]。所以相当于死循环。
还有你的程序第二个for语句就没有对的地方。
data[i]++改为i++,后面的for循环再修改
int data[4],sum=0;//存放数值的数组
int *prc_data;//指针
for(int i=0;i<4;i++)
{
printf("data[%d]=",i);
scanf("%d",&data[i]);
}
for(i=0;i<4;i++)
{
prc_data=&data[0];
sum+=*prc_data;
prc_data++;
}
printf("他的和等于%d\n",sum);
int pinjun;
pinjun=sum/4;
printf("他的平均值等于%d",pinjun);
这样子基本就可以成功运行了,但是看得出来题主基本功并不扎实,应该还有一段路要走。
其实,程序本身还很不灵活,在设计上存在着一些大问题,望题主以后再编程之时注意结构的设计。
第二个循环一直在取data[0]中的值
给题主讲下原因,在一个for循环中,对于循环的i是不能用到前一个for循环的i的,各自是独立的。这个是语法问题。