此段程式為何不通過。這段c 程式無法通過編譯

時間 2025-03-25 09:05:29

1樓:井鈺

寫程式,你要正確的把程式除錯好,你要知道這個錯誤資訊是什麼意思。

為什麼會這樣,出現這樣的錯誤是什麼緣故,從而,下次在出現這樣的錯誤你也就不會陌生了,也會知道到底是出現什麼錯誤了,這個程式提示的錯誤資訊是,findval不是乙個函式,為什麼呢,原因是你既定義了名字叫這個的變數,又定義了名字叫這個的函式,你進行的對該名字的函式宣告的位置在定義該變數之前,所以,編譯器在掃瞄翻譯的時候,首先將它確定為函式,但是在之後面,由於你又定義了這樣乙個同名字的變數,所以編譯器就重新轉向了,他在這裡又認為這個叫這個名字的是個變數,所以之後編譯器都這麼認為的,它就是個變數,不是函式。因此,你在後面使用函式呼叫的格式,顯然是錯誤的,因為編譯器已經認為它是變數了而不是函式,雖然編譯器一開始也是先認為他是函式的,但當定義了與函式同名的變數之後,編譯器就不認為它是個函式了,所以,一般編寫程式時,儘量不要使使用的名字重複了。

下面是程式修改後的**:

#include

#include

using std::cout;

using std::cin;

using std::endl;

using std::vector;

bool findval(vector::iterator,vector::iterator,const int);

int main()

int suzhu[6]=;

int findval(5);

bool out(0);

vector::size_type size=sizeof(suzhu)/sizeof(*suzhu);

vectortest(suzhu,suzhu+size);

out=findval(,,findval);

system("pause");

return 0;

bool findval(vector::iterator bite,vector::iterator eite,const int befinded)

while(bite!=eite)

if(*bite==befinded)

return true;

bite;return false;

2樓:網友

int findval(5);

out=findval(,,findval);

你的int變數和findval函式重名了,改一下就行了, 另外把上面的。

using std::cout;

using std::cin;

using std::endl;

using std::vector;

改成一句using namespace std;

int findval(5);

out=findval(,,findval);

3樓:匿名使用者

#include

#include

using std::cout;

using std::cin;

using std::endl;

using std::vector;

bool findval(vector::iterator,vector::iterator,const int&);

int main()

int suzhu[6]=;

int ifindval(5); 編譯器首先已經認為這是乙個變數而不是函式,所以。。修改如下即可解決。。

bool out(0);

vector::size_type size=sizeof(suzhu)/sizeof(*suzhu);

vectortest(suzhu,suzhu+size);

out=findval(,,ifindval);

system("pause");

return 0;

bool findval(vector::iterator bite,vector::iterator eite,const int& befinded)

while(bite!=eite)

if(*bite==befinded)

return true;

bite;return false;

4樓:小樊您好

有兩處錯識:

bool findval(vector::iterator,vector::iterator,const int);

int findval;

函式名與變數名重了!

vector::size_type size=sizeof(suzhu)/sizeof(*suzhu);

suzhu)中的(*suzhu)代表的只是乙個數(是,你的定義中的「1」)

而不是乙個型別,你可以換作int

vector::size_type size=sizeof(suzhu)/sizeof(int);

這段程式用keil c程式設計不通過,是怎麼回事啊?

5樓:匿名使用者

第2,3,4行中間的分號不能要,另外用_at_宣告xdata型變數,最好在前面加上volatile確保不被c編譯器優化,以便能訪問到應訪問的儲存區。

6樓:瀟湘電子工程師

xdata unsigned char state_8255; _at_0xbff3; //狀態控制口。

xdata unsigned char pa_8255; _at_0xbff0; //位控制口 pa

xdata unsigned char pb_8255; _at_0xbff1; //

xdata unsigned char pc_8255 _at_ 0xbff2; //

中間的分號是不是要支掉呢。

這段c++程式無法通過編譯

7樓:清影星河

因為cin>>a>>b的值是istream型別,沒法用!=來與int值比較。

誰能讓這段程式編譯通過?

8樓:我是亞勇啊

你這個之所以不能編譯通過,是因為,當你宣告乙個a型別的變數x時,系統會呼叫a的建構函式a(),但你這裡的建構函式a()卻是私有的(預設為private),固系統不能呼叫。

所以該法有兩種:

1)在建構函式a()前面加上public:

2)把 x 變成 *x(或把a變成 a*),即宣告a*型別的變數,指標變數是不會呼叫建構函式的。

注意:a *x = new a();這是會呼叫建構函式的。

a *x; /這不會引起建構函式的呼叫。

9樓:匿名使用者

類a的定義修改如下:

class a

public :a(){

為什這段程式只能在vc中執行,二在vs2012中不能編譯通過

10樓:國家理念

for(init mid=start;mid!=end;mid++)//init mid = start?這個lnit是打錯了麼?

其次*mid是什麼意思?你想要做什麼?

是不是。/如果mid是乙個指標變數你才可以使用*mid呼叫它所指向的內容。

敢問各位大俠,這段程式為何無法通過編譯?

11樓:甲放

你的郵箱告訴我,我發到你郵箱裡 基於房地產行業招標問題國有土地的 很長一段時間以來,我國土地交易管理一直是錯誤的操作、土地交易市場的力量是。

c++的一段簡單程式怎麼沒有通過執行?

12樓:網友

c語言要求函式定義時,參數列裡要給出所有引數的型別,所以應該是。

int call(int a)

這段程式能在vc++通過,在dev c++就不能通過,高手請教

13樓:網友

cout<<"接下來是1000萬次的重複隨機相加概率測試。"for(int icnt=0;icnt!=10000000;++icnt) 把int icnt拿出來定義 或者在下面用的時候重新定義。

a=int(random(0,10));

這樣寫在vc6裡沒有問題 高版本vc也會報錯的 它認為int是隻定義在for迴圈裡的。

美國為何不再登月,美國為何不再繼續登月了?難道之前的登月是假的?

美國沒有取消發射而是發射成功,並且在月球上發現了外星生物和飛船的殘骸。 美國當初登月本來就是政治因素較多,是迫於冷戰壓力,蘇聯完成了第一顆人造衛星和第一次載人飛行。所以美國才傾全國之力來扭轉局面。阿波羅計劃是在這個背景下進行的,所以得到了非常大的財政支援。而之後的nasa再也得不到這樣的財政支援,自...

小偷為何不敢偷寶馬汽車的輪胎,小偷為何不偷寶馬汽車的輪胎?

小王發財 寶馬車的四個車輪都裝有特殊的防盜輪胎螺絲,而這種防盜螺絲需要寶馬專用工具來進行拆卸。而且最重要的是,每輛寶馬汽車上的防盜螺絲也不同。這個防盜螺絲很特別,在拆卸過程中需要使用寶馬專用的防盜螺絲套筒將其卸下。否則,更不用說小偷了,甚至車主也無法卸下輪胎。車主必須將這個隨車配套的套筒保管好,如果...

飯後為何不能馬上洗澡,飯後為何不能馬上洗澡

俗話說 飽了不理髮,餓了不洗澡 飽餐後不宜立即洗澡 飽餐後立即洗澡,會影響消化功能。在洗澡時,血管擴張,血流旺盛,若飽餐後立即洗澡,消化道的血流量就相對減少,消化液分泌便減少,使消化功能低下。因此,飽餐後不宜立即洗澡。但空腹時也不宜洗澡,因易引起低血糖,發生休克。所以,不飽不餓時洗澡最為適宜。吃飽飯...