0

C で短いプログラムを作成する必要があります。これは、信号機の状態 (緑または赤の場合) を取得し、実行する必要があるアクション (道路を通過する/停止する場合) を表示します。私の意見では、使用する必要があります。ここに if 節があります..だから私はこれを C で書きましたが、実行すると "Red.." と表示され、何かを押そうとすると "Green" だけが表示されます..何が間違っていますか? コードは次のとおりです。

#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;
}
4

4 に答える 4

2

で整数型の入力を要求します%d

C のブール論理によれば、0 は false で、!0 は true です。したがって、最初の整数として 0 を入力しない限り、常に最初の句になります。

于 2013-04-21T12:39:33.637 に答える
0
#include<graphics.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>

main()
{
   int gd = DETECT, gm, midx, midy;

   initgraph(&gd, &gm, "C:\\TC\\BGI");

   midx = getmaxx()/2;
   midy = getmaxy()/2;

   setcolor(RED);
   settextstyle(SCRIPT_FONT, HORIZ_DIR, 3);
   settextjustify(CENTER_TEXT, CENTER_TEXT);
   outtextxy(midx, midy-10, "Traffic Light Simulation");
   outtextxy(midx, midy+10, "Press any key to start");
   getch();
   cleardevice();
   setcolor(WHITE);
   settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
   rectangle(midx-30,midy-80,midx+30,midy+80);
   circle(midx, midy-50, 22);
   setfillstyle(SOLID_FILL,RED);
   floodfill(midx, midy-50,WHITE);
   setcolor(BLUE);
   outtextxy(midx,midy-50,"STOP");
   delay(2000);
   graphdefaults();
   cleardevice();
   setcolor(WHITE);
   rectangle(midx-30,midy-80,midx+30,midy+80);
   circle(midx, midy, 20);
   setfillstyle(SOLID_FILL,YELLOW);
   floodfill(midx, midy,WHITE);
   setcolor(BLUE);
   outtextxy(midx-18,midy-3,"READY");

   delay(2000);
   cleardevice();
   setcolor(WHITE);
   rectangle(midx-30,midy-80,midx+30,midy+80);
   circle(midx, midy+50, 22);
   setfillstyle(SOLID_FILL,GREEN);
   floodfill(midx, midy+50,WHITE);
   setcolor(BLUE);
   outtextxy(midx-7,midy+48,"GO");
   setcolor(RED);
   settextstyle(SCRIPT_FONT, HORIZ_DIR, 4);
   outtextxy(midx-150, midy+100, "Press any key to exit...");

   getch();
   closegraph();
   return 0;
}
于 2013-06-26T16:54:03.717 に答える