① 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
我之前也很费劲,希望可以帮到你,哈哈