注册 登录
编程论坛 C++教室

刚学c++ 我就丢了一辈子的人 郁闷中

shining小南 发布于 2010-09-19 21:24, 3833 次点击
今天丢人丢大了
copy一份书上的
#include "iostream.h"
void output(char c);
int main()
{
char temp;
cin >>temp;
output(temp);
return 0;
}
运行效果:
T
T
搞了个程序运行了半天 compile没错 build就是错
x.obj - 0 error(s), 0 warning(s)
Linking...
x.obj : error LNK2001: unresolved external symbol "int __cdecl max(int,int)" (?max@@YAHHH@Z)
Debug/x.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

x.exe - 2 error(s), 0 warning(s)

拿下去问下面实验室的一届 还问了问师兄  
结果程序的下面写着“程序6.1.1 和6.1.2 的代码是不完善的,如果仅用这些代码去编译会被告知函数未定义。”
哎!这辈子的人都丢完了!
49 回复
#2
zhoufeng19882010-09-20 09:00
void output( char);
函数没有定义嘛~
刚学,可以理解嘛,没啥丢人的。
#3
staor2010-09-20 09:31
找到void output(char c);的定义,copy在main 函数外下面,就ok了,
这些细节新学没注意很正常,下次知道就是了.这也算是进步吧.
#4
minghan03132010-09-20 11:09
呵呵  这怎么能算丢人呢  心太重啦
#5
Keyhb2010-09-20 13:26
     对于我来说 。 。  怎么看我都看不出你错哪里 。 。
#6
肖付2010-09-20 15:03
这个貌似在主函数里引用哈就可以了哦。
#7
xxlovemf2010-09-20 16:39
你那个函数在哪里
如果没有
你就是错了
那只是声明未定义啊
#8
lscalin2010-09-20 20:01
丢啊丢啊就没感觉了,哈哈。。。。。。。。。。。
#9
shining小南2010-09-20 22:05
我不得不说在bccn混我很舒心!
谢谢大家
#10
qshzh1022010-09-21 09:06
函数的定义不完整
我也是刚开始学习的,慢慢来就好了
#11
xin3109232010-09-24 21:18
你在这里就不丢人了  这么高手不多  新手到不少
#12
yuhuo2010-09-24 22:22
回复 9楼 shining小南
心声   努力啊
#13
倚楼听雨2010-09-24 23:11
没定义而已,下次就会记住了,都不是从新手学的
#14
minghan03132010-09-25 15:05
以下是引用xin310923在2010-9-24 21:18:36的发言:

你在这里就不丢人了  这么高手不多  新手到不少
呵呵   高手不多  就需要新手努力变成高手   

我也是新人  和大家一起努力
#15
tmac我偶像2010-09-25 19:56
呵呵 我也刚学  但我不觉得丢人
#16
冰点小爱2010-09-25 20:03
编程序,没有什么丢人不丢人的。刚开始学都这样,只要你努力肯学就行了。
#17
风雨氵2010-09-25 20:20
才刚刚起步,不用那么在意
#18
yrk56314832010-09-25 21:36
你还好 我学C还没接触到你这程度呢
#19
crazy_pro2010-09-25 22:49
恩 平常心 初学时大家都一样啊  没啥面子丢不丢脸的啊!
#20
shining小南2010-09-27 20:13
谢谢 大家
#21
shining小南2010-09-27 20:16
大家一起学习,一起进步!   
搞了两个小时
我今天的作业:
A、B、C、D 四个学校举行足球赛,比赛采用单循环制,即一共6 场比赛,比分如下:
A 对B 为2:1,A 对C 为1:4,A 对D 为2:2,B 对C 为3:1,B 对D 为4:2,C 对D
为1:1。请使用二维数组,统计出的胜利最多的球队、攻入球数最多的球队和净胜球最多
的球队。
-
#include"iostream.h"
void victor(int array[4][4]);
void giveball(int array[4][4]);
void abball(int array[4][4]);
int main()
{
    int array[4][4]={{0,2,1,2},{1,0,3,4},{4,1,0,1},{2,2,1,0}};
    cout<<"胜利最多的球队:";
    victor(array);
    cout<<"攻入球数最多的球队:";
    giveball(array);
    cout<<"净胜球最多的球队:";
    abball(array);
    return 0;
}
void victor(int array[4][4])
{
    int win[4]={0,0,0,0};//比较a[i][j]与a[j][i]的大小
    int p=0;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            if(array[i][j]>array[j][i])
                win[i]++;
        }
    }
    int temp=win[0];
    for(int k=0;k<4;k++)
    {
        if(win[k]>temp)
        {
            temp=win[k];
            p=k;
        }
    }
    p=p+65;
    cout<<char(p)<<endl;
}
void giveball(int array[4][4])
{
    int win[4]={0,0,0,0};
    int max=0;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            win[i]=win[i]+array[i][j];
        }
    }
    int temp=win[0];
    for(int k=0;k<4;k++)
    {
        
        if(win[k]>temp)
        {
            temp=win[k];
            max=k;
        }
    }
    max=65+max;
    cout<<char(max)<<endl;
}
void abball(int array[4][4])
{
int win[4]={0,0,0,0};
int max=0;
int wint[4]={0,0,0,0};
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            win[i]=win[i]+array[i][j];
        }
    }
    for(int n=0;n<4;n++)
    {
        for(int m=0;m<4;m++)
        {
            wint[n]=wint[n]+array[m][n];
        }
    }
    for(int l=0;l<4;l++)
    {
        win[l]=win[l]-wint[l];
    }
    int temp=win[0];
    for(int k=0;k<4;k++)
    {
        
        if(win[k]>temp)
        {
            temp=win[k];
            max=k;
        }
    }
    cout<<char(65+max)<<endl;
}
#22
涯韵思淇2010-09-27 21:17
加油!
#23
me_to_me_luk2010-09-27 21:47
output()函数只声明了没定义
#24
吴伟迪2010-09-27 21:48
顶楼主一下,大家一起学习
#25
shining小南2010-09-28 20:28
以为看到指针可以松口气了,却发现才刚开始!
#26
zoujiapengh2010-09-28 21:16
我什么都不懂
我要拼命的学习
#27
wulinabc2010-09-30 10:18
void output(char c);

