アドレスとポインタについての質問
アドレスとポインタについての質問
2つの実数を外部から入力して
それらを相加平均と相乗平均を計算する関数void souka_soujou()を作成し、引数は各自で考え
負の数が入力される場合は正の数が入力されるまで入力を要求するプログラムがどうしても
できません。
相加平均=a+b/2
相乗平均=√ab であらわせますが どのようにポインタをつかえばいいのでしょうか?
それらを相加平均と相乗平均を計算する関数void souka_soujou()を作成し、引数は各自で考え
負の数が入力される場合は正の数が入力されるまで入力を要求するプログラムがどうしても
できません。
相加平均=a+b/2
相乗平均=√ab であらわせますが どのようにポインタをつかえばいいのでしょうか?
Re:アドレスとポインタについての質問
「どうしてもできない」というのは、
1)途中まで考えてみたが、あるところから先へ進めない。
2)自分では全く考える気がなく、とにかく答えがほしい。
3)その他
のうち、どれでしょうか。
1)途中まで考えてみたが、あるところから先へ進めない。
2)自分では全く考える気がなく、とにかく答えがほしい。
3)その他
のうち、どれでしょうか。
Re:アドレスとポインタについての質問
> どのようにポインタをつかえばいいのでしょうか?
確実にポインタが必要なのは、関数呼出し演算子のオペランドだけです。
あとは、入出力にも何らかのポインタが必要になる可能性は高いでしょう。
確実にポインタが必要なのは、関数呼出し演算子のオペランドだけです。
あとは、入出力にも何らかのポインタが必要になる可能性は高いでしょう。
Re:アドレスとポインタについての質問
> <2>ですね。
> 全く分かりません。
メールアドレスを公開して素性を明らかにする姿勢は評価しますが、それでは大学の恥をさらすようなものです。
> 全く分かりません。
メールアドレスを公開して素性を明らかにする姿勢は評価しますが、それでは大学の恥をさらすようなものです。
Re:アドレスとポインタについての質問
22:35の投稿では、「MAIL」欄に何も入力せずに投稿したので、
お名前のところにメールアドレスへのリンクがありません。
しかし、それ以外のこれまでの投稿では同欄にメールアドレスが
入っていました。
よって、お名前「しょしょしょしんしゃ」のところへ
マウスカーソルを持っていくと、ブラウザーの左下にメールアドレスを
表示します。
また、お名前のところをダブルクリックすると、
mailto: プロトコルに関連付いているメーラーが起動して、
あなたあてのメールを作成できる状態になります。
お名前のところにメールアドレスへのリンクがありません。
しかし、それ以外のこれまでの投稿では同欄にメールアドレスが
入っていました。
よって、お名前「しょしょしょしんしゃ」のところへ
マウスカーソルを持っていくと、ブラウザーの左下にメールアドレスを
表示します。
また、お名前のところをダブルクリックすると、
mailto: プロトコルに関連付いているメーラーが起動して、
あなたあてのメールを作成できる状態になります。
Re:アドレスとポインタについての質問
そうなんですか。
はじめて知りました。
ところで話は変わりますが、このプログラムで最大値と最小値の差を
ポインタの要領で void mmd を使い 1つの関数として独立させることができるのでしょうか?
たかぎさんの注意を受け、一応 考えてみましたが、何か違いがありますでしょうか。
#include <stdio.h>
float saidai (float data[/url],float no);
float saishou (float data[/url],float no);
int main(void){
float a,b,c,d;
printf("4つの実数を入力せよ\n");
scanf("%f %f %f %f",&a,&b,&c,&d);
float x[4] ={ a, b, c, d };
float max ;
float min ;
float sa ;
printf("4つの実数を%f,%f,%f,%fとしました。\n",a,b,c,d);
max = saidai( x ,4 );
min = saishou( x,4 );
sa=max-min;
printf("このうち最大値は%fで,最小値は%fであり,その差は%fとなる。",max,min,sa);
return 0;
}
float saidai(float data[/url],float no)
{
float max;
int i;
max=data[0];
for(i=1;i<no;i++){
if( data>max){
max = data;
}
}
return max;
}
float saishou(float data[/url],float no )
{
float min;
int i ;
min=data[0];
for(i=1;i<no;i++){
if(data<min){
min = data;
}
}
return min;
}
}
はじめて知りました。
ところで話は変わりますが、このプログラムで最大値と最小値の差を
ポインタの要領で void mmd を使い 1つの関数として独立させることができるのでしょうか?
たかぎさんの注意を受け、一応 考えてみましたが、何か違いがありますでしょうか。
#include <stdio.h>
float saidai (float data[/url],float no);
float saishou (float data[/url],float no);
int main(void){
float a,b,c,d;
printf("4つの実数を入力せよ\n");
scanf("%f %f %f %f",&a,&b,&c,&d);
float x[4] ={ a, b, c, d };
float max ;
float min ;
float sa ;
printf("4つの実数を%f,%f,%f,%fとしました。\n",a,b,c,d);
max = saidai( x ,4 );
min = saishou( x,4 );
sa=max-min;
printf("このうち最大値は%fで,最小値は%fであり,その差は%fとなる。",max,min,sa);
return 0;
}
float saidai(float data[/url],float no)
{
float max;
int i;
max=data[0];
for(i=1;i<no;i++){
if( data>max){
max = data;
}
}
return max;
}
float saishou(float data[/url],float no )
{
float min;
int i ;
min=data[0];
for(i=1;i<no;i++){
if(data<min){
min = data;
}
}
return min;
}
}
Re:アドレスとポインタについての質問
> 何か違いがありますでしょうか。
とにかくhttp://l.huu.cc/board/board.htmlを熟読してください。
つぎに、void mmdとは何でしょう?
初出だと思うのですが...
> 何か違いがありますでしょうか。
souka_soujouを作る課題だったのでは?
とにかくhttp://l.huu.cc/board/board.htmlを熟読してください。
つぎに、void mmdとは何でしょう?
初出だと思うのですが...
> 何か違いがありますでしょうか。
souka_soujouを作る課題だったのでは?
Re:アドレスとポインタについての質問
ハイ
すみません souka_soujouはおかげで完成しました。
以下の問題に迷っているのです。
4つの実数a,b,c,dを外部から入力できるようにして
そららのうちの最大値、最小値および最大値と最小値の差を計算する部分を
1つの関数 void mmd() として独立させるプログラムを作成するという内容です。
分かり難くて、申し訳ありませんでした。
「最大値、最小値および最大値と最小値の差を計算する部分を1つの関数 void mmd() として独立させる」
という部分が 特に上手くできないのです。
すみません souka_soujouはおかげで完成しました。
以下の問題に迷っているのです。
4つの実数a,b,c,dを外部から入力できるようにして
そららのうちの最大値、最小値および最大値と最小値の差を計算する部分を
1つの関数 void mmd() として独立させるプログラムを作成するという内容です。
分かり難くて、申し訳ありませんでした。
「最大値、最小値および最大値と最小値の差を計算する部分を1つの関数 void mmd() として独立させる」
という部分が 特に上手くできないのです。
Re:アドレスとポインタについての質問
取り敢えず処理の方向としては
①double型で実数を二つ入力させる(scanf)
②正の数かを判別し、正でないなら①に戻る
③相加相乗を計算するvoid souka_soujou(double a,double b,double *souka,double *soujou)を呼び出す。
④表示する。(printf)
ですかね?
#平方根はmath.hのsqrtで計算できます。
①double型で実数を二つ入力させる(scanf)
②正の数かを判別し、正でないなら①に戻る
③相加相乗を計算するvoid souka_soujou(double a,double b,double *souka,double *soujou)を呼び出す。
④表示する。(printf)
ですかね?
#平方根はmath.hのsqrtで計算できます。
Re:アドレスとポインタについての質問
C++です。
規約は読みました
熟読はしていませんが、私の質問に不備があるのでしょうか?
すみませんでした。欠点があるなら、言ってください。
lbfuvabさん、ありがとうございました。
関数void souka_soujou()は、完成していましたが、
手直しの必要があったので、助かりました。
今の問題の処理の方向を教えていただけると、もっと助かります。
規約は読みました
熟読はしていませんが、私の質問に不備があるのでしょうか?
すみませんでした。欠点があるなら、言ってください。
lbfuvabさん、ありがとうございました。
関数void souka_soujou()は、完成していましたが、
手直しの必要があったので、助かりました。
今の問題の処理の方向を教えていただけると、もっと助かります。
Re:アドレスとポインタについての質問
#include <stdio.h> float saidai (float data[/url],float no); float saishou (float data[/url],float no); int main(void){ float a,b,c,d; printf("4つの実数を入力せよ\n"); scanf("%f %f %f %f",&a,&b,&c,&d); float x[4] ={ a, b, c, d }; float max ; float min ; float sa ; printf("4つの実数を%f,%f,%f,%fとしました。\n",a,b,c,d); max = saidai( x ,4 ); min = saishou( x,4 ); printf("この部分を1つの関数として独立させるのでしょうか?") sa=max-min; printf("このうち最大値は%fで,最小値は%fであり,その差は%fとなる。",max,min,sa); return 0; } float saidai(float data[/url],float no) { float max; int i; max=data[0]; for(i=1;i<no;i++){ if( data>max){ max = data; } } return max; } float saishou(float data[/url],float no ) { float min; int i ; min=data[0]; for(i=1;i<no;i++){ if(data<min){ min = data; } } return min; } }
ソースコードの貼り付けはこれでいいのでしょうか?
あと 私の本来の質問にもヒントがあれば、お願いします。
このソースコードをみて、何か気づいた人がいればお願いします。
質問の内容は No:22286 に記載してあります。
Re:アドレスとポインタについての質問
C++であれば、
template <class Iterator, typename T> void mmd(Iterator first, Iterator last, T* 最大値, T* 最小値, T* 差) { *最大値 = *std::max_element(first, last); *最小値 = *std::min_element(first, last); *差 = *最大値 - *最小値; }でよいのでは?
Re:アドレスとポインタについての質問
何度もすみません
1番下ですか?
template <class Iterator, typename T>
とはなんですか 必要あるのですか?
void mmd(Iterator first, Iterator last, T* 最大値, T* 最小値, T* 差) { *最大値 = *std::max_element(first, last); *最小値 = *std::min_element(first, last); *差 = *最大値 - *最小値; }は何処にいれるのでしょうか?
1番下ですか?
template <class Iterator, typename T>
とはなんですか 必要あるのですか?
Re:アドレスとポインタについての質問
本当にC++ですか?
ソース見る限りCだけどなぁ。
わからないことがあればまずググりましょう。
大抵のことはここで質問するより早く解決しますし、あなたにとっても勉強になります。
ソース見る限りCだけどなぁ。
わからないことがあればまずググりましょう。
大抵のことはここで質問するより早く解決しますし、あなたにとっても勉強になります。