c言語初心者のくだらない質問4

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

c言語初心者のくだらない質問4

#1

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

| 1 2 3 4 5 6 7 8 9
-----------------------------------
1 | 1 2 3 4 5 6 7 8 9
2 | 2 4 6 8 10 121416 18
3 | 3
4 |・・・・・(以下略)・・・・・・

と表示するように九九の表を表示するプログラムを作りたいのですが、

横のタイトルを表示することはできたのですが、
縦のタイトルをどう表示すればいいのかわかりません。

printf関数などだとfor文の途中に入れることになると思うので厄介です。

コード:

#include <stdio.h>

int main(void)
{

	int i;
	int j;
	int yoko;



	for(yoko=1; yoko<=9; yoko++)
		printf("%3d",yoko);
	putchar('\n');

	printf("----------------------------");
	putchar('\n');

	for(i=1; i<=9; i++){
		for(j=1; j<=9; j++)
			printf("%3d",i*j);
		putchar('\n');
	}

	return(0);
}

アバター
Tatu
記事: 445
登録日時: 9年前
住所: 北海道

Re: c言語初心者のくだらない質問4

#2

投稿記事 by Tatu » 7年前

iが1の時、"1 |"と書いて1の段を書く。
iが2の時、"2 |"と書いて2の段を書く。
...
というようにしたいのですね?

それならば、まるくまさんが書いた通りにfor文にprintfを入れればよいと思います。

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

Re: c言語初心者のくだらない質問4

#3

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

改行の入れ方と考え方は同じです。

zxc
記事: 79
登録日時: 7年前
住所: 日本の背骨(?)あたり

Re: c言語初心者のくだらない質問4

#4

投稿記事 by zxc » 7年前

  for文が重なると厄介に感じるかもしれませんが、for文中の関数などの処理と同じように考えれば問題ないと思います。外側のfor文に必要な処理くわえれば大体終わりです。

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

Re: c言語初心者のくだらない質問4

#5

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

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

きちんと表示することができました。

iが1のときiが2のとき・・・・という考え方は思い浮かばなかったです(`・ω・´)

表示できたのはいいんですが、

コード:

#include <stdio.h>

int main(void)
{

	int i;
	int j;
	int yoko;


	printf("  |");
	for(yoko=1; yoko<=9; yoko++)

		printf("%3d",yoko);
	
	putchar('\n');

	printf("--------------------------------");
	putchar('\n');

	for(i=1; i<=9; i++){
		printf("%d |",i);
		for(j=1; j<=9; j++)
			printf("%3d",i*j);
		putchar('\n');
	}

	return(0);
}
のprintf(" |");この部分が気になるのですがこういう修正は
あっても仕方のないものなのでしょうか?
(横のタイトルと九九のがそろってなかったんでずらしました)

省略したりはできませんか?

zxc
記事: 79
登録日時: 7年前
住所: 日本の背骨(?)あたり

Re: c言語初心者のくだらない質問4

#6

投稿記事 by zxc » 7年前

   九九の結果と「|」を表示するような、段を引数にとる関数を作るのはどうでしょう。
最初にそれを呼び出して、次にfor文に段を表示する処理と一緒に入れてしまえば大体解決すると思います。本当はできるだけ、こういうわけ方をすべきではないと思います。

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

Re: c言語初心者のくだらない質問4

#7

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

zxcさん、ありがとうございます。
まだよくわかりませんが、だんだんわかるようにしていきたいと思います。

zxc
記事: 79
登録日時: 7年前
住所: 日本の背骨(?)あたり

Re: c言語初心者のくだらない質問4

#8

投稿記事 by zxc » 7年前

  さっき自分が言ったのは大体こういうことです。分け方については、あまり関係のないものを纏めてしまうと、広い範囲で使うことが難しくなるからです。今回は短いので別にかまわないでしょう。

コード:

#include <stdio.h>
 
void func(int);
void down();
 
int main(void){
 
    func(1);
 
    printf("----------------------------");
    down();
 
    for(int j=1; j<=9; j++){
        printf("%3d",j);
        func(j);
    }
 
    return(0);
}
 
void func(int num){
    printf("  |");
    for(int i=1; i<=9; i++){
        printf("%3d",(i*num) ) ;    
    }
    down();
}
 
void down(){
    putchar('\n');
}

閉鎖

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