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

求链表中最小值为什么编译不出??

正海其 发布于 2013-10-27 17:01, 402 次点击
void List::Min()//求循环链表的最小值
{
    int i,min;
    p=first;
    cout<<"请输入5个数:";
    for(i=0;i<5;i++)//建链
    {
        cin>>p->data;
        p=p->Link ;
    }
    min=first->data;
    for(i=1;i<20;i++)
    {
        if((p->data) < min)
        {
            min=p->data;
        }
        else p=p->Link;
    }
    cout<<"最小数为:"<<min<<endl;
}
5 回复
#2
yuccn2013-10-27 19:20
for(i=1;i<20;i++)
    {
        if((p->data) < min)
        {
            min=p->data;
        }
        else p=p->Link;
    }

明显的逻辑错误,这个不算变量链表比较吧,怪别扭的
#3
qunxingw2013-10-27 21:12
对于变量,函数,链表基础都还得补习,当然还有逻辑。
#4
黄大容2013-10-27 22:30
不知->这个符号是表示什么意思,我用了自己的想法,你参考参考

void List::Min()
 {
     int i,min,a[5];
     p=first;
     cout<<"请输入5个数:";
     for(i=0;i<5;i++)
     cin>>a[i];
     min=a[0];
     for(i=1;i<5;i++)
     {
         int k;
         if(a[i]<min)
         {
             k=min;
             min=a[i];
             a[i]=k;
         }
     }
     cout<<"最小数为:"<<min<<endl;
 }
#5
小黑马2013-10-27 22:44
新人来学习~~
#6
正海其2013-10-28 20:13
sorry 发上去的代码拷贝错了,这个才是,求大神指教

void List::Min()//求循环链表的最小值
{
    int i,min,num;
    p=first;
    cout<<"请输入5个数:";
    for(i=0;i<4;i++)//建链
    {
        cin>>p->data;
        p=p->Link ;
    }
    cin>>p->data;
    p->Link=first;
    min=first->data;
    q=first->Link ;
    for(i=0;i<4;i++)
    {
        num=q->data;
        if(num < min) min=num;
        q=q->Link;
    }
    cout<<"最小数为:"<<min<<endl;
}
1