- 締切済み
滝のように流れる・・・・・
学校の宿題なので、先生に見つかったら怒られそうですが・・・。みつかりませんように☆ このプログラムを実行したら滝のように流れます(汗;)どこを直せばよいのでしょうか。 キーボードから入力した値(整数)を5つのランクのうちのどのランクに属するかを 表示するプログラム。ランクは1=0~20,2=21~60,3=61~70,4=71~80,5=81~100とする。 #include <stdio.h> void main(void) { int x; scanf("%d",&x); printf("Data;%d",x); while(x>=0 || x<=100){ if(0<=x && 20>=x)printf("%dはランク1です。",x); else if(21<=x && 60>=x)printf("%dはランク2です。",x); else if(61<=x && 70>=x)printf("%dはランク3です。",x); else if(71<=x && 80>=x)printf("%dはランク4です。",x); else if(81<=x && 100>=x)printf("%dはランク5です。",x); else if break; } } また、もっと簡潔に書けるプログラムがあったら教えてください。よろしくお願いします。
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- ret
- ベストアンサー率40% (8/20)
関連するQ&A
- 3つの整数が等しいかどうか調べるプログラム
3つの整数が等しいかどうか調べるプログラムがよくわからないので、どなたか教えていただけないでしょうか?ちなみに、わからないながらに作ってみました。 #include <stdio.h> int main(void) { int x, y, z; puts("3つの整数を入力してください。"); printf("整数1:"); scanf("%d",&x); printf("整数2:"); scanf("%d",&y); printf("整数3:"); scanf("%d",&z); if (x==y==z) puts("3つの整数の値は同じです。"); else puts("3つの整数の値は違います。"); return (0); }
- ベストアンサー
- C・C++・C#
- C言語プログラム
2つの整数を入力させ、それらが等しい場合hitoshii、異なる場合にはhitoshikunaiと出力するプログラムを作りたいのですが、うまくいきません。間違っているところを教えてください。 #include<stdio.h> #include<conio.h> void main() { printf("整数を入力してください:"); int number1; scanf("%d",number1); printf("整数を入力してください:"); int number2; scanf("%d",number2); if(number1==number2) { printf("hitoshii"); } else { printf("hitoshikunai"); } getch(); }
- ベストアンサー
- C・C++・C#
- またプログラムの修正おねがいします。
キーボードから出力した3つの整数について、以下の判定を行い 判定結果を出力するプログラムを作成する。 全部同じ 2つ同じ バラバラ * 論理演算子を使わないこと。 * インデントを正しくつけること。 #include<stdio.h> void main(void) { int a,b,c; printf("a --->"); scanf("%d",$a); printf("b --->"); scanf("%d",$b); printf("c --->"); scanf("%d",$c); if(a==b){ if(b==c){ printf("全部同じ\n"); } } else if(a!=b){ if(b==c){ printf("2つ同じ"); } else if(a==c){ printf("2つ同じ"); } else{ printf("バラバラ"); } } } 最近c言語を習ったばっかりなのでわからないとこだらけです。よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語で困っています。
正の整数を入れたときに、階乗を求めるプログラムを作りたいのですが、 ↓のプログラムを起動させたら、最終的な答えが1(kaizyo=1)になって、非常に困っています。 何故なのでしょうか?それと、どこを直せばいいですか? #include<stdio.h> main() { int x; int kaizyo=1; printf("整数を入力して下さい:"); scanf("%d",&x); if(x<=0) { printf("値が不適当です。"); } else { while(x<1) { kaizyo=kaizyo*x; x=x-1; } printf("%dの階乗は%dです。",x,kaizyo); } }
- 締切済み
- C・C++・C#
- 基本的なプログラム
基本的なプログラム 学校の教科書に載っている問題がわかりません。 是非教えて下さい。 Cによる基本的な条件分岐(if,else if文)のプログラムです。 西暦年(4けたの整数)を入力し、その年がうるう年かどうかを判断するプログラムを作りなさい。 4で割り切れるときはうるう年であるが、100で割り切れるときはうるう年ではない。 しかし、400で割り切れればうるう年である。 ・・・とゆう問題文です。 #include<stdio.h> int main(void) { int x; printf("西暦を入力して下さい¥n"); scanf("%d",&x); if(x%4==0) printf("うるう年である¥n"); else if(x%400==0) printf("うるう年である¥n"); else if(x%100!==0) printf("うるう年でない¥n"); else printf("うるう年でない¥n"); return 0; } ・・・とりあえず自分で考えてみたのですがどうでしょうか; 間違ってると思いますが頑張って考えました・・・;; 4けたの整数ってゆうのはどう書けばいいんでしょうか? 実際にこのプログラムは動くのでしょうか? もっと省略して書くことができるのでしょうか? 等、色々わからないことばかりです。 プログラミングの授業自体に苦手意識を持っているので得意ではありません。 間違いなど指摘していただけたらと思います!! よろしくお願いします!
- ベストアンサー
- その他(インターネット・Webサービス)
- プログラミング
ランダムの数値を入力してその数値より大きければ正解より大きいと表示して小さければ小さいと表示し正解なら正解ともだすプログラムをつくっています 正解まで何回かかったかとも表示したいと思います 上手く実行できないのでご教授ください #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ int i,x,y; srand((unsigned int)time(NULL)); printf("%\n",i); i=rand()%100; //0以上100以下の整数を生成 y=0; printf("1以上100以下の整数を入力してください。\n"); scanf( "%d", &x ); /* 数値を入力させる */ printf("1以上100以下の整数を入力してください。\n"); y=y+1; if( x == i ) { printf("%d回目で当たりました。\n",y); printf("%d回目で当たりました。\n",y); break; /* 無限ループ */ } else{ if ( x < i ) //printf("正解より大きいです。\n"); printf("正解より大きいです。\n"); else //printf("正解より小さいです。\n"); printf("正解より小さいです。\n"); } } //return0;
- ベストアンサー
- C・C++・C#
- 素数判定の繰返し
繰返し素数判定を行ない、CtrlーDで終了するプログラムをつくっています。 まず繰返しなしの素数判定プログラムを作り #include<stdio.h> int main(void) { int a,i; printf("自然数を入力:"); scanf("%d",&a); if(a<=0) printf("入力エラーです。\n"); else if(a==1) printf("1は素数ではない。\n"); else{ for(i=2; i*i<=a; i++){ if(a%i==0) break; } if(i*i>a) printf("%dは素数です。\n",a); else printf("%dは素数ではない。\n",a); } return(0); } これはちゃんとできたのですがそれを繰り返すことができません。 #include<stdio.h> int main(void) { int a,i; printf("自然数を入力:"); scanf("%d",&a); while((a=getchar())!=EOF){ if(a<=0) printf("入力エラーです。\n"); else if(a==1) printf("1は素数ではない。\n"); else{ for(i=2; i*i<=a; i++){ if(a%i==0) break; } if(i*i>a) printf("%dは素数です。\n",a); else printf("%dは素数ではない。\n",a); } printf("自然数を入力:"); scanf("%d",&a); } printf("プログラムを終了します。\n"); return(0); } これは訳わからないことになっちゃいます。。。 どうしたらいいんでしょうか??
- ベストアンサー
- C・C++・C#
- このプログラミングで。
#include <stdio.h> int main(void) { int x; printf("長い河はどれ?\n 1天の川 2三途の川 3谷川\n"); scanf("%d",&x); if(x == 1){ printf("なるほど"); } else if(x == 2){ printf("フーン"); } else if(x == 3){ printf("やっぱり?"); } else if(x != 1){ printf("ハァ?"); } else if(x != 2){ printf("ハァ?"); } else if(x != 3){ printf("ハァ?"); } return 0; } これを実行して 等しくないときハァ?と表示させて、ふたたび、入力をさせる方法を教えてください。何度でも入力を求める方法もありましたら教えていただきたいです。 とても理解に苦しむような質問ですがよろしくおねがいします。
- ベストアンサー
- C・C++・C#
- C言語の問題です
整数xを入力し、xが正か負かゼロかを判定し、表示するプログラムを作成する問題です。 【ヒント】x > 0 が成立するときは正。 x < 0 が成立するときは負。正でも負でもないときはゼロ。 整数x => 2 整数x => -2 整数x => 0 2 は正です -2は負です 0はゼロです 上記の解答は下記の通りなのですが、下記以外の解答方法を教えてはいただけないでしょうか? プログラミングに詳しい方よろしくお願いいたします。 #include <stdio.h> main() { int x; printf("整数x=> "); scanf("%d",&x); if (x > 0) { printf ("%d は正です\n",x); } else if (x < 0) { printf ("%d は負です\n",x); } else { printf ("%d はゼロです\n",x); } return (0); }
- ベストアンサー
- その他(学問・教育)
- MFC-J739DNでPC-FAXの送信ができなくなりました。設定変更方法がわかりません。
- Windows10で無線LAN接続しています。製品付属の専用アプリを使用しています。
- 電話回線はひかり回線です。以前の機種からMFC-J739DNに変えたため、PC-FAXの設定がうまくいっていません。
お礼
ご丁寧にありがとうございます。 これから、C言語を学んでいく上で役立てたいと思います。