#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
float avg(float *a){
float sum=0;
int i=0;
for(i=0;i<5;i++){
//sum+=*(a+i);
sum+=*a+i; 每次都是a[0]+i,,,,,
printf("sum=%f\n",sum);
}
return sum/5;
}
int main(){
float scores[5],average;
int i;
printf("input 5 numbers:");
for(i=0;i<5;i++){
scanf("%d",&scores[i]);
scanf("%f",&scores[i]);
}
for(i=0;i<5;i++){
printf("%5.3f\n",scores[i]);
}
average=avg(scores);
printf("平均值是:%f\n",average);
system("pause");
return 0;
}
input 5 numbers:2 4 6 8 10
2.000
4.000
6.000
8.000
10.000
sum=2.000000
sum=5.000000
sum=9.000000
sum=14.000000
sum=20.000000
平均值是:4.000000
请按任意键继续. . .
#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
float avg(float *a){
float sum=0;
int i=0;
for(i=0;i<5;i++){
sum+=*(a+i); ///先后累加元素值
//sum+=*a+i;
printf("sum=%f\n",sum);
}
return sum/5;
}
int main(){
float scores[5],average;
int i;
printf("input 5 numbers:");
for(i=0;i<5;i++){
scanf("%d",&scores[i]);
scanf("%f",&scores[i]);
}
for(i=0;i<5;i++){
printf("%5.3f\n",scores[i]);
}
average=avg(scores);
printf("平均值是:%f\n",average);
system("pause");
return 0;
}
input 5 numbers:2 4 6 8 10
2.000
4.000
6.000
8.000
10.000
sum=2.000000
sum=6.000000
sum=12.000000
sum=20.000000
sum=30.000000
平均值是:6.000000
请按任意键继续. . .
win7 64 vs2010 下
4) *p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。
5) *(p++)与*(++p)作用不同。若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1]。
6) (*p)++表示p所指向的元素值加1。
7) 如果p当前指向a数组中的第i个元素,则:
- *(p--)相当于a[i--];
- *(++p)相当于a[++i];
- *(--p)相当于a[--i]。