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

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

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

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

Q&A

解決済

1回答

878閲覧

C言語のforの問題の質問

Totyun

総合スコア2

C

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

0グッド

1クリップ

投稿2021/04/27 14:57

前提・実現したいこと

3と入力すると

12
123
12

となるコードが書きたい

ここに質問の内容を詳しく書いてください。
C言語でforとifで作ろうとしてます
必ずforは使います
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

1~20まで1列で出てきてしまう

エラーメッセージ

該当のソースコード

C言語 ソースコード #include <stdio.h> int main() { int n, i; printf("3~20の整数:"); scanf("%d", &n); if((n < 3) || (20 < n)) { printf("範囲外の値が入力されています\n"); } else { for(i = 1; i <= 20; i++) { printf("%d ", i); } for(n=1;n<=20;n=(i*2)-1);{ } printf("\n"); } } ### 試したこと if構文で出来るか試した ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

dodox86

2021/04/27 16:18

> 1~20まで1列で出てきてしまう とありますが、コード自体 > for(i = 1; i <= 20; i++) { > printf("%d ", i); > } となっていて、出てきてしまうというよりはそのようになるようにコードを書かれています。これはどういう意図であったのでしょうか。
Totyun

2021/04/27 16:55

すいません最近始めたのでよくわかってないんです お勧めの本がありましたら教えてくれると幸いです。
dodox86

2021/04/27 17:10

> お勧めの本がありましたら教えてくれると幸いです。 こうなるともう違う質問内容となってしまうのと、初心の方向けの良い本と言うのはちょっと私の方では分かりませんので、提案できるものはありません。基本がまとまった良い本で学習を進めるのは良いことだと思うのですが、実際に読んでみて自分に合った本を選ぶのが良いです。 > すいません最近始めたのでよくわかってないんです 少なくとも基本的な文法が分かっていない内に課題に取り組むことはとても非効率的なので、簡単なプログラムでも自分のやろうとすること(<意図)と書いたコードが一致するようにならなければダメです。書いたコードを自分で説明できる、と言うことです。
guest

回答1

0

ベストアンサー

C

1#include <stdio.h> 2 3/* 4 from から to までをプリントする 5*/ 6void print_series(int from, int to) { 7 for ( int n = from; n <= to; ++n ) { 8 printf("%d ", n); 9 } 10 printf("\n"); 11} 12 13int main() { 14 int i; 15 int n; 16 scanf("%d", &n); 17 // のぼり : 1, 2... n 18 for ( i = 1; i <= n; ++i ) { 19 print_series(1, i); 20 } 21 // くだり: n-1, n-2... 1 22 for ( i = n-1; i >= 1; --i ) { 23 print_series(1, i); 24 } 25 return 0; 26}

投稿2021/04/27 23:54

episteme

総合スコア16614

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

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

Totyun

2021/04/28 02:22

#include <stdio.h> int main() { int num; int i,j; printf("3~20の整数:"); scanf("%d",&num); if((3<=num)&&(num<=20)){ for (i = 1; i <=num; i++) { for (j = 1; j <= i; j++){ printf("%d",i); } printf("\n"); } for (i-1>1;i--;){ for (j=1; j<i;j++){ printf("%d",j); } printf("\n"); } }else{ printf("範囲外の値が入力されています"); } } これでやるとfor (i-1>1;i--;){の結果がないと出てくるのですがどうすればよいですか?
episteme

2021/04/28 03:52

> for (i-1>1;i--;) 間違ってます。for ( A; B; C) は A; while ( B ) { ... C; } と等価です。したがって for (i-1>1;i--;) は i - 1; while ( i-- ) { ... } となります。これがあなたの意図するものではないでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問