新手求解
#include <stdio.h>int main()
{
float x, sum, a = 0, b = 0, c;
printf("学生成绩:");
while (x!= -1);
{
a = a + 1;
if (x<60)
b = b + 1;
printf("学生成绩:");
scant("%f", &x); }
c = b / a;
printf("\n应付金额=%f\n", c);
return 0;
}
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6001 使用未初始化的内存“x”。 hello D:\vs2019\vs2019\hello\1.c 7
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C4013 “scant”未定义;假设外部返回 int hello D:\vs2019\vs2019\hello\1.c 13
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C4101 “sum”: 未引用的局部变量 hello D:\vs2019\vs2019\hello\1.c 5
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4700 使用了未初始化的局部变量“x” hello D:\vs2019\vs2019\hello\1.c 7
感谢大神 #include <stdio.h>
int main()
{
//sum没有用到,可以去掉
float x, sum, a = 0, b = 0, c;
printf("学生成绩:");
//x使用前要初始化
x=0;
while (x!= -1)
{
//输入要放在最前面
//是scanf ,不是scant
scanf("%f", &x);
a = a + 1;
if (x<60)
b = b + 1;
printf("学生成绩:");
c = b / a;
printf("\n应付金额=%f\n", c);
}
return 0;
} 本帖最后由 jackz007 于 2020-11-9 12:11 编辑
while (x!= -1);
去掉行末红色的分号
代码逻辑和变量规划存在问题,代码存在重复的现象;所有变量中,只有 c 需要定义成浮点数,其他的定义为整型数最好,因为浮点数存在表达误差。
#include <stdio.h>
int main(void)
{
float c ;
int a , b , x ;
for(a = 0 , b = 0 ;; a ++) {
printf("学生成绩:") ;
scanf_s("%d" , & x) ;
if(x == -1) break ;
if (x < 60) b ++ ;
}
if(a > 0) {
c = 1.0 * b / a ;
printf("\n") ;
printf("应付金额 = %f\n" , c);
}
} xieglt 发表于 2020-11-9 11:43
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6031 返回值被忽略: “scanf”。 hello D:\vs2019\vs2019\hello\1.c 13
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. hello D:\vs2019\vs2019\hello\1.c 13
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C4101 “sum”: 未引用的局部变量 hello D:\vs2019\vs2019\hello\1.c 5
大神 你这个代码出这几个了 zxcv89878221 发表于 2020-11-9 11:58
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C6031 返回值被忽略: “scanf”。 hello D:\vs2019\v ...
我给你改了,加了注释。
警告问题不大,错误就编译不通过。 xieglt 发表于 2020-11-9 12:09
我给你改了,加了注释。
警告问题不大,错误就编译不通过。
#include <stdio.h>
int main()
{
//sum没有用到,可以去掉
float x, a = 0, b = 0, c;
printf("学生成绩:");
//x使用前要初始化
x = 0;
while (x != -1)
{
//输入要放在最前面
//是scanf ,不是scant
scanf_s("%f", &x);
a = a + 1;
if (x < 60)
b = b + 1;
printf("学生成绩:");
c = b / a;
printf("\n应付金额=%f\n", c);
}
return 0;
}
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2005 _main 已经在 2.obj 中定义 hello D:\vs2019\vs2019\hello\home work.obj 1
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1169 找到一个或多个多重定义的符号 hello D:\vs2019\vs2019\hello\Debug\hello.exe 1
大神 这是什么意思 xieglt 发表于 2020-11-9 11:43
可以运行了谢谢大神指导{:10_254:}
页:
[1]