首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请给我C程序红绿灯。

请给我C程序红绿灯。
EN

Stack Overflow用户
提问于 2013-04-21 20:35:05
回答 4查看 10.3K关注 0票数 0

我必须用C语言写一个简短的程序,它接受红绿灯的状态(如果是绿灯或红灯),并显示我们必须做的动作(通过道路/停车).In我的意见,我们必须在这里使用if子句。所以我用C语言写了这段代码,但当我运行它时,它会显示"Red..“如果我尝试按下什么,它只显示“绿色”..What我做错了吗?代码如下:

代码语言:javascript
复制
#include<stdio.h>
int main()
{

        int red,green;
        printf(" red :");
        scanf("%d",&red);
        printf(" green :");
        scanf("%d",&green);
        if ( red ){
                printf(" Stop %d\n",red);
        }
        else{
                printf("Pass the road - %d\n",green);
        }
        return 0;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-21 21:07:07

您需要考虑用户将如何描述灯光的当前状态。而不是问它是红色的吗?并检查他是否输入了一个非零整数,这意味着是,你可以要求用户输入颜色。然后,根据他键入的内容,显示相应的消息。

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>

int main(){
    char colorName[128];
    printf(" What color is the light: ");
    scanf("%s", colorName);

    if ( strcmp(colorName, "red") == 0 ){
         printf(" Stop!\n");
    }else  if ( strcmp(colorName, "green") == 0 ){
         printf("cross the road\n");
    }else {
         printf("is %s even a color?\n", colorName);
    }
    return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2013-04-21 20:56:13

您已将整数与if条件一起使用。在C语言中,在if语句中计算的任何正整数都被认为是真的。

代码语言:javascript
复制
if(some positive number)
{
// always true
}
else
{
//control never reaches here
}

一种解决方法可能是针对不同的条件使用特定值。

例如,试试这个

代码语言:javascript
复制
    if ( red == 1){
            printf(" Stop %d\n",red);
    }
    else{
            printf("Pass the road - %d\n",green);
    }

现在,您的if条件有一个特定的更好的输入条件,其中只有一个特定的数字对应于给定的条件。您可以继续添加使用else-if打印绿色语句的条件,或者将其设为默认条件。

使用switch-case的类似实现为:

代码语言:javascript
复制
switch(red)
{
case 1:  printf(" Stop %d\n",red);
         break;

default: printf("Pass the road - %d\n",green);
         break;
}
票数 4
EN

Stack Overflow用户

发布于 2013-04-21 20:39:34

您可以使用%d请求整数类型的输入。

根据C的布尔逻辑,0为假,!0为真。因此,除非您输入0作为第一个整数,否则您将始终在第一个子句中结束。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16131153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档