以下是错误代码
代码如下所示
#include<stdio.h>
int main()
{
printf("按任意键开始\n\n");
int start=1;
do
{
float e;
int a, b, c, d, f;
float s1, s2, s3, s4, s5, s6, s7;
a = b = c = d = e = f = s1 = s2 = s3 = s4 = s5 = s6 = s7 = 0;
printf("欢迎使用大学评价系统,请根据提示输入相应的信息\n");
printf("\n请输入该大学的校友会排名");
scanf_s("%d", &a);
if (a<=300) s1=0.5;
else if (a>300) s1=0.25;
printf("\n请输入该大学的软科排名");
scanf_s("%d", &b);
if (b <= 300) s2=0.5;
else if (b > 300) s2=0.25;
printf("\n请输入该大学的US世界排名,如无请输0");
scanf_s("%d", &c);
if (c == 0) s3 = 0;
if (0 <= c <= 1600) s3 = 1;
if (0 >= 1600) s3 = 0.5;
printf("\n请输入该大学是否坐落于省会城市");
printf("\n1.是 2.否");
scanf_s("%d", &d);
if (d == 1) s4 = 2;
else s4 = 1;
printf("\n请输入该大学的考研率,请以小数的形式输入");
scanf_s("%f", &e);
if (e <= 0.1) s5 = 0.5;
else s5 = 1;
printf("\n请输入该大学是一本还是二本");
printf("\n1.一本 2.二本");
scanf_s("%d", &f);
if (f == 1) s6 = 5;
else s6 = 3;
s7 = s1 + s2 + s3 + s4 + s5 + s6;
printf("\n该大学是的综合评分是%ld"),s7;
}
while (start);
return 0;
}
最后无法得出想要的结果,只会输出以下的结果
按任意键开始
欢迎使用大学评价系统,请根据提示输入相应的信息
请输入该大学的校友会排名1
请输入该大学的软科排名1
请输入该大学的US世界排名,如无请输01
请输入该大学是否坐落于省会城市
1.是 2.否1
请输入该大学的考研率,请以小数的形式输入1
请输入该大学是一本还是二本
1.一本 2.二本1
该大学是的综合评分是1071754304欢迎使用大学评价系统,请根据提示输入相应的信息
请输入该大学的校友会排名
#include <stdio.h>
int main() {
printf("按任意键开始\n\n");
int start = 1;
do {
float e;
int a, b, c, d, f;
float s1, s2, s3, s4, s5, s6, s7;
a = b = c = d = f = s1 = s2 = s3 = s4 = s5 = s6 = s7 = 0;
printf("欢迎使用大学评价系统,请根据提示输入相应的信息\n");
printf("\n请输入该大学的校友会排名: ");
scanf("%d", &a);
if (a <= 300)
s1 = 0.5;
else if (a > 300)
s1 = 0.25;
printf("\n请输入该大学的软科排名: ");
scanf("%d", &b);
if (b <= 300)
s2 = 0.5;
else if (b > 300)
s2 = 0.25;
printf("\n请输入该大学的US世界排名,如无请输0: ");
scanf("%d", &c);
if (c == 0)
s3 = 0;
else if (0 <= c && c <= 1600)
s3 = 1;
else if (c > 1600)
s3 = 0.5;
printf("\n请输入该大学是否坐落于省会城市");
printf("\n1.是 2.否");
scanf("%d", &d);
if (d == 1)
s4 = 2;
else
s4 = 1;
printf("\n请输入该大学的考研率,请以小数的形式输入: ");
scanf("%f", &e);
if (e <= 0.1)
s5 = 0.5;
else
s5 = 1;
printf("\n请输入该大学是一本还是二本");
printf("\n1.一本 2.二本");
scanf("%d", &f);
if (f == 1)
s6 = 5;
else
s6 = 3;
s7 = s1 + s2 + s3 + s4 + s5 + s6;
printf("\n该大学的综合评分是:%f", s7);
} while (start);
return 0;
}
题主的代码问题,在第 25 26 两行里:
第25行:if (0 <= c <= 1600) s3 = 1; 应修改为: if (0 < c && c <= 1600) s3 = 1;
第26行:if (0 >= 1600) s3 = 0.5; 应修改为:if (c > 1600) s3 = 0.5;
粗略看下去代码中还有一个错误:
printf("\n该大学是的综合评分是%ld"),s7;
在这行代码中,printf
函数的格式字符串没有包含格式化参数 %ld
,因此在输出时会发生错误
printf("\n该大学是的综合评分是%ld", s7);
这样就将变量s7
的值正确地传递给printf
函数进行输出了。至于别的逻辑问题楼上有人回答你啦!