大一学生学习c语言,有道题是要用for循环存数组每个变量的值,可是怎么都显示0,为什么啊?
我这里测试显示正常。
#include <stdio.h>
int main(void){
int i,n;
float a[100];
double s=0;
printf("请输入购书者单次购买书籍本数:");
scanf("%d",&n);
printf("输入每本书单价:");
for(i=0;i<n;i++){
scanf("%f",&a[i]);
}
for(i=0;i<n;i++){
if(a[i]<=50){
a[i]*=0.8;
}else if(a[i]<=70){
a[i]*=0.7;
}else if(a[i]<=100){
a[i]*=0.6;
}else if(a[i]>100){
a[i]*=0.5;
}
s=s+a[i];
printf("s=%f,a[%d]=%f\n",s,i,a[i]);
}
if(s>=1000){
s*=0.9;
}
printf("%f",s);
printf("\n");
return 0;
}
你定义的s是double类型呀,打印的时候用%lf