程序当中一共有三个错误。第一,定义的浮点数变量sum没有初始值,应该在定义的时候给他赋初始值为0。第二,循环体没有加花括号,导致只有读入语句是执行循环的,而下面的累加到sum的语句则要到循环结束以后才执行一次,起不到累加的作用。第三,格式化输入语句scanf在给float类型输入时是不能指定小数位数的(最多只能限定总位数),应该使用%f格式符。
我改成了这个样子,运行了一下是对的,请问接下来该怎么求平均分呢,要求平均分就必须要知道数组有几个数满足90分的条件,我该如何知道呢,求大神帮我解答一下
int i,count = 0;//添加一个变量计数
float a[10], avg = 0, sum = 0;//avg初始化,未初始化的话如果全是低于90分结果会溢出
printf("请输入10位学生的分数\n");
for (i = 0; i <= 9; i++) {
scanf("%f", &a[i]);
if(a[i]<90)
continue;
sum += a[i];
count++;
}
avg = sum / count;//计算平均值
printf("sum:%.2f,avg:%.2f", sum,avg);
return 0;
C语言输入一个数组后将数组里的数相加,为什么输出结果不对?_百度知 ...
程序当中一共有三个错误。第一,定义的浮点数变量sum没有初始值,应该在定义的时候给他赋初始值为0。第二,循环体没有加花括号,导致只有读入语句是执行循环的,而下面的累加到sum的语句则要到循环结束以后才执行一次,起不到累加的作用。第三,格式化输入语句scanf在给float类型输入时是不能指定小数...
c语言中对数组求和为什么小数部分总是不对
这个很好说,因为很多编程语言都是这样的,比如java。因为计算机时2进制,而我们一般用十进制,所以他们都是把数字转换为2进制,然后通过与或非的逻辑实现,来计算2进制结果,再换回10进制。但是整数还好说,但是小数就有难处了。比如0.06就不能完全转化为10进制,那么就必须舍去一部分尾巴。所以以Java为...
求助,c语言新手,我想给数组挨个赋值然后输出,为什么出错了?
你的reserve函数错了,你给这个函数定义的形参,有数组(iArray[ ])和整型(iCount)但是你在main函数中却没有给它传递这个参数进去。你的意思应该是把所有数组的reserve写在那个函数里,你应该这么写。include <cstdio>void ReverseArray(){ int iCount; printf("请输入数据个数:"); scanf(...
如图,C语言输出的原数组显示为什么与输入的值不同啊?
第一个printf里的输出的内容不对 printf("%7d",a[i]);你要输出的是数组元素,不是元素的地址
C语言,一维数组已经赋值,然后再赋值的话,为什么就报错了呢?附图如下...
你第一次赋值就不对,这种赋值方式只能在声明初始化时,不能这样,数组是不能整体赋值的。int a[3]={1,2,3};这样是可以的,而像你那样不对。下面的for循环才是正确的赋值方式。
c语言 结构体数组输入后无法输出正确数据,float数据总是0.0000...
你的struct定义里是这么写的float score[3]; 这是数组的意思,应该是float score;因为代码太乱,也没法给你验证了,你把[3]删掉试试看
在我编写的C语言中,数组输出的结果为什么都为0?望大神求解!
你要是输出元素地址,就把%lf改成%d 、%x、%p 你要是输出元素的值,就把&去掉 看你是输出元素值,那么就把&取地址符去掉
C语言数组的输入问题,同时输入字符,和数字,却输出不了?
第二个scanf不要加\\n 另外 getchar放到循环外.\/*Zhangfen 93 91 89Qiudong 60.5 72 75Ningqiu 50 60.5 63Baoshi 85 91.5 50Yulu 80 81 82.5*\/#include<stdio.h>int main(){char name[5][20];double a[5][3];\/\/三个分数, 定义a 5 3for(int i=0;i<=4;i++){scanf("%s...
c语言对数组执行加法?
就能得到正确的结果。你说的“arr指向数组的首地址”是正确的,但“对arr+5后不是相当于arr[6]了吧”是错误的,因为arr+5是元素arr[5]的地址。但即使这样,如果自定义函数不加arr[5](像上面的例子),程序是能够得到正确的结果的。但是,如果不这样写,可能会造成这样数组下标越界。这取决于函数...
C语言 往数组插入一个数后数组长度加1并输出数组
void Scan_Data(SqList L){\/\/输入数据 int i=0; do{ scanf("%d",&L->elem[i]); \/\/\/ (L->last)++; (L->length)++; }while(L->elem[i++]!='#'); \/\/\/}