- ベストアンサー
[C言語] 関数を利用する計算
年a% の複利で、b円借りて、c年後にすべて返済した場合の返済額を計算するプログラムを、関数を利用して作りたいのです。 a%でc年借りた場合の利息を計算する部分を関数とすると、 (1+r/100)^c なので、これを関数としてプログラムを組みたいのですが、 関数の使い方がいまいちわからなく、中々組めません。 main()から関数を呼び出し、その数値を返した値にbをかければ答えが出ると思うのですが、 main()から関数を呼び出す、というのはどういう風にかけばいいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
関連するQ&A
- C言語プログラミング
C言語プログラミングに関して質問です。 元本、年数、単利、複利を順にa,b,c,dと置き、年数経過後の単利、複利の場合のそれぞれの額をe,fとしたとき、 e = a+(a*c)*b となるのはわかるのですが、複利の場合の金額を求める時の計算式はどう書けばよいのですか。 また、複利が単利より小さい時、何年後に複利のときの金額が単利のときの金額を越すかを表示したいのですが、次の書き方で合ってますか。 if(d < c){ b = 2; while(1){ if(f > e) break; else b++; } printf("%d年後、単利のときの金額を複利のときの金額が追い越します\n",b); }
- ベストアンサー
- C・C++・C#
- C言語教えてください。
(1)二次方程式y=a*x*x+b*x+cについて、a=1.0,b=2.0,c=3.0として、x=1.1,2.2,3.3,4.4のときのyをもとめる計算を行い、式と係数値とxと対応するyの値を表示するプログラムを作成せよ。 (2)xを与えて、xの2乗、3乗を計算し、xと対応する結果を表示するプログラムを作成せよ。なお、x=3,5,7,9とする。
- ベストアンサー
- C・C++・C#
- C言語 関数の作り方
1~30の数字を使い、直角三角形が成り立つ組み合わせを見つけよ。(a<=b<=c) ただし、a,b,c辺を見つけて配列に入れる機能は関数にすること。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #include <stdio.h> int main(void) { int a,b,c,i=0,ct=0; int ahen[20]; int bhen[20]; int chen[20]; for(a=1;a<31;a++) { for(b=1;b<31;b++) { for(c=1;c<31;c++) { if(a*a+b*b==c*c && a<=b && b<=c) { ahen[i]=a; bhen[i]=b; chen[i]=c; i=i+1; ct++; } } } } for(i=0;i<ct;i++) { printf("%d %d %d\n",ahen[i],bhen[i],chen[i]); } return 0; } 実行例: 3 4 5 5 12 13 6 8 10 7 24 25 8 15 17 9 12 15 10 24 26 12 16 20 15 20 25 18 24 30 20 21 29 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー とりあえず、関数を使わない上記のプログラムを作って見ました。 ここから関数を使ったものに変更したいのですが、配列が絡むとさっぱり分かりません。 printfで表示する箇所以外を全て関数にするのだと思いますが、どなたかご教示願います。
- 締切済み
- C・C++・C#
- エクセルにて空白を利用した関数
宜しくお願いいたします。 エクセル2003でセル空白を利用した関数を作成したいと考えております。 具体的には、 A1 B1 A2 B2 C2 とセルに数値を入力したとします。(C2に関数・計算式を入力) このときに、A1ーB2で単純な引き算を設定する際に、A2とB1が空白である場合に限って A1-B2の答えがC2のセルに反映されると言ったような、条件設定は関数でできるものなのでしょうか? つたない質問で誠に申し訳ありませんが、宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- C言語で計算が合いません(初心者)
C言語で計算が合いません(初心者) 簡単な計算のプログミングをしているのですが 計算が合わなくて困っています。 整数型変数aと実数型変数bを定義 整数型変数cとdを定義して、c=0.5*a*b、d=a/2*b 実数型変数eとfを定義して、e=0.5*a*b、f=a/2*b という内容のプログラムを作ったのですが a=7,b=2.4を代入してみた結果 ---------------------------- Input a>>7 Input b>>2.4 8 7 8.400000 7.200000 ---------------------------- となりました どこが間違っているのでしょう? 答えは8.4でcが8なのは有効数字のためだと思いますが dとeで答えが全く違う理由が分かりません。 下に私が書いたものを貼っています。 ---------------------------- #include<stdio.h> int main(void){ int a,c,d; double b,e,f,ans; printf("Input a>>"); scanf("%d",&a); printf("Input b>>"); scanf("%lf",&b); c=0.5*a*b; printf("%d\n",c); d=a/2*b; printf("%d\n",d); e=0.5*a*b; printf("%lf\n",e); f=a/2*b; printf("%lf\n",f); return 0; } ---------------------------- よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- C言語 関数について
協力お願いします。 2問あります。 1問目です。 西暦年yearを引数として受け取り, 閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し, そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく, メイン関数main()も含む下記プログラムを完成させる形で作成する。 #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */ 2問目です。 mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.プログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述すること。 よろしくお願いします。
- 締切済み
- C・C++・C#
- C言語でポインタを使ってピタゴラスの定理の関数を作りたいです
私は今あるプログラムを書いていて、その過程でどうしても関数を使ってピタゴラスの定理を作りたいのですが、ポインタの渡し方がうまくいきませんでした。ポインタを使わない場合は次の通りでした。 double pythagoras(double a, double b){ double c; c = a*a+b*b; c = sqrt(c); return c; } これはメイン関数で二つの値a,b(int型)をpythagoras関数に入れて、ピタゴラスの定理を適用させてメイン関数にc(double型)を戻り値として返すものです。 しかし2つの値a,bがint型ではなくポインタだとうまくいかないです。どのような関数を作ればいいか分かる人がいたらぜひ教えてください。ちなみに現在a,bは次のように宣言してあります。 struct node { int a; int b struct node *next; };
- 締切済み
- C・C++・C#
- 複利計算 利息を求める
720万円を複利利息 r %で138年運用したら4,000万円になった。この場合の複利利息は何%か。 (1) エクセル関数で求める方法 (2) エクセル関数を利用しないで計算式で求める方法 (1)(2)いずれも、回答がほしいのですが。教えてください。
- ベストアンサー
- その他(暮らしのマネー)
- C言語 関数の問題
C言語(関数の問題)で読み込んだ4つの整数の最大値を求めプログラムで 整数を2つペア比較し、関数の入れ子を用いて最大値を見つけて、表示する。 というプログラムを作成したいのですが #include<stdio.h> int maxof(int a, int b) { if(a > b) return (a); else return (b); } int max4(int a, int b, int c, int d) { max(max(a, b), max(c, d)); } int main(void) { int num1,num2, num3, num4; ------ 整数の読み込み printf("最大値は%dです。", max4(num1, num2, num3, num4)); return(0); } と記述すると、上手くいったのですが これを max関数だけを用いて作成できますでしょうか? 整数の比較は全てmax関数で行いたいです。
- 締切済み
- 情報工学
- Windows10を立ち上げるたびに、画面の真ん中にファイルのダウンロード、このファイルを開くか、または保存しますか?名前:inkpack.jpgとある。
- また、shop.epson.jpの表示もありますが、これは正規のEPSON社の関係情報でしょうか?どちらにしてもshop.epsonの名が表示されているので、情報か表示の消し方が知りたいです。
- EPSON製品に関する質問です。
お礼
int main()は後ろに来るんですね。 わからなかった色々な部分を書いてくれたので大方作ることができました。 ありがとうございました。