c - 我给我的 %f 的输入没有保存
问题描述
GradeOne 和 secondGrade 不保存我给出的数字。所以我不能得到平均值,因为总是以 (0 + 0)/2 的除法结束,有人可以帮我吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int students;
char name[50];
double gradeOne, secondGrade, classAverage = 0, average = 0;
for(students = 1;students <= 15; students++){
printf("Tell me Your name: \n");
fflush(stdin);
scanf("%[^\n]s", &name);
//saves name
printf("Tell me your first grade: \n");
scanf("%f", &gradeOne);
printf("Tell me your second grade: \n");
scanf("%f", &secondGrade);
//saves grade
printf("\n========================================\n");
printf("Student: %s\n", name);
printf("First Grade: %3.2f \nSecond Grade: %3.2f \n", gradeOne, secondGrade);
printf("%f", average);
printf("\n========================================\n");
average = (gradeOne + secondGrade)/2;
//creates average
printf("Average of the %d student: %3.2f",students, average);
classAverage += average;
//creates class average
}
classAverage = classAverage / (students - 1);
printf("The class average was: %3.2f", classAverage);
return 0;
}
解决方案
%f
inscanf()
用于阅读float
。你应该%lf
用来阅读double
。
请注意,您应该使用%f
inprintf()
进行打印 double
。较新的规范允许%lf
,printf()
但%f
应该更好的兼容性。
推荐阅读
- kubernetes - 检查重新配置的 kubernetes 部署的命令是否准备好?
- java - Java RabbitMQ 连接已关闭
- python - 如何在扩展中使用机器人类方法 (get_user())?(discord.py)
- css - 如何在导航栏中的菜单选项之间应用适当的空格?
- javascript - 单击列表中的每个元素,直到与特定 url 匹配
- fpga - Place and Route,是什么原因造成的?
- javascript - 表单 POST mongo save() 后重定向到新的 url
- vue.js - 在 Vue 3 组合 API 中使用 v-if 时隐藏的 Quill 编辑器工具栏
- javascript - 三.js填充颜色(面)随机排序的顶点,事件多边形
- javascript - 如果找到匹配的 Google Apps 脚本,则删除该行的内容