R51 1,00 動作しない
考察
main関数ってどれだよってなったけど、単純に
int main(void)
この最初のやつだったとここにきて初めて理解した。
"%f" のf はdouble の実数を表示する時使用します。
ああ
問題
図形の種類(正方形=1、長方形=2、円=3)を入力する。図形の種類ごとに面積を
求める関数を実行する。面積の表示はメイン関数で行う。
表示例(正方形の場合)
図形の種類(正方形=1、長方形=2、円=3)-->1
一辺の長さ-------->12.5
面積は 156.25cmです
表示例(長方形の場合)
図形の種類(正方形=1、長方形=2、円=3)-->2
縦の長さ---------->12.5
横の長さ---------->20
面積は 250.00cmです
表示例(円の場合)
図形の種類(正方形=1、長方形=2、円=3)-->3
半径の長さ-------->10.0
面積は 314.16cmです
考え方
(1)図形の種類(shurui)を入力する。
(2)種類ごとに関数を実行し、面積(menseki)に値を返す。
①種類が1(正方形)のとき正方形の面積を求める関数(seihoukei)を実行する。
②種類が2(長方形)のとき長方形の面積を求める関数(chouhoukei)を実行する。
③種類が3(円)のとき円の面積を求める関数(en)を実行する。
(3)正方形の面積を求める関数(seihoukei)
①一辺の長さ(hen)を入力する。
②答え(kotae)=一辺の長さ×一辺の長さ
③答えを返す。「return (kotae)」
(4)長方形の面積を求める関数(chouhoukei)
①縦の長さ(tate)を入力する。
②横の長さ(yoko)を入力する。
③答え=縦の長さ×横の長さ
④答えを返す。
(5)円の面積を求める関数(en)
①半径(hankei)を入力する。
②答え=3.141592×半径×半径
③答えを返す。
(6)(main関数にて)面積を表示する。
※mainから各関数への引数はない(void)とする。
動作しない
#include
double seihoukei(void);
double chouhoukei(void);
double en(void);
main()
{
int shurui;
double menseki;
printf("図形の種類(正方形=1、長方形=2、円=3)\n");
scanf("%d",&shurui);
switch (shurui) {
case 1:
menseki=seihoukei();
break;
case 2:
menseki=chouhoukei();
break;
case 3:
menseki=en();
break;
default:
menseki=0;
break;
}
printf("面積は%10.2fcmです。",menseki);
return 0;
}
double seihoukei(void)
{
double kotae;
double hen;
printf("一辺の長さ");
scanf("%1f",&hen);
kotae = hen * hen;
return(kotae);
}
double chouhoukei(void);
{
double kotae;
double tate;
double yoko;
printf("縦の長さ");
scanf("%1f",&tate);
printf("横の長さ");
scanf("%1f",&yoko);
kotae = tate * yoko;
return(kotae);
}
double en(void)
{
double kotae;
double hankei;
printf("半径の長さ");
scanf("%1f",&hankei);
kotae = 3.141592 * hankei * hankei;
return(kotae);
double seihoukei(void);
double chouhoukei(void);
double en(void);
main()
{
int shurui;
double menseki;
printf("図形の種類(正方形=1、長方形=2、円=3)\n");
scanf("%d",&shurui);
switch (shurui) {
case 1:
menseki=seihoukei();
break;
case 2:
menseki=chouhoukei();
break;
case 3:
menseki=en();
break;
default:
menseki=0;
break;
}
printf("面積は%10.2fcmです。",menseki);
return 0;
}
double seihoukei(void)
{
double kotae;
double hen;
printf("一辺の長さ");
scanf("%1f",&hen);
kotae = hen * hen;
return(kotae);
}
double chouhoukei(void);
{
double kotae;
double tate;
double yoko;
printf("縦の長さ");
scanf("%1f",&tate);
printf("横の長さ");
scanf("%1f",&yoko);
kotae = tate * yoko;
return(kotae);
}
double en(void)
{
double kotae;
double hankei;
printf("半径の長さ");
scanf("%1f",&hankei);
kotae = 3.141592 * hankei * hankei;
return(kotae);
}
別バージョンのやり方
#include
int main(void){
int i,shurui,menseki,seihoukei,chouhoukei,en;
int hen,tate,yoko,hankei,kotae;
printf("図形の種類(正方形=1、長方形=2、円=3)\n");
scanf("%d",&shurui);
switch (shurui) {
case 1:
printf("一辺の長さ");
scanf("%d",&hen);
kotae = hen * hen;
break;
case 2:
printf("縦の長さ");
scanf("%d",&tate);
printf("横の長さ");
scanf("%d",&yoko);
kotae = tate * yoko;
break;
case 3:
printf("半径の長さ");
scanf("%d",&en);
kotae = 3.141592 * en * en;
break;
}
menseki = kotae;
printf("面積は%dcmです。",menseki);
return 0;
int main(void){
int i,shurui,menseki,seihoukei,chouhoukei,en;
int hen,tate,yoko,hankei,kotae;
printf("図形の種類(正方形=1、長方形=2、円=3)\n");
scanf("%d",&shurui);
switch (shurui) {
case 1:
printf("一辺の長さ");
scanf("%d",&hen);
kotae = hen * hen;
break;
case 2:
printf("縦の長さ");
scanf("%d",&tate);
printf("横の長さ");
scanf("%d",&yoko);
kotae = tate * yoko;
break;
case 3:
printf("半径の長さ");
scanf("%d",&en);
kotae = 3.141592 * en * en;
break;
}
menseki = kotae;
printf("面積は%dcmです。",menseki);
return 0;
}