ここから本文です

c言語のプログラミングのこの問題が全然できなくて、誰か解説していただくことはで...

りょーたろーさん

2020/6/114:15:46

c言語のプログラミングのこの問題が全然できなくて、誰か解説していただくことはできないでしょうか。お願いします。

三角形、長方形、円、台形の面積を計算さるプログラムを作成しなさい。ただし以下の仕様に従って作成すること
・面積の計算は、double型の実数で行うこと
・プログラムのはじめに、計算したい面積の種類を選択させる。三角形の場合は、T、長方形の場合は、R、円の場合は、C、台形の場合は、Dと入力することにより決定する。
・その後、面積を求めるためのパラメータを入力させる。例えば、三角形の場合は、「底辺」と「高さ」になる。
・各面積を計算する関数を作成する。品数は面積を求めるためのパラメータ、戻り値は面積とする。
(・三角形の面積を求める関数(関数名: area_trianjel())を作成すること
・長方形の面積を求める関数(関数名:area_resctanjel())を作成すること
・円の面積を求める関数(関数名:area_circle())を作成すること
・台形の面積を求める関数(関数名:area_daikei())を作成すること)
・円周率は、3.14159265とする。
・最後に、関数より戻ってきた値(戻り値)を使って面積を表示させる。

結果例

計算したい面積は
三角形(T) 長方形(R) 円(C) 台形(D)のどれですか?
アルファベットの大文字一文字を入力してください:R
縦の長さを入力:10
横の長さを入力10

rの面積:100.0000

閲覧数:
25
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

あみやさん

編集あり2020/6/115:20:52

#include <stdio.h>

typedef struct {int n; double (*f)();} COM;

double inp(char *mes){
double r;
printf("%sの長さを入力:",mes);
scanf("%lf",&r);
return r;
}

double area_trianjel(){return inp("高さ")*inp("底辺")/2;}
double area_resctanjel(){return inp("縦")*inp("横");}
double area_circle(){return inp("半径")*2*3.14159265;}
double area_daikei(){return (inp("上辺")+inp("下辺"))*inp("高さ")/2;}

int main(void){
char c;
COM a[] = {{'T',area_trianjel},{'R',area_resctanjel},{'C',area_circle},{'D',area_daikei},{0,NULL}};

printf("計算したい面積は\n三角形(T) 長方形(R) 円(C) 台形(D)のどれですか?\nアルファベットの大文字一文字を入力してください:");
scanf("%c",&c);

for(int i=0;a[i].n;i++){
if(c==a[i].n){
printf("%cの面積:%f",c,a[i].f());
return 0;
}
}
printf("ERROR!\n");
}

質問した人からのコメント

2020/6/1 15:24:17

ありがとうございました!、

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる