关于C语言的数组问题?
#include<stdio.h>intmain(){intx;scanf("%d",&x);doublesum=0;intcnt=0;intnumber[100];wh...
#include <stdio.h>
int main(){
int x;
scanf("%d",&x);
double sum =0;
int cnt =0;
int number[100];
while(x!=-1){
number[cnt] = x;
cnt = cnt+1;
sum = sum +x;
scanf("%d",&x);
}
double average;
average = sum/cnt;
if (cnt >0){
printf("您输入的数的平均数是%.1f",average);
int i;
for(i=0;i<cnt;i++){
if(number[i]>average){
printf("%d ",number[i]);
}
}
}
return 0;
}
输入:1 2 3
结果:平均数是2.03
问题:我的有效值设置的是%.1f,为什么最后的结果精度是两位数了?且为什么结果会是2.03,那个03是怎么出来的? 展开
int main(){
int x;
scanf("%d",&x);
double sum =0;
int cnt =0;
int number[100];
while(x!=-1){
number[cnt] = x;
cnt = cnt+1;
sum = sum +x;
scanf("%d",&x);
}
double average;
average = sum/cnt;
if (cnt >0){
printf("您输入的数的平均数是%.1f",average);
int i;
for(i=0;i<cnt;i++){
if(number[i]>average){
printf("%d ",number[i]);
}
}
}
return 0;
}
输入:1 2 3
结果:平均数是2.03
问题:我的有效值设置的是%.1f,为什么最后的结果精度是两位数了?且为什么结果会是2.03,那个03是怎么出来的? 展开
4个回答
展开全部
平均数是2.0,3是输出的大于平均数的数。输出没错,只是输出格式的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个输出结束后 用 \n换行
这样两次输出不会在一起了
这样两次输出不会在一起了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看到的2.03是2个printf语句的输出。
保留1小数是2.0。后面那个3是printf("%d",number[i])的输出。
保留1小数是2.0。后面那个3是printf("%d",number[i])的输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询