3つの課題から好きなものを選択して提出。
三角形の内角課題
三角形2辺の内角を入力すると残りの1辺の内角の大きさが表示されるプログラム
実行イメージ
1つ目の辺の角度? 90
2つ目の辺の角度? 30残りの辺は60度です
※三角形の内角の和は180度であることを利用する
double変数を使って小数点以下(実数)にも対応している。
いいと思うよ。
ootu
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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; }
コメント