c - 我的程序只在特定情况下才有效
问题描述
所以我试图制作一个程序,根据用户输入的分数对用户进行评分,它可以工作,但有时它不喜欢当我输入 67 作为 CSC111 的分数和 45 作为 CSC115 的分数时,它不显示分数CSC115,但是当我为两者都输入 45 时,它显示了两者的等级。
#include<stdio.h>
int main()
{
char firstName[100];
char lastName[100];
int regNo;
int marksCSC115;
int marksCSC111;
char grade11;
char grade15;
printf("Enter your name (first and last)> ");
scanf("%s %s", firstName, lastName);
printf("Enter your registration number> ");
scanf("%d", ®No);
printf("Enter your marks in CSC111> ");
scanf("%d", &marksCSC111);
printf("Enter your marks in CSC115> ");
scanf("%d", &marksCSC115);
if(marksCSC111 >= 0 && marksCSC111 <= 39){
grade11 = 'F';}
else if(marksCSC111 >39 && marksCSC111 <= 49){
grade11 = 'E'
;}
else if(marksCSC111 >49 && marksCSC111 <= 59){
grade11 = 'D'
;}
else if(marksCSC111 >59 && marksCSC111 <= 69){
grade11 = 'C'
;}
else if(marksCSC111 >69 && marksCSC111 <= 79){
grade11 = 'B'
;}
else if(marksCSC111 >79) {
grade11 = 'A'
;}
if(marksCSC115 >= 0 && marksCSC111 <= 39){
grade15 = 'F';}
else if(marksCSC115 >39 && marksCSC111 <= 49){
grade15 = 'E'
;}
else if(marksCSC115 >49 && marksCSC111 <= 59){
grade15 = 'D'
;}
else if(marksCSC115 >59 && marksCSC111 <= 69){
grade15 = 'C'
;}
else if(marksCSC115 >69 && marksCSC111 <= 79){
grade15 = 'B'
;}
else if(marksCSC115 >79) {
grade15 = 'A'
;}
printf("\nSTUDENT NAME: %s %s\n\nSTUDENT IDNO: %d\n\nCOURSE CODE MARKS GRADE\n\nCCS111 %d %c\n\nCCS115 %d %c",firstName,lastName, regNo, marksCSC111, grade11, marksCSC115, grade15);
}
解决方案
您对marksCSC115 的检查包含两个研讨会。例如看第一个比较
if(marksCSC115 >= 0 && marksCSC111 <= 39){
这应该是
if(marksCSC115 >= 0 && marksCSC115 <= 39){
对所有比较都这样做,它应该可以工作。为避免此类错误,您可以添加带有错误消息的 else 案例,例如
} else {
printf("Could not generate mark");
}
推荐阅读
- django - 通过 docker-compose 在 Docker 容器中启动 Django 的 runserver
- mysql - 为什么 SQL 显示两行而不是一行
- linux - 仅列出仅包含一个特定字符的文件,当未指定重复数量时
- flutter - 如何在颤动中读取传入的短信
- python-3.x - Django:FileField'对象在Meta类中没有属性'attrs'
- r - 如果将一行放在组变量中的另一行之后,如何查找和删除一行?
- vb.net - VB .NET - App.config - 连接字符串
- node.js - 使用 mongodb 从查找中计算总成本
- c# - 将 count 的结果存储在 SQL 中的变量中
- sql - 如何将 3 个查询的结果合并到一张表中