C++十几行程序,改错~老师给的难题~

来源:百度知道 编辑:UC知道 时间:2024/06/27 16:16:31
#include <stdio.h>
void main()
{
int a,b,c,d;
printf("有黄瓜吗?(1/0)");
scanf("%d",&a);
printf("有胡萝卜吗?(1/0)");
scanf("%d",&b);
printf("有土豆吗?(1/0)");
scanf("%d",&c);
printf("有白萝卜吗?(1/0)");
scanf("%d",&d);
if(a==1)
printf("上黄瓜沙拉\n");
else if(b==1)
printf("上胡萝卜沙拉\n");
else if(c==1)
printf("上土豆沙拉\n");
else if(d==1)
printf("上白萝卜沙拉\n");
}
这段程序没有错,但我想把它改成,输入满足条件的语句后不再显示下面的语句.它问我有黄瓜吗?我打1,它能不能直接就显示上黄瓜沙拉,而不显示下面的(有胡萝卜吗?有土豆吗?有白萝卜吗?)三个问题.

#include <stdio.h>
int main() //改变主函数的返回值类型,以便后面的跳出函数
{
int a,b,c,d;
printf("有黄瓜吗?(1/0)");
scanf("%d",&a);
if(a==1)
{printf("上黄瓜沙拉\n");return 0;} //如果满足条件,显示上XX沙拉后跳出函数
printf("有胡萝卜吗?(1/0)");
scanf("%d",&b);
if(b==1)
{printf("上黄瓜沙拉\n");return 0;}
printf("有土豆吗?(1/0)");
scanf("%d",&c);
printf("上胡萝卜沙拉\n");
if(c==1)
{printf("上土豆沙拉\n");return 0;}

printf("有白萝卜吗?(1/0)");
scanf("%d",&d);
if(d==1)
{printf("上白萝卜沙拉\n");return 0;}
return 0;//什么都没有,依然不能掉了这一句表示跳出主函数,否则会有warning。
}

改成如下:
#include <stdio.h>
void main()
{
int a,b,c,d;
printf("有黄瓜吗?(1/0)");
scanf("%d",&a);
if(a==0)
{printf("有胡萝卜吗?(1/0)");
scanf("