gpt4 book ai didi

C循环跳过输入迭代

转载 作者:行者123 更新时间:2023-12-01 12:29:28 25 4
gpt4 key购买 nike

这是一个非常简单的程序,用于计算 cgpa。但是循环正在跳过对输入的迭代并为每个跳过的迭代调用默认值。

#include <stdio.h>
#include <stdlib.h>

int main(){

float A=4.0, b=3.50, B=3.0, c=2.50,C=2.0;
float cgpa=0;
char grade;

for (int i=0; i<5;i++){

printf("\nEnter grade of your subject:\n");
grade = getchar( );

switch(grade){

case 'A':
cgpa=cgpa+A;
break;
case 'b':
cgpa=cgpa+b;
break;
case 'B':
cgpa=cgpa+B;
break;
case 'c':
cgpa=cgpa+c;
break;
case 'C':
cgpa=cgpa+C;
break;
default:
printf("\nSorry you have entered a wrong value please try again\n");
}}
printf("\n Your cgpa is:%f", cgpa/5);

return 0;
}

最佳答案

当您调用 getchar() 时,您将从命令行获取两个字符(f.ex. A\n),但您只获取一个一次。因此,您在第二次循环时得到 \n 。使固定?在您的 switch-case 之后再次执行 getchar(),同时忽略结果。

此外,getchar() 返回一个 int 值,但您正在从中生成一个 char,这可能会导致奇怪行为。

关于C循环跳过输入迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com