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;
}

コメント