- ベストアンサー
九九を表示するプログラム
- 掛け算の九九、和の九九、差の九九を表示するプログラムを組む
- 変数opの値に応じて、九九の計算と表示を行う
- プログラムの実行を繰り返すかどうかをユーザーに尋ねる
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
チョー汚い書き方ですがこういうことかな?? ---------------------------------- #include<stdio.h> void main(){ int x,y,z; int yn,op; int i,j; do{ do{ printf("[*(1),+(2),-(3)]"); scanf("%d",&op); }while( 1 > op || op > 3 ); for (i=-1; i<10; i++) { if (i==-1) { printf("%2s|", ""); } else if (i==0) { printf("%3s", "--"); } else { printf("%2d|", i); } for (j=1; j<10; j++) { if (i==-1) { printf("%3d", j); } else if (i==0) { printf("%3s", "---"); } else { if (op==1) printf("%3d", i*j); if (op==2) printf("%3d", i+j); if (op==3) printf("%3d", i-j); } } printf("\n"); } do{ printf("Continue[1/0]?"); scanf("%d",&yn); }while( 0 > yn || 1 < yn ); }while( yn == 1 ); } ----------------------------------
その他の回答 (1)
- WhiteWolf_
- ベストアンサー率39% (50/127)
和の九九や差の九九がいまいち把握できませんでしたので 処理を分ける方法のみ提案させていただこうと思います。 とりあえず、Switch文を使えば良いかと思います。 かなり大雑把な説明ですが、Switch文とはifを少し便利にしたようなものとお考えください。状況により処理を分岐させることができます。 switch (op){//変数opを判断する case 1;//変数opが1なら //掛け算の九九の処理 break; case 2; //和の九九 break; case 3; //差の九九 break; } また、掛け算を1x1から9x9までを全て羅列するというのなら for文を持ちいれば作成できるかと思います。デバッグしてないので怪しいですが下記のようなものでも動くかなと思います。もっと綺麗にできるとは思いますが。 int a,b; for(a=1;a<10;++a){ for(b=1;b<10;++b){ printf ("%d * %d = %d\n",a,b,a*b); } }
お礼
ありがとうございます。参考にプログラムを考えてみます。
お礼
参考になりました。ありがとうございました。