計算結果をポインタで表示させるにはどうしたらいいですか??
課題なのですが計算結果ポインタで示すという条件を満たさなかったため0点でした。。。
#include<stdio.h>
void cul(float x, float y, float *sum, float *sub, float *multi, float *div){
*sum=x+y;
*sub=x-y;
*multi=x*y;
*div=x/y;
}
int main(void){
float a,b;
float sum=0, sub=0, multi=0, div=0;
printf("Input a and b:"); scanf("%f %f",&a, &b);
cul(a,b,&sum, &sub, &multi, &div);
printf("%.6f + %.6f = %.6f\n",a,b,sum);
printf("%.6f - %.6f = %.6f\n",a,b,sub);
printf("%.6f * %.6f = %.6f\n",a,b,multi);
printf("%.6f / %.6f = %.6f\n",a,b,div);
return 0;
}
No.2ベストアンサー
- 回答日時:
なんか、問題文がちょっと誤解を受けやすい文章になっている気がしますね。
ま、いいたいのは、「printfの変数リストをポインターで示せ」ってことなんでしょうね。
printfの表示指定は変えることができない。で、変数部分をポインターを使えってのであれば、
printf("%.6f + %.6f = %.6f\n",*(&a),*(&b),*(&sum));
って感じになるのかな?でも、この部分でポインタを使うと複雑になっちゃいますね。
あるいは、表示用の関数をもう1個作って、そっちにculと似た感じでポインタを渡して、表示させたらよかったのかも?
No.5
- 回答日時:
sub の NULL チェックを忘れてるよ>#4.
以下は余談.
加算の結果 (和) が sum であるのに対し減算の結果 (差), 乗算の結果 (積), 除算の結果 (商と剰余) をそれぞれ difference, product, quotient および reminder と呼ぶ. 演算そのものは
・加算: addition (または summation だけどこれは「たくさんの合計」を含意することもある)
・減算: subtraction
・乗算: multiplication
・除算: division
だね.
そういえば「cul」ってなんだろう. 「演算」なら calculation だからふつうは cal だと思うんだ.
No.4
- 回答日時:
>ポインタ変数のみを使用して2つの実数の四則演算結果を出力する
を真に受けて、No3の方のアドバイスに従い、mallocを使用して、
全ての変数をポインタ変数にして作成してみました。
これで、合格点がもらえるかどうかはわかりませんが、
全ての変数は、ポインタ変数のみで作成してあります。
#include<stdio.h>
#include<stdlib.h>
void cul(float x, float y, float *sum, float *sub, float *multi,
float *div)
{
*sum = x + y;
*sub = x - y;
*multi = x * y;
*div = x / y;
}
int main(void)
{
float *a, *b;
float *sum, *sub, *multi, *div;
a = malloc(sizeof(float));
b = malloc(sizeof(float));
sum = malloc(sizeof(float));
sub = malloc(sizeof(float));
multi = malloc(sizeof(float));
div = malloc(sizeof(float));
if (a==NULL || b==NULL || sum==NULL || multi==NULL || div==NULL){
printf("malloc error\n");
return 10;
}
printf("Input a and b:");
scanf("%f %f", a, b);
cul(*a, *b, sum, sub, multi, div);
printf("%.6f + %.6f = %.6f\n", *a, *b, *sum);
printf("%.6f - %.6f = %.6f\n", *a, *b, *sub);
printf("%.6f * %.6f = %.6f\n", *a, *b, *multi);
printf("%.6f / %.6f = %.6f\n", *a, *b, *div);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミング実行後に表示される値を答えよ #include <stdio.h> void main 4 2022/05/28 10:20
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# プログラミング実行後の表示される値を答えよ #include<stdio.h> void main( 7 2022/05/20 00:07
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
fopne で失敗する原因
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
C言語のポインタに直接アドレス...
-
C言語でのconstを返す関数
-
C言語の関数と配列に関する質問
-
戻り値で構造体を返すことは可...
-
LPSTR型の初期化について
-
パスからファイル名を抽出
-
【なぜポインタを使うのか】
-
ハンドル、アドレス、ポインタ...
-
C++とWIN32APIとゲームプログラ...
-
コンストラクタでnewを失敗した...
-
ポインタを使うことのメリット...
-
AESのC言語による実装
-
NULLとブランクの違い
-
C言語でポインタを使ってピタ...
-
TCHAR文字列内の検索について
-
単方向リスト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
C言語の関数と配列に関する質問
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
セグメントエラー
-
アプリを32bitから64bit移行
-
コンストラクタでnewを失敗した...
-
ExcelVBAでのkernel32(64bit)
-
Cで作成したDLL関数をVBから呼...
-
ハンドルはポインタか
-
DLL<->VB間での受け渡し(文字...
-
C言語でのconstを返す関数
-
ポインタについて
-
参照型で受け取った引数をポイ...
-
TCHAR文字列内の検索について
-
デバイスハンドルとは?
-
基本アルゴリズムの『返す』の...
おすすめ情報
ポインタ変数のみを使用して2つの実数の四則演算結果を出力する