我有一个案例,我想创建一个循环,当用户输入数字0时将停止,在该循环中我想做两件事:
用户输入示例:
1 5
1 3
2
0
我写的C代码是这样的:
while(option != 0){
scanf("%d %f",&option,&b);
if(option == 1){
Add(&Q,b);
}else if(option == 2){
Del(&Q,&b);
}
}
但我有一个问题,当我要删除数据时,我必须输入数字“2”,只输入“2”,但由于这部分代码:
scanf("%d %f",&option,&b);
我不能这样做,我仍然需要输入两个数据(例如当我想添加数据时),但是在删除选项中我只需要输入数字“2”。
如何做到这一点?,帮助我们,谢谢。
答案 0 :(得分:2)
您只需在不同的b
中输入数据option
和scanf
即可。首先检查option
,如果是1
,则仅在b
中输入。像这样的东西 -
while(option != 0){
scanf("%d",&option); // but always check return of scanf
if(option == 1){
scanf("%f",&b);
Add(&Q,b);
}
else if(option == 2){
Del(&Q,&b);
}
}
答案 1 :(得分:2)
只有在检查b
的值后才能获取变量option
的用户输入。仅当输入的option
为1
时,才会生成b
while(option != 0) {
scanf("%d", &option);
if (option == 1) {
scanf("%f", &b);
Add(&Q,b);
} else if(option == 2) {
Del(&Q,&b);
}
}