| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:谁能帮下忙??
只看楼主 加入收藏
xshj1025
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-3-31
收藏
 问题点数:0 回复次数:4 
谁能帮下忙??
#include<stdio.h>
#include<malloc.h>
#define N 10

typedef struct node
{
    char name[N];
    struct node *next;
}stu;

stu *listcreat(int n)
{
    stu *head,*p1,*p2;
    int i;
if((head=(stu *)malloc(sizeof(stu)))==NULL){    
        printf("内存分配失败!\n");
            exit(0);
            }
        head->next=NULL;
    p1=head;
for(i=0;i<n;i++){
    if((p2=(stu *)malloc(sizeof(stu)))==NULL){
            printf("内存分配失败!\n");
                exit(0);
                    }
        p1->next = p2;
            printf("请输入第%d个人姓名:\n",i+1);
                scanf("%s",&p2->name);
                p2->next=NULL;
                p1=p2;
        }    
    return head;
}
 
void main()
 {
     stu *head;
     int n;
     printf("请输入人数:");
     scanf("%d",&n);
     head=listcreat(n);
     
 }

[[it] 本帖最后由 xshj1025 于 2008-4-8 18:08 编辑 [/it]]
搜索更多相关主题的帖子: stu 内存 head next 
2008-04-08 17:37
xshj1025
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-3-31
收藏
得分:0 
好像是循环的问题
2008-04-08 18:09
yunsuoyan
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-10-16
收藏
得分:0 
什么问题?
2008-04-08 21:51
winnerwxin
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-4-2
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#define N 10

typedef struct node
{
    char name[N];
    struct node *next;
}stu;

stu *listcreat(int n)
{
    stu *head,*p1,*p2;
    int i;
if((p1=(stu *)malloc(sizeof(stu)))==NULL){
        printf("fail!\n");
            exit(0);
            }
        head=p1; /*这里我该啦~~~*/
for(i=0;i<n;i++){
    if((p2=(stu *)malloc(sizeof(stu)))==NULL){
            printf("fail!\n");
                exit(0);
                    }
        p1->next = p2;
            printf("please enter %d man name:\n",i+1);
                scanf("%s",&p2->name);
                p2->next=NULL;
                p1=p2;
        }
    return head;
}
void display(stu *p)
{  stu *q;
  q=p->next;
   while(q->next!=NULL)
    { printf("%s",q->name); q=q->next;}
   printf("%s",q->name);

}

void main()
{
    stu *head;
    int n;
    printf("please enter number:");
    scanf("%d",&n);
    head=listcreat(n);
    display(head);
}
以上是我将你的程序该了以后可以正常达到效果啦~ 顺便加了一个用来遍历的函数,方便看结果如何~ 你自己试试吧~
2008-04-08 21:53
xshj1025
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-3-31
收藏
得分:0 
感谢winnerwxin
我发的有点问题,后来的问题找到了  还是很感谢大家帮忙,很谢谢winnerwxin
2008-04-09 16:11
快速回复:谁能帮下忙??
数据加载中...
 
   



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

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