3つの課題から好きなものを選択して提出。
三角形の内角課題
三角形2辺の内角を入力すると残りの1辺の内角の大きさが表示されるプログラム
実行イメージ
1つ目の辺の角度? 90
2つ目の辺の角度? 30残りの辺は60度です
※三角形の内角の和は180度であることを利用する

double変数を使って小数点以下(実数)にも対応している。
いいと思うよ。
ootu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> int main( void ) { double x,y,n; printf ( "三角形の角度をもとめます\n\n" ); printf ( "数値1を入力してください:" ); scanf ( "%lf" , &y); printf ( "数値2を入力してください:" ); scanf ( "%lf" , &n); x = 180 - (y+n); printf ( "%fです\n" ,x); return 0; } |

こちらもdouble変数を使って小数点以下(実数)にも対応している。
いいと思うよ。でも最初のprintf文のメッセージが変。
kami
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> int main( void ) { double x, y, z; printf ( "2つの数の引き算をします\n\n" ); printf ( "数値1を入力してください: " ); scanf ( "%lf" , &x); printf ( "数値2を入力してください: " ); scanf ( "%lf" , &y); z = 180 - (x + y); printf ( "%f\n" , z); return 0; } |

int型で実行するならこうなる。
OKです。
ot
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main( void ) { int i,k,r; i=180; printf ( "三角形の三つの角度(合計180)\n" ); printf ( "1つ目の角度\n" ); scanf ( "%d" ,&k); printf ( "2つ目の角度\n" ); scanf ( "%d" ,&r); printf ( "3つ目の角度は%dです" ,i-k-r); return 0; } |

こちらもint型での計算。
シンプルでOK。
nar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main( void ) { int i,j,k; printf ( "三角形の内角を求めます\n" ); printf ( "角度1: " ); scanf ( "%d" ,&i); printf ( "角度2: " ); scanf ( "%d" ,&j); printf ( "三つ目の角度は %d°です" ,180-i-j); return 0; } |
19の段までの九九
1の段から19の段までの九九を表示する。
実行イメージ
[1の段]
1 × 1 = 1
1 × 2 = 2
1 × 3 = 3
:
1 × 17 = 17
1 × 18 = 18
1 × 19 = 19[2の段]
2 × 1 = 2
2 × 2 = 4
:
:
:
[19の段]
19 × 1 = 19
19 × 2 = 38
19 × 3 = 57
:
19 × 16 = 304
19 × 17 = 323
19 × 18 = 342
19 × 19 = 361
※ループの入れ子を使う

表示がきれいに揃っていてOK!
字下げに注意。
kawa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> int main( void ) { int x,y; for (x=1;x<20;x++){ printf ( "\n[%dの段]\n" ,x); for (y=1;y<20;y++){ printf ( "%2d×%2d=%4d\n" ,x,y,x*y); } } return 0; } |

こちらも表示がきれいに揃っています。OK!
こちらも字下げに注意。
taka
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main( void ) { int x, y; for (x = 1; x<20; x++){ printf ( "\n[%dの段]\n" ,x); for (y = 1; y<20; y++){ printf ( "%2d*%2d=%4d\n" ,x,y,x*y); } } return 0; } |

こちらも表示がきれいに揃っているが、やはり字下げがおかしい。
sat
1 2 3 4 5 6 7 8 9 10 11 12 | #include<stdio.h> int main( void ) { int x, y; for (x = 1; x <20; x++){ printf ( "\n[%dの段]\n" ,x); for (y = 1; y <20; y++){ printf ( "%2d*%2d=%4d\n" ,x,y,x*y); } } return 0; } |

