質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

4回答

850閲覧

タイトル:1~60の数字を表示するプログラムを作りたいです!

DR.Dexter00

総合スコア18

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2019/09/05 11:08

前提・実現したいこと

1~60の数字を表示するプログラムを作りたいです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

#include <stdio.h> int main(void){ // Youintr code here! int a; a = 1; if (a > 0) { a++;// } else if (a <= 60){ printf("%d",a); } }

試したこと

printf("%d",a);と書いたのですが、実行後になにも表示されませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/09/05 11:10

入門書は読みましたか?
DR.Dexter00

2019/09/05 11:21

読みました!というか読みながらやっています。
LouiS0616

2019/09/05 11:23

繰り返し処理については学びましたか。 『繰り返し』みたいな章がもしあるようであれば、しっかりと読むことをお勧めします。
DR.Dexter00

2019/09/05 11:35 編集

もしや!for文ですか? 今読んで書いてみました! #include <stdio.h> int main(void){ // Youintr code here! int a; a = 1; if (a > 0) { for(a = 1;a <= 60;a++){ printf("%d",a);} } }
cateye

2019/09/05 11:35 編集

直前でaに1を設定しているので、if文は不要です。 prokeyってなんでしょう? また、printf("%d",a);}だと改行"\n'が入りませんがいいのですか?
DR.Dexter00

2019/09/05 11:36

大丈夫です! ではif文とelse ifでは1~60のコードは書けないですか?
cateye

2019/09/05 11:41

表示させるだけなら・・・ソース追加します。
DR.Dexter00

2019/09/05 11:42

if文とelse ifで1~60の数字を表示させたいです!
cateye

2019/09/05 11:56 編集

ループ無しでですか?・・・やってやれなくはないけど非推奨構文(goto)を使うようになると思いますよ。 手前に戻るgotoなんて使ったことがない^^; 参考:http://wisdom.sakura.ne.jp/programming/c/c11.html
DR.Dexter00

2019/09/05 11:56

ループありで、です(;'∀') ループありでif文とelse ifで1~60の数字を表示させたいです!
cateye

2019/09/05 11:59 編集

ループありならif()もelse if()もいらないのでは? 回答のforループ を参考に・・・
DR.Dexter00

2019/09/05 12:10

ありがとうございました。
guest

回答4

0

整形したソースです。

C

1#include <stdio.h> 2int main(void){ 3 // Youintr code here! 4 int a; 5 a = 1; 6 if (a > 0) { 7 a++;// 8 } 9 else if (a <= 60){ 10 printf("%d",a); 11 } 12}

いまはa > 0が成立してa++を通っているだけです。
else ifで結んでいるのでprintfの行にたどり着きません。
通るとしたら変数aが値が0以下の値の時だけです。

このコードでprintfの行にたどり着きたいならelseを削除します。

投稿2019/09/05 11:13

編集2019/09/05 11:16
nomuken

総合スコア1627

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

if と else if を使い、ループの無いプログラムです。

C

1#include <stdio.h> 2 3int main(int a, char *b[]) 4{ 5 if (a > 60) 6 putchar('\n'); 7 else if (a > 0) { 8 printf(" %d", a); 9 main(a + 1, NULL); 10 } 11}

C++ は main の再帰呼出しができないので、C です。

投稿2019/09/05 14:50

kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/09/05 16:55

@@; argcが1なのを忘れてた・・・v^^
guest

0

ベストアンサー

c

1#include <stdio.h> 2int main(void) 3{ 4 // Youintr code here! 5 int a; 6 a = 1; 7 if (a > 0) { // aは1なのでここに入る 8 a++; // aは2になる 9 10 } else if (a <= 60) { // (a > 0)なのでelseには入らない 11 printf("%d", a); 12 } 13}

分かりますか?
///
・・・nomukenさんの回答通りに書くと・・・

c

1#include <stdio.h> 2int main(void) 3{ 4 // Youintr code here! 5 int a; 6 a = 1; 7 if (a > 0) { // aは1なのでここに入る 8 a++; // aは2になる 9 } 10 if (a <= 60) { 11 // a は2なのでここにも入る 12 printf("%d\n", a); 13 } 14}

forループ

c

1#include <stdio.h> 2int main(void) 3{ 4 // Youintr code here! 5 for(int a= 1; a <= 60; a++ ){ 6 printf("%3d", a); //表示は3桁 7 } 8 return 0; 9}

結果

text

1usr ~/Project/test % ./a.out 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

投稿2019/09/05 11:17

編集2019/09/05 11:45
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DR.Dexter00

2019/09/05 11:34

ありがとうございます! #include <stdio.h> int main(void){ // Youintr code here! int a; a = 1; if (a > 0) { a++;// } else if (a <= 60){ printf("%d",a); } } に関して、変数aが2までしかいなかないのはわかったのですが、だとしたらprintfされるのは1、2までと思うのですが、1,2すら表示されません。なぜでしょうか。
cateye

2019/09/05 11:37

if (a > 0)が成り立つのでelse節には入らないからです。
DR.Dexter00

2019/09/05 11:55 編集

なるほど! ありがとうございます。
cateye

2019/09/05 12:02

3桁表示にしたのはくっついて分かりにくいからです。
guest

0

このprintfを実行させようとすると、aを0以下にしないといけません。

なにかまちがってませんか?

投稿2019/09/05 11:13

編集2019/09/05 11:14
y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問