導航:首頁 > 源碼編譯 > 編譯器不執行find函數

編譯器不執行find函數

發布時間:2022-07-02 08:31:34

① could not find the main class

解決辦法如下:

1、先找到構建路徑;

② C語言中,下面Find()為什麼無法通過編譯

1、Find函數定義了返回類型,結果沒有返回值,沒有return語句

2、輸入結構體時,不用取地址符&;

3、main函數定義:

③ 為什麼C編譯器可以編譯,但不能執行

編譯正確只是代表程序沒有語法錯誤,至於邏輯錯誤是無法判斷的。
但是你的程序明顯提示有錯誤,需要修改
printf("%4d %d\n",i,slect[i]);

④ 數據結構與演算法的問題 為什麼執行Find_pos(head,1 ,item); cout<<*item<<endl;的時候我的電腦就不能編譯


暈了,真是好糾結,我在寫完下面的代碼後,才在網上找了找,居然發現和你的題目完全一樣的代碼,算了,我就直接發在網上找到的文檔和代碼給你吧,可憐我寫了這么久代碼呀。。。。。已發,請注意查收。

代碼寫好了。
VC下經測試通過。
不過如果你還要論文之類的或者設計文檔,我也比較難幫到你了。

#include <iostream>
using namespace std;

class node
{
public:
node(int i):data(i),left(NULL),right(NULL){}
void inorder(node *&root) //中序遍歷,符合升序輸出
{
if(root!=NULL)
{
inorder(root->left);
cout<<root->data<<' ';
inorder(root->right);
}
}
void insert(node *&ptr,int item) //在查找樹中插入元素
{
if(ptr==NULL)
ptr=new node(item);
else if(item<ptr->data)
insert(ptr->left,item);
else insert(ptr->right,item);
}
node *find(node *&ptr,int item) //在查找樹中查找元素,找到返回所在結點指針,找不到返回空指針。
{
if(ptr==NULL)
return NULL;
if(ptr->data==item)
return ptr;
else if(item<ptr->data)
find(ptr->left,item);
else find(ptr->right,item);
}
node *&findy(node *&ptr,int item) //在查找樹中查找肯定存在的元素,並返回其引用
{
if(ptr->data==item)
return ptr;
else if(item<ptr->data)
findy(ptr->left,item);
else findy(ptr->right,item);
}
node* rl()
node* rr()
void dele(node *&ptr) //刪除值為item所在結點
{
if(ptr->rl()==NULL&&ptr->rr()==NULL)
ptr=NULL;
else if(ptr->rr()==NULL)
ptr=ptr->rl();
else
ptr=ptr->rr();
}
private:
int data;
node *left; //左孩子結點
node *right; //右孩子結點
};

int main()
{
int t,i=0,j;
cout<<"輸入數字個數(結點個數):";
cin>>t;
cout<<"輸入"<<t<<"個數字,數字之間用空格隔開:";
cin>>j;
node *x=new node(j);
for(;i<t-1;i++)
{
cin>>j;
x->insert(x,j);
}
cout<<"中序遍歷為:";
x->inorder(x); //作中序遍歷
cout<<"\n輸入操作(當輸入-1時程序結束):"<<endl;
cin>>j;
while(j!=-1)
{

node *t=x->find(x,j); //定位結點
if(t!=NULL)
{
node *&y=x->findy(x,j);
x->dele(y);
cout<<"中序遍歷為:";
x->inorder(x);
}
else cout<<"無"<<j;
cout<<"\n輸入操作(當輸入-1時程序結束):"<<endl;
cin>>j;
}
return 0;
}

附測試數據一組
8
22 33 1 50 88 99 77 55
33
50
51
55
-1
有什麼不明的話可以M我或者留言我。

⑤ c++ string.find問題

單引號是單個字元的,雙引號是字元串;你用''寫字元串肯定不對的;
之因為你用''標識字元串,所以編譯器就把之前的字元串全部忽略了,只識別最後一個=;所以他返回13;即下標位置;
用""是匹配整個字元串的;從0個位置開始就匹配了,所以返回了0;

⑥ 下面的c程序編譯時提示readin()函數和findmax()函數聲明類型不匹配。怎麼回事

先申明,在使用,C函數都是這種的,mian函數前面申明下子函數就行了。~

⑦ 編譯器怎麼處理定義了未使用的函數

編譯器不會生成可執行文件,有的編譯器會提示「警告」,有的不會的。

⑧ c編程會的進啊,滿意高分啊

第一個程序修改之後:
#include<stdio.h>
int main()
{
void find(char *p,char *q);
char str[80],str1[30];
for(int i = 0;i<30;i++)
str1[i] = 0;
printf("please enter:\n");
gets(str);
find(str,str1);

puts(str1);
}

void find(char *p, char *q)
{
for(;*p!='\0';p++)
if(*p=='a'||*p=='e'||*p=='i'||*p=='o'||*p=='u'||*p=='A'||*p=='E'||*p==\
'I'||*p=='O'||*p=='U')
{
*q=*p;
q++;
}

} 第一個程序的錯誤在於str1輸出時將str1的空間的內容全部輸出
你對於字元數組來說,遇到'\0'編譯器就知道這個數組到此結束,後面的內容截斷了,你的程序中str1沒有截斷字元,所以輸出內容有亂碼 簡單說就是你的數組沒有初始化。

第二個程序有錯誤,str1數組在函數中定義,當函數執行完後,這個數組的空間就被釋放了,而你卻返回一個指向改空間的一個指針,這是很危險的,因為你在防問的已經不是現在你的程序的內存了。這個思路是行不通的,不過你可以使用引用,但數組也要在函數外邊定義。

⑨ 怎樣讓c++編譯器禁止使用某個函數

可以用
條件編譯
#ifdef
常量
//
語句塊
#endif
這段意思是如果常量被
宏定義
過,則編譯語句塊,否則不編譯。
還有其他的條件編譯語句,可以查詢相關資料。
不明白的
聯系我
,希望能幫助你。

⑩ C++ string find()函數問題

不同的系統對於換行可是不一樣的哦。
windows下的回車換行是\r\n
linux下的並沒有回車這一概念,想要換行需要找\n\n

我之前也很費勁,希望可以幫到你,哈哈

閱讀全文

與編譯器不執行find函數相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:581
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:428
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:352