私は以下のコードで分かるように、これを行う方法について一般的な考えがあります。私が抱えている唯一の問題は交換部分を仕上げることです。基本的に、私がやろうとしているのは、最も低い変数の値を1番目の変数に、2番目の中間値を2番目の変数に、3番目の変数を3番目の変数に移動することです。ポインタとCとの交換
私はインターチェンジとテンポラリーをどういう形で使っているのか知っていますが、どのようにして3つの値tempが何らかの形でオーバーライドされるため、それを完成させるでしょう。私は何が欠けていますか?だから基本的にa = 4.0, b = 7.0, c = 1.0
、c (1.0)
はa
に入る必要があり、a (4.0)
はb
に入る必要があり、b (7.0)
はc
に入る必要があります。 ありがとう!
#include <stdio.h>
void interchange(double * x, double * y, double * z);
int main(void)
{
double a = 4.0, b = 7.0, c = 1.0;
printf_s("Originally a = %d, b = %d, and c = %d.\n", a, b, c);
interchange(&a, &b, &c);
printf_s("Now, a = %d, b = %d, and c = %d.\n", a, b, c);
return 0;
}
void interchange(double * x, double * y, double * z)
{
double temp;
temp = *z;
*y = *z;
* = temp
// what am I missing here? I cant get my head around this above ^^^
}
ガイダンスのおかげで!
ちょうどミニバブルソートを行いますzの最大値。次にxとyを比較し、最大をyに移動します。 – Unimportant