在下面的C程序中,我需要在输入等级时使用退格键,它分为两部分,否则程序无法正常工作。请帮助我如何在不使用输入值空间的情况下正常运行程序。 意味着如果输入值是45,那么它应该取4作为& f和5作为& l。 在100的情况下,它应该取10作为& f和0作为& l。谢谢。
#include <stdio.h>
int main(void)
{
int f,l;
printf("Enter numerical grade:");
scanf("%d %d",&f,&l);
switch(f){
case 0: printf("Letter grade: F");
break;
case 1: printf("Letter grade: F");
break;
case 2: printf("Letter grade: F");
break;
case 3: printf("Letter grade: F");
break;
case 4: printf("Letter grade: F");
break;
case 5: printf("Letter grade: F");
break;
case 6: printf("Letter grade: D");
break;
case 7: printf("Letter grade: C");
break;
case 8: printf("Letter grade: B");
break;
case 9: printf("Letter grade: A");
break;
case 10: printf("Letter grade: A");
break;
default :
printf("Invalid grade\n" );
break;
}
return 0;
}
答案 0 :(得分:1)
我的建议是获得一个号码,scanf("%d", &f)
。然后通过除法和mod得到你想要的值,/
,%
。
为了得到你所拥有的,你将有两个以上的变量,第一个将包含除最后一个数字之外的所有变量(如果f <10则为0),第二个将包含最后一个数字。
int var1 = f / 10;
int var2 = f % 10;
答案 1 :(得分:0)
将您的scanf
功能更改为:
scanf("%d", &f);
然后添加这些行以获得正确的值:
l = f % 10;
f /= 10;
这就行了!