私は現在c言語初心者ですが関数を使い円柱の体積を求めてるのですが
なぜかエラーだらけです。どなたか何故エラーが起きるのか教えていただけませんか?
#include<stdio.h>
int taiseki(int *volu);
int main()
{
int volu=0;
taiseki(int &volu);
printf("%d",volu);
}
int taiseki(int *volu)
{
int i = 2;
int c = 3;
int t = 6;
int a = 2*i*c*c/4;
int b =i*c*t;
volu=a/b;
return volu;
}
こんなかんじですがいかがでしょう?
No.3
- 回答日時:
そもそも、円柱の体積を求める式はそれで正しいのでしょうか?
円周率の値(約3.14)がどこにも登場していませんね。
ゆとり教育世代なので3を使っている、ということでしょうか。
また、底面の半径や円柱の高さ、という重要な変数の名前が
iとかcとかtとかいうのは、ちょっといただけません。
「名は体を表わす」よう、半径や高さであることが
一目見てわかるような名前を付けることを強くお勧めします。
ありがとうございます。
たしかに誰が見てもわかりやすい方が良いですよね。
関数とポインタの使い方がいまいちわからなかったので。
そこまで気が回らず、自分だけの理解で終わっていました。
以後だれからも見やすくというのを意識したいと思います。
No.2ベストアンサー
- 回答日時:
いろいろあるのですが、
(1)main関数の戻り値を返していません。
(2)taiseki関数の戻り値を使用していない→戻り値なし(void)
(3)小数はint型で表現できません→double型を使用
(4)既にvolu変数を宣言しているのに、再宣言していた
(5)ポインタ変数に代入するときは、*をつける。
========================================
#include<stdio.h>
void taiseki(double *volu); //(2)(3)
int main(){
double volu = 0; //(3)
taiseki(&volu); //(4)
printf("%f",volu);
return 0; //(1)
}
void taiseki(double *volu){ //(2)(3)
int i = 2;
int c = 3;
int t = 6;
double a = 2*i*c*c/4; //(3)
int b = i*c*t;
*volu = a/b; //(5)
//return volu; //(2)
}
========================================
こんな感じでしょうか
No.1
- 回答日時:
ちょっと割愛しますが
int taiseki(int *volu)
{
return volu;
}
このような場合、関数taiseki()の戻り値としてvoluを返します。
例を2パターン書いてみたので試してみて
1)
void taiseki(int *volu);
int main()
{
int volu=0;
taiseki(int &volu);
printf("%d",volu);
}
void taiseki(int *volu)
{
int i = 2;
int c = 3;
int t = 6;
int a = 2*i*c*c/4;
int b =i*c*t;
*volu=a/b;
return;
}
2)
int taiseki(void);
int main()
{
int volu=0;
volu = taiseki();
printf("%d",volu);
}
void taiseki(int *volu)
{
int i = 2;
int c = 3;
int t = 6;
int a = 2*i*c*c/4;
int b =i*c*t;
volu=a/b;
return volu;
}
ありがとうございます。
早速試してみましたが、二つともエラーが起きてしまいます。
どこでエラーしているのかさっぱりわかりません。
引数の問題や間接参照レベルがちがうらしいのですが。。。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
比較回数と交換回数表示について
-
複数桁10進数の*桁目だけを抽出...
-
nCmの関数
-
構造体の勉強中です 合計点の高...
-
C言語 配列と関数の練習問題
-
[C言語] 関数を利用する計算
-
実数の整数部,小数部の取得
-
C言語での引数の省略方法
-
数字列を3桁ごとにカンマで区切...
-
アスタリスクでダイヤ型を作る
-
覆面算のプログラムが分かりません
-
C言語の基礎 . 2乗値の差につ...
-
c言語
-
プログラミング
-
【C++】関数ポインタの使い方
-
毎回違う乱数を生成するにはど...
-
if と配列の組み合わせ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報