これは大作だね。
表示結果は問題ないが、プログラムに工夫の余地あり。
ループの入れ子(ループの中のループ)を使ってみてください。
ot
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | #include <stdio.h> int main( void ) { int i,k; for (i=1; i<20; i++){ k=1*i; printf ( "1×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=2*i; printf ( "2×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=3*i; printf ( "3×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=4*i; printf ( "4×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=5*i; printf ( "5×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=6*i; printf ( "6×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=7*i; printf ( "7×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=8*i; printf ( "8×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=9*i; printf ( "9×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=10*i; printf ( "10×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=11*i; printf ( "11×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=12*i; printf ( "12×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=13*i; printf ( "13×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=14*i; printf ( "14×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=15*i; printf ( "15×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=16*i; printf ( "16×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=17*i; printf ( "17×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=18*i; printf ( "18×%d=%d\n" ,i,k); } for (i=1; i<20; i++){ k=19*i; printf ( "19×%d=%d\n" ,i,k); } return 0; } |

シンプルでOK。
表示が右揃えになっていると更に良い。
nar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main( void ) { int i,j,k; for (i=1;i<20;i++){ for (j=1;j<10;j++){ printf ( " %d × %d = %d\n" ,i,j,i*j); } } return 0; } |
じゃんけん
コンピュータを相手にじゃんけんをするプログラムを作る。
実行イメージ
じゃんけん!1:グー 2:チョキ 3:パー (1~3で選んでください) 2
ポン!あなた: チョキ コンピュータ: チョキ
あいこで…1:グー 2:チョキ 3:パー (1~3で選んでください) 1
しょ!あなた: グー コンピュータ: チョキ
あなたの勝ち!!!!!!
※グー、チョキ、パーを数値の1、2、3などに見立てると判定がしやすい

コンパイルエラーが出てしまった。
どこをどう直せばいいだろう?1箇所直したら動いたよ。
kos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <stdio.h> #include <stdlib.h> #include <time.h> int main( void ) { int a,b; srand ( time (NULL)); c= rand ()%3+1; printf ( "ジャンケン[1:グー 2:チョキ 3:パー]\n " ); scanf ( "%d" ,&a); if (a==1&&b==1) printf ( "私もグー、アイコです。\n" ); else if (a==1&&b==2) printf ( "私はチョキあなたの勝ちです。\n" ); else if (a==1&&b==3) printf ( "私はパーあなたの負けです。\n" ); else if (a==2&&b==1) printf ( "私はグーあなたの負けです。\n" ); else if (a==2&&b==2) printf ( "私もチョキ、アイコです。\n" ); else if (a==2&&b==3) printf ( "私はパーあなたの勝ちです。\n" ); else if (a==3&&b==1) printf ( "私はグーあなたの勝ちです。\n" ); else if (a==3&&b==2) printf ( "私はチョキあなたの負けです。\n" ); else if (a==3&&b==3) printf ( "私もパー、アイコです。\n" ); else printf ( "??\n" ); return 0; } |

これは良く出来ている。無限ループの使い方がいい。
あいこの処理に工夫がみられるね。
字下げをきちんとしよう。
nar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <stdio.h> #include <stdlib.h> #include <time.h> int main( void ) { int i,j; srand ((unsigned) time (NULL)); printf ( " じゃんけんしよう!\n" ); printf ( " じゃんけん... " ); while (1){ printf ( " 1 >> グー 2 >> チョキ 3 >> パー " ); scanf ( "%d" ,&i); if (i==1) printf ( " 自分:グー" ); else if (i==2) printf ( " 自分:チョキ" ); else printf ( " 自分:パー" ); j = rand () % 3 + 1; if (j==1) printf ( "\t相手:グー\n" ); else if (j==2) printf ( "\t相手:チョキ\n" ); else printf ( "\t相手:パー\n" ); if (i==j) printf ( "\n あいこで... " ); else if (i == 1 && j == 2){ printf ( "\n あなたの勝ち! " ); break ;} else if (i == 1 && j == 3){ printf ( "\n 相手の勝ち! " ); break ;} else if (i == 2 && j == 1){ printf ( "\n 相手の勝ち! " ); break ;} else if (i == 2 && j == 3){ printf ( "\n あなたの勝ち! " ); break ;} else if (i == 3 && j == 1){ printf ( "\n あなたの勝ち! " ); break ;} else if (i == 3 && j == 2){ printf ( "\n 相手の勝ち! " ); break ;} } return 0; } |
コメント