| 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文の途中に入れることになると思うので厄介です。
c言語初心者のくだらない質問4
Re: c言語初心者のくだらない質問4
iが1の時、"1 |"と書いて1の段を書く。
iが2の時、"2 |"と書いて2の段を書く。
...
というようにしたいのですね?
それならば、まるくまさんが書いた通りにfor文にprintfを入れればよいと思います。
iが2の時、"2 |"と書いて2の段を書く。
...
というようにしたいのですね?
それならば、まるくまさんが書いた通りにfor文にprintfを入れればよいと思います。
Re: c言語初心者のくだらない質問4
for文が重なると厄介に感じるかもしれませんが、for文中の関数などの処理と同じように考えれば問題ないと思います。外側のfor文に必要な処理くわえれば大体終わりです。
Re: c言語初心者のくだらない質問4
Tatuさん、ホズミさん、zxcさんありがとうございます。
きちんと表示することができました。
iが1のときiが2のとき・・・・という考え方は思い浮かばなかったです(`・ω・´)
表示できたのはいいんですが、
のprintf(" |");この部分が気になるのですがこういう修正は
あっても仕方のないものなのでしょうか?
(横のタイトルと九九のがそろってなかったんでずらしました)
省略したりはできませんか?
きちんと表示することができました。
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);
}
あっても仕方のないものなのでしょうか?
(横のタイトルと九九のがそろってなかったんでずらしました)
省略したりはできませんか?
Re: c言語初心者のくだらない質問4
九九の結果と「|」を表示するような、段を引数にとる関数を作るのはどうでしょう。
最初にそれを呼び出して、次にfor文に段を表示する処理と一緒に入れてしまえば大体解決すると思います。本当はできるだけ、こういうわけ方をすべきではないと思います。
最初にそれを呼び出して、次にfor文に段を表示する処理と一緒に入れてしまえば大体解決すると思います。本当はできるだけ、こういうわけ方をすべきではないと思います。
Re: c言語初心者のくだらない質問4
zxcさん、ありがとうございます。
まだよくわかりませんが、だんだんわかるようにしていきたいと思います。
まだよくわかりませんが、だんだんわかるようにしていきたいと思います。
Re: c言語初心者のくだらない質問4
さっき自分が言ったのは大体こういうことです。分け方については、あまり関係のないものを纏めてしまうと、広い範囲で使うことが難しくなるからです。今回は短いので別にかまわないでしょう。
#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');
}