我必須寫一個C程序執行以下操作:陣列指針和函數
- 編寫一個函數,有三個參數:一個指向範圍的第一 元件在陣列中,一個指針到 後面的元素是數組中一個範圍的結尾,以及一個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++;
}
}
任務應該是設置由兩個指針指定的* range *的每個元素嗎?這似乎比您實際編寫的更適合設置(整個)數組中的每個元素。 –
請注意,全局數組在C中無效初始化 - 我保留判斷它是否在C++中有效(它可能足夠現代C++)。其他三個全局變量是不必要的。你應該儘可能避免全局變量。有時他們是必要的;在這裏,他們不是。即使數組可以/應該在'main()'中定義和初始化。此外,「Sorter」這個名字對於「Setter」或其他人來說是一種惡意行爲;你不排序數組,但將其元素設置爲單個值。 (我想,如果你設置整個數組,然後排序,但...) –