| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 430 人关注过本帖
标题:如何return一个值?
只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
 问题点数:0 回复次数:3 
如何return一个值?
#include "stdafx.h"

#include "stdio.h"
#include "stdlib.h"
#define     OK      1
#define        ERROR    -1
#define     NULL   0
#define     OVERFLOW     -2
typedef     int     ElemType;   
typedef     int Status;
#define     LIST_INIT_SIZE   100
#define     LISTINCREMENT     10
typedef struct node
{
     int data;
     struct node *next;
}Linklist;

Linklist * createlist(int n)
{
    int k;
    Linklist *head,*r,*p;
   
    head=p=(Linklist *)malloc(sizeof(Linklist));
    head->next=NULL;
    for(k=1;k<=n;k++)
    {
        r=(Linklist *)malloc(sizeof(Linklist));
        printf("input value:\n");
        scanf("%d",&(r->data));
        r->next=NULL;      
        p->next=r;
        p=r;        
    }
    return (head);
}

void Printlist(Linklist *head)
{
    Linklist *p;
    p=head->next;
    while(p!=NULL)
    {
        printf("%4d",p->data);
        p=p->next;
    }
    printf("\n");
}


Linklist *insert(Linklist *head,int i,int k)//这个插入函数在return值有问题
    Linklist *p;
    Linklist *s;
    int j=0;
    p=head;
    while(p&&j<i-1)
    {
        p=p->next;
        j++;
    }
    if(!p||j>i-1)
    {
        return ERROR;//这个return值有问题,应该如何return?
    }错误的提示error C2440: 'return' : cannot convert from 'const int' to 'struct node *'

    s=(Linklist *)malloc(sizeof(Linklist));
    s->data=k;
    s->next=p->next;
    p->next=s;
    return p;
        
}

Linklist *find(Linklist *head,int i)
{
    int j;
    Linklist *p;
    p=head->next;
    j=1;
    while(p!=NULL&&j<i)
    {
        p=p->next;
        j++;
   
    }
    printf("\n");
    return p;
}

int main(int argc, char* argv[])
{
    Linklist *L;
    Linklist *q;
    Linklist *head;
    int x;
    int k;
    int select;
    int i=0;
   
    L=createlist(5);
    Printlist(L);
    printf("input i:\n");
    scanf("%d",&i);
    printf("input k:\n");
    scanf("%d",&k);
    insert(L,x,k);
    Printlist(L);
    printf("input i:\n");
    scanf("%d",&i);
    q=find(L,i);
    printf("%d",q->data);
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: return 
2009-10-12 18:35
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
看看这样行不行:如果你只是想显示出erro,那么你可以直接将其改为输出erro,即执行pirntf("erro\n");
如果想利用return的值,可以用一个字符c代替erro,即 char c=erro;     return (c);
2009-10-12 18:41
tiansky55
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-10-12
收藏
得分:0 
搞笑,那样有什么意义
2009-10-12 19:20
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
收藏
得分:0 
你定义的返回值类型是指向Linklist类型的指针,自己写的却返回的int类型。。。

return p或s或head;
看你自己的意思


[ 本帖最后由 sidooh 于 2009-10-13 10:38 编辑 ]
2009-10-13 10:34
快速回复:如何return一个值?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031247 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved