私が行うには、Cプログラムを記述する必要があり、次の配列ポインタと関数は
- 3つの引数を取る関数書く:配列の範囲の最初の 要素へのポインタ、ポインタへの の要素は配列内の範囲の終わりとint値です。関数 に、配列の各要素をint値に設定します。
私のコードは機能していません。ここまで私がこれまで持っていたことがあります。どんな助けもありがとうございます。
#include <stdio.h>
#include <iostream>
int listNumbers[3]{ 1,2,3 };
void Sorter(int *first, int * last, int *value);
int * first = &listNumbers[0];
int * last = &listNumbers[2];
int value;
int main() {
printf("your list numbers are:\n");
int i;
for (int i = 0; i < 3; ++i) {
printf("%d", listNumbers[i]);
}
printf("\n");
printf("enter an integer:\n");
scanf_s("%d", &value);
Sorter(first, last, &value);
printf("your new list numbers are:\n");
int j;
for (int j = 0; j < 3; ++j) {
printf("%d", listNumbers[j]);
}
printf("\n");
system("PAUSE");
return 0;
}
void Sorter(int *first, int * last, int *value) {
int i=0;
printf("value = %d\n", &value);
*first = value;
while (i <= *last) {
*(first + i) = value;
i++;
}
}
タスクは、2つのポインタによって指定された*範囲*の各要素を設定することになっていますか?これは、あなたが実際に書いたものよりもフィットして、(全体の)配列の各要素を設定するようです。 –
グローバル配列は、C++で無効に初期化されていることに注意してください。その他の3つのグローバル変数は不要です。できるだけグローバル変数を避けるべきです。時にはそれらは必要です。ここでは、そうではありません。配列さえも 'main()'の中で定義し初期化することができます。また、「選別者」という名前は、「セッター(Setter)」などのための悪化主義である。配列をソートするのではなく、その要素を単一の値に設定します。 (私はあなたが配列全体を設定すると、それはその後、ソートされていると思うが...) –