好的,這就是交易。我已經在這個問題上工作了幾天,並嘗試了所有可用的資源。就在今天早上,我將最後一封電子郵件發送給我的教授,但我想在等待他的回答時繼續努力。我應該返回一個指針,指向0到1410之間的一個隨機數組中的最小值,然後通過指針算術賦予它們(讓這部分工作得很好)。這個任務包含了一個框架文件,但我喜歡從頭開始構建一些東西(當然使用他的參數)。這裏是我的代碼:返回最小值作爲函數的指針
#include <iostream>
#include <cstdlib>
using namespace std;
int* find_smallest_number(int*, int);
int main()
{
const int size = 10;
int random_array[size] = {};
int* smallestNumber = find_smallest_number(random_array, size);
srand(time(NULL));
for(int i = 0; i < size; i++)
{
*(random_array + i) = rand()%1410;
cout << random_array[i] << endl;
cout << &*(random_array + i) << endl;
}
cout << "The smallest number is " << *smallestNumber << endl;
return 0;
}
int* find_smallest_number(int *random_array, int size)
{
/*
for(int i = 0; i < size; i++)
{
if(*(random_array + i) > *(random_array + 1))
{
return *(random_array + i);
}
else if(*(random_array + i) < *(random_array + 1))
{
return *(random_array+1);
}
} */
return &min_element;
}
我真的不能告訴你我嘗試了多少種不同的方式。這只是最近的一次嘗試(所有事情都以大量的[headdesk]結束)。任何提示或提示,你們可以拿出我來嘗試?我試圖創建另一個變量來保存值/地址,我嘗試了許多不同的比較方式,就像我現在知道的那樣(這個min_element是我在互聯網上發現的東西)。我可以偶爾讓我的代碼編譯,但是當我這樣做時,它只會返回數組中FIRST元素的值/地址(不管我的代碼是什麼樣子)。如果我嘗試返回一個指針,它會生氣,並告訴我「int無效轉換爲int *」請幫助我? (另外,對不起,如果我的代碼的格式是一點點,我試圖按照它的說明,但可能也失敗了:/)
那麼,你到底有什麼問題?顯示錯誤的輸出或錯誤消息。 – Marcin 2012-03-11 16:09:53
在你用數組填充數組之前,你似乎正在調用'find_smallest_number' **。這不會很好結束。此外,你的代碼不會編譯(什麼是'min_element'?)。 – 2012-03-11 16:10:08