是不是cout<<char<<endl;  输出么
#28
shining小南2010-10-01 21:44
大虾们帮忙看一下 compile build 没错出来个
只有本站会员才能查看附件,请 登录

#include "iostream.h"
void strcopy(char *string1,char *string2);
int main()
{
char str1[]={"Tomato Studio"};
char *str2;
int size=sizeof(str1)/sizeof(char);
str2=new char[size] ;
cout <<"STR1 的内容是" <<str1 <<endl;
strcopy(str1,str2);
cout <<"String Copied..." <<endl;
cout <<"STR2 的内容是" <<str2 <<endl;
delete []str2;
return 0;
}
void strcopy(char *string1,char *string2)
{
for (char *temp=string1;*temp!='\0';tstring1++ )
{
*string2=*temp;
string2++;
}
*string2='\0';
}
#29
吴伟迪2010-10-04 16:25
方法1:
for (char *temp=string1;*temp!='\0';tstring1++ )
这句话错了,tstring1++改成temp++就OK了
因为在内存中,string1的指针已经指向了temp,要移动指针的话也只能移动temp,所以这个程序的断点就在这里了
for (char *temp=string1;*temp!='\0';temp++ )
方法2:
for (1;*string1!='\0';string1++ )
这样使用的就是string1指针了
小南南,加油哦!考虑问题多从内存的角度去看
#30
吴伟迪2010-10-04 16:29
不过我也要请教一个问题
int size=sizeof(str1)/sizeof(char);
既然是计算字符串的长度用int size=sizeof(str1)不就行了么,/sizeof(char)的意义是什么?
#31
tansuo2010-10-07 22:21
没事的,刚学而已。C++的细节性东西很多,要留心啊
#32
bigeq12010-10-07 22:39
我也是新手,学习啦
#33
取而代之2010-10-08 11:33
额,都是这么过来的。
#34
shining小南2010-10-08 22:30
看到链表了
链表结点的插入
void insert(node * &head,char keyWord,char newdata)//keyWord 是查找关键字符
{
node *newnode=new node;//新建结点
newnode->data=newdata;//newdata 是新结点的数据
node *pGuard=search(head,keyWord);//pGuard 是插入位置前的结点指针
if (head==NULL || pGuard==NULL)//如果链表没有结点或找不到关键字结点
{//则插入表头位置
newnode->next=head;//先连
head=newnode;//后断
}
else//否则
{//插入在pGuard 之后
newnode->next=pGuard->next;//先连
pGuard->next=newnode;//后断
}
}
问题:void insert(node * &head,char keyWord,char newdata)//keyWord 是查找关键字符
写成void insert(node * head,char keyWord,char newdata)//keyWord 是查找关键字符
对结果好像没什么影响,node*&到底是个什么东东?
迷惑
#35
sunmyongjiu2010-10-09 03:58
晕,你那个自定义函数都没有定义出来,怎么行呢
#36
shining小南2010-10-09 14:38
search(head,keyWord);这个是已经定义的,我只是截取了程序的一部分,search的意思已经注明了
我是想问node * &head与node * head在作为函数的参数时的区别
#37
吴伟迪2010-10-12 08:31
node * &head是指针引用node * head就是个指针呗都可以起到指针的效果
#38
轻风有尘2010-10-14 12:52
我也是刚开始学的,共勉一下
#39
shining小南2010-10-14 18:24
谢谢 大家的指点 已经明白了
#40
寒风中的细雨2010-10-14 19:41
回复 30楼 吴伟迪
不同的机型可能占用的 存储单元的个数不同
上面那样就可以保证 不会应为这中原因造成 结果的准
#41
shining小南2010-10-16 11:41
以下是引用吴伟迪在2010-10-4 16:29:08的发言:

不过我也要请教一个问题
int size=sizeof(str1)/sizeof(char);
既然是计算字符串的长度用int size=sizeof(str1)不就行了么,/sizeof(char)的意义是什么?
你可以调试一下 sizeof(int)在不同编译环境下的结果(eg.turbo c 3.0与vc6.0)
我这边调试的 一个是2 一个是4   
写成这样int size=sizeof(str1)/sizeof(char);有保证 呵呵
#42
吴伟迪2010-10-18 14:36
回复 41楼 shining小南
3Q,明白了
#43
sf8781312010-10-20 20:50
没定义啊
#44
lucky5635912010-10-21 07:31
自尊心很强啊
#45
书中叶2010-10-21 11:25
都这样,我前些日子总是把==写成=,结果总是那个值
#46
碧水秋炼2010-10-23 11:01
以后注意点就是的啦
#47
怎么了2010-10-23 11:05
我学面向对象的时候,被绕糊涂了~!
#48
moneythinker2010-10-23 11:10
丢了一辈子的人?是什么意思哦
#49
mirchan2010-10-24 22:19
出错难免的嘛
#50
shining小南2010-10-25 20:30
求教vc6.0中 resourefile的作用 大虾们给个例子啊?
一般看到比较好的程序 想要存起来 怎么将一系列比较好的程序一起存储在一个project下?还是都存储为cpp?迷糊中......
1