私はCのプログラミングとstackoverflowの新機能です。私は明日の中間があり、勉強中にこの質問に遭遇しました。フォーマットに関する私の間違いに対して、深くお詫び申し上げます。整数ポインタ
質問:2つの整数と整数ポインタを取るdivideという名前の関数を記述します。この関数は、最初の整数を2番目の整数に分割し、その結果を整数として返し、余りを整数ポインタパラメータで指定されたアドレスに配置する必要があります。
与えられたメインコードは、a、bという2つの整数を読み込み、初期化なしで2つの整数res、remを作成します。 res変数が/ bになるように関数呼び出しを完了し、呼び出し後にrem変数が残りの変数になるようにします。
例:
Input 12 5 Output 2 2
Input 57 7 Output 8 1
は、私が書いたコードは次のとおりです。私はこれを実行すると
int divide (int a , int b);
int divide (int a , int b)
{
int res;
int rem;
res = a/b;
rem = a - res * b ;
return res, rem;
}
int main(void)
{
int a,b;
scanf("%d%d", &a, &b);
int res, rem;
res = divide(a,b);
printf("%d %d", res, rem);
return 0;
}
、私は解像度の正しい値を取得しますが、レムは常にゼロに等しいです。 rem値に整数ポインタを使用するにはどうすればよいですか? ありがとうございます。
* "2つの整数と整数ポインタをとる関数" * - 関数には2つの整数しかかかりません。 C言語のように、複数のプリミティブ値を返す必要があるときは、これらの値を保持する 'struct'を定義するか、ポインタパラメータで1つ以上の値を返します。 Tldr;関数のプロトタイプは 'int divide(int a、int b、int * rem)'でなければなりません。 – Groo
あなたは 'divide'の代わりに標準関数[div](http://en.cppreference.com/w/c/numeric/math/div)を使うことができます。あなたはすでに存在するものを作るべきではありません。 – BLUEPIXY
Cでは、1つの値だけを返すことができます。 –