C言語初心者のくだらない質問5

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

C言語初心者のくだらない質問5

#1

投稿記事 by まるくま » 7年前

直角三角形(左上が直角)をつくりたいのですが、

コード:

#include <stdio.h>

int main(void)
{
	int i=0;
	int j=0;
    int In;

	printf("何段ですか:");
	scanf("%d", &In);

	for(i=In; i<=In; i--){  // i行(In個, In-1個・・・・)
		for(j=In; j<=In; j--) // In,In-1個の*を表示
			putchar('*');
	}

	return(0);
}
と書いたのですが,
無限ループしてしまいます。
ヒントお願いします(`・ω・´)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: C言語初心者のくだらない質問5

#2

投稿記事 by softya(ソフト屋) » 7年前

今回のバグと関係ないですが、とりあえずifなどで{}は省略するのは止めましょう。必ずバグの原因となります。
それとデバッガの使い方は理解されていますか? デバッガを使えばすぐ原因は分かると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
asd
記事: 318
登録日時: 10年前

Re: C言語初心者のくだらない質問5

#3

投稿記事 by asd » 7年前

まるくま さんが書きました: 無限ループしてしまいます。
ヒントお願いします(`・ω・´)
ご自分でヒントを書いていることに気がついていますか?
無限ループしていることが分かっているなら、ループの部分を追っていけば
原因はおのずとわかると思います。

softyaさんも指摘している通り、デバッガを使うとより詳しく動作を調べられますよ(*´ヮ`)
Advanced Supporting Developer
無理やりこじつけ(ぉ

96neko

Re: C言語初心者のくだらない質問5

#4

投稿記事 by 96neko » 7年前

条件がおかしくないですか?
for(i=In; i<=In; i--)
iがInと同じかiがInより小さい場合ループを繰り返すのに
-1ずつしていっても永遠にInよりもiの数値は小さいままですよ
あと{}はつけたほうがいいと思います

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: C言語初心者のくだらない質問5

#5

投稿記事 by まるくま » 7年前

96nekoさん、asdさん、softyaさん、ありがとうございます(`・ω・´)

デバッガとはエラーとかが見れるやつのことでしょうか?

修正してみました。無限ループからは抜けられましたが、
長方形になってしまします。
for文の部分がごっちゃになってよくわかりません(´・ω・`)

コード:

#include <stdio.h>

int main(void)
{
	int i=0;
	int j=0;
    int In;

	printf("何段ですか:");
	scanf("%d", &In);

	for(i=In; i>=1; i--){  // i行(In個, In-1個・・・・)
		for(j=In; j>=1; j--){ // In,In-1個の*を表示
			putchar('*');
		}
		putchar('\n');
	}

	return(0);
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: C言語初心者のくだらない質問5

#6

投稿記事 by softya(ソフト屋) » 7年前

デバッガを使うとは、こういう事です。
「太田研究室 > Visual C++ 2008 Express Edition プログラミング入門」
http://cvwww.ee.ous.ac.jp/vc08prog.html#6

長方形になる理由は、そうプログラムしているからですが、どうやったら三角形になると思ってプログラミングしましたか?
ソースコードではなく日本語で説明してみてください。
※ 頭のなかで日本語でイメージできていないものは、プログラミング言語で作れるはずがないからです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ホヅミ
記事: 110
登録日時: 10年前

Re: C言語初心者のくだらない質問5

#7

投稿記事 by ホヅミ » 7年前

二つ目のループのコメント分に注目です
In-1の処理はどこへ行ったのでしょうか?

追伸
C言語初心者のくだらない質問というタイトルよりもわからないことを直接タイトルにした方がいいですよ。
誰だってみんな初心者ですし、くだらない質問なんてこの世には存在しないのですよ。
がんばって!

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: C言語初心者のくだらない質問5

#8

投稿記事 by まるくま » 7年前

やっとできました(`・ω・´)

softyaさん、ホズミさんありがとうございます。

デバッガは今度使ってみたいと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: C言語初心者のくだらない質問5

#9

投稿記事 by softya(ソフト屋) » 7年前

フォーラムルールですので、完成版を投稿してくださいね。
http://dixq.net/board/board.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: C言語初心者のくだらない質問5

#10

投稿記事 by まるくま » 7年前

あ、はい(汗

コード:

#include <stdio.h>

int main(void)
{
	int i=0;
	int j=0;
    int In;

	printf("何段ですか:");
	scanf("%d", &In);

	for(i=In; i>=1; i--){ // i行(In個, In-1個・・・・)
		for(j=In; j>=1; j--){ // In,In-1個の*を表示
			putchar('*');
			
		}
		putchar('\n');
		In--;
	}

	return(0);
}

ホヅミ
記事: 110
登録日時: 10年前

Re: C言語初心者のくだらない質問5

#11

投稿記事 by ホヅミ » 7年前

そして、ボクの名前はホズミではなくホヅミですぜ☆

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: C言語初心者のくだらない質問5

#12

投稿記事 by まるくま » 7年前

失礼しました☆

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: C言語初心者のくだらない質問5

#13

投稿記事 by softya(ソフト屋) » 7年前

よく見たら危険な書き方が有ることに気づきました。長いプログラムなら簡単にバグりそうです。

せっかく-1しているのがあるので、それを使いましょう。
入力使った数値を変更するのは止む負えない場合だけが望ましいです。

コード:

#include <stdio.h>
 
int main(void)
{
    int i=0;
    int j=0;
    int In;
 
    printf("何段ですか:");
    scanf("%d", &In);
 
    for(i=In; i>=1; i--){ // i行(In個, In-1個・・・・)
        for(j=i; j>=1; j--){ // In,In-1個の*を表示
            putchar('*');
            
        }
        putchar('\n');
    }
 
    return(0);
}
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: C言語初心者のくだらない質問5

#14

投稿記事 by まるくま » 7年前

はぁ・・・難しいですね(汗

意識するようにしてみます。

閉鎖

“C言語何でも質問掲示板” へ戻る