| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2073 人关注过本帖
标题:链表这题我做不出来啊
只看楼主 加入收藏
forever1117
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-24
收藏
 问题点数:0 回复次数:24 
链表这题我做不出来啊
我们实训要交作业了,可是有几道题我就是弄不出来,各位高手快帮帮忙啊,我们明天要交作业的,555555555小妹初学C语言,望大家多多指教啊。作业:

1.链表处理:建立一个链表,每个结点包含的成员为:职工号、工资。用malloc函数开辟新结点。要求链表包含5个结点,从键盘输入结点中的有效数据。然后把这些结点的数据打印出来。要求用(1)函数create来建立函数;(2)用list函数来输出数据。这5个职工的号码为101、103、105、107、109。(3)写一个函数delete,用来删除一个结点(按指定职工号删除),如要求删除职工号为106的结点。打印出最后的链表的各结点数据。

2、常见算法的实现(递归实现N!、从1加到100、求两个数的最大公约数、整数转换成字符串ittoa)


5555555555

搜索更多相关主题的帖子: 链表 结点 工资 函数 职工 
2006-06-24 08:22
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

咦..既然是MM.今天也有空..帮帮忙吧..

N!:
long Nftl(int n)

{

if (n==1) return n;

else return (n*Nftl(n-1));

}

1-100: 自己写吧

俩数的最大公约 :
int gcd(int a,int b)
{
if (a%b==0) reutrn b;
else return gcd(b,a%b);
}

整数换成字符串:
char *change(int x)
{
char a[10];
int i=0;
while(x)
{
i+=x%10;
x/=10;
}
for(x=1;x<10;x++)
{
a[x]=i%10;
i/=10;
}
a[x]='\0';
return a;
}

链表太长了.自己想办法吧..
以上程序没经过调试.请自己查找错误


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-24 08:47
forever1117
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-24
收藏
得分:0 
大哥。我要的主要是链表那道题啊,555555555你好人做到底啊,帮帮忙啊,要不然 我考试会挂的,你们忍心吗?5555555555555555555

苍白的生命 ?如何沉沦于 ?那些苍白的爱情。。。。
2006-06-24 09:07
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
楼主要的链表程序都在谭浩强(第2版)11.7节273-287页明明白白写着。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-24 09:28
forever1117
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-24
收藏
得分:0 
我找了,杂没找到啊,555555555555就麻烦你们各位了,好吗?拜托啦``````````````

苍白的生命 ?如何沉沦于 ?那些苍白的爱情。。。。
2006-06-24 09:40
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

/*
[题目]建立一个链表,每个结点包含的成员为:职工号、工资。
用malloc函数开辟新结点。要求链表包含5个结点,从键盘输入结点
中的有效数据。然后把这些结点的数据打印出来。要求
(1)用函数create来建立函数;
(2)用list函数来输出数据。[注]这5个职工的号码假设为101、103、105、107、109。
(3)写一个函数delete。
用来删除一个结点(按指定职工号删除)打印出最后的链表的各结点数据。

目前下面给出的仅仅是一个框架,函数体有待填充!LZ也努力一把?
*/

#include <stdio.h>

#define NUM 5 /*有效结点数即职工人数*/

typedef int Type;

struct worker
{
Type ID; /*工号*/
float gz; /*工资*/
struct worker *next;
};

struct worker* create(void)/*创建链表返回表头指针*/
{
struct worker *head=NULL;

return head;
}

void list(struct worker *head)/*遍历并顺序输出结点信息*/
{

}

int delete(struct worker *head,Type ID)/*删除工号=ID的结点*/
{

return 1;/*返回被删除的结点的个数*/
}

int main(void)
{
Type id=106;
struct worker *head;

head=create();

printf("删除后\n");
list( head );

delete( head,id );

printf("删除后\n");
list( head );

return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-24 10:02
cxl11641
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-24
收藏
得分:0 

2 楼的整数转串有错。

char *change(int x)
{
char a[10];
int i=0;
while(x) //此外只是累计了 x 各位上的数字之和
{
i+=x%10;
x/=10;
}
for(x=1;x<10;x++)
{
a[x]=i%10;
i/=10;
}
a[x]='\0';
return a;
}

2006-06-24 10:25
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
楼上说的没错..而且还不光那一处错误..俺还犯了个极其严重的错误.郁闷...

[CODE]void change(int x,char a[])
{
int i=0;
while(x) //此外只是累计了 x 各位上的数字之和
{
i*=10;
i+=x%10;
x/=10;
}
while(i)
{
a[x]=i%10+48;
i=i/10;
x++;
}
a[x]='\0';
}[/CODE]


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-06-24 10:48
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

/*
[题目]建立一个链表,每个结点包含的成员为:职工号、工资。
用malloc函数开辟新结点。要求链表包含5个结点,从键盘输入结点
中的有效数据。然后把这些结点的数据打印出来。要求
(1)用函数create来建立函数;
(2)用list函数来输出数据。[注]这5个职工的号码假设为101、103、105、107、109。
(3)写一个函数delete。
用来删除一个结点(按指定职工号删除)打印出最后的链表的各结点数据。

下面给出半成品,仅delete函数体有待填充
*/

#include <stdio.h>
#include <stdlib.h>

#define NUM 5 /*有效结点数即职工人数*/

typedef int Type;

struct worker
{
Type ID; /*工号*/
float gz; /*工资*/
struct worker *next;
};

struct worker* create(void)/*创建链表返回表头指针*/
{
int i,id[NUM]={101,103,105,107,109};
struct worker *head,*q,*p;
q=head=(struct worker*)malloc(sizeof(struct worker));
head->ID=NUM;/*特殊化处理:存放有效结点数目*/
head->gz=0.0;/*此项无意义*/
for(i=1;i<=NUM;i++)
{
p=(struct worker*)malloc(sizeof(struct worker));
q->next=p;
p->ID=id[i-1];
printf("职工%d的工资=",p->ID);
scanf("%f",&p->gz);
q=p;
}
p->next=NULL;
return head;
}

void list(struct worker *head)/*遍历并顺序输出结点信息*/
{
struct worker* p=head->next;
printf("\n工号 工资(元)\n");
while(p!=NULL)
{
printf("%-6d%7.2f\n",p->ID,p->gz);
p=p->next;
}
}

int delete(struct worker *head,Type ID)/*删除工号=ID的结点*/
{

return 1;/*返回被删除的结点的个数*/
}

int main(void)
{
Type id=106;
struct worker *link;

link=create();

printf("\n删除前");
list( link );

delete( link,id );

printf("\n删除后");
list( link );

return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-24 10:49
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

/*
[题目]建立一个链表,每个结点包含的成员为:职工号、工资。
用malloc函数开辟新结点。要求链表包含5个结点,从键盘输入结点
中的有效数据。然后把这些结点的数据打印出来。要求
(1)用函数create来建立函数;
(2)用list函数来输出数据。[注]这5个职工的号码假设为101、103、105、107、109。
(3)写一个函数delete。
用来删除一个结点(按指定职工号删除)打印出最后的链表的各结点数据。

下面是成品,楼主妹妹可交差了
*/

#include <stdio.h>
#include <stdlib.h>

#define NUM 5 /*有效结点数即职工人数*/

typedef int Type;

struct worker
{
Type ID; /*工号*/
float gz; /*工资*/
struct worker *next;
};

struct worker* create(void)/*创建链表返回表头指针*/
{
int i,id[NUM]={101,103,105,107,109};
struct worker *head,*q,*p;
q=head=(struct worker*)malloc(sizeof(struct worker));
head->ID=NUM;/*特殊化处理:存放有效结点数目*/
head->gz=0.0;/*此项无意义*/
for(i=1;i<=NUM;i++)
{
p=(struct worker*)malloc(sizeof(struct worker));
q->next=p;
p->ID=id[i-1];
printf("职工%d的工资=",p->ID);
scanf("%f",&p->gz);
q=p;
}
p->next=NULL;
return head;
}

void list(struct worker *head)/*遍历并顺序输出结点信息*/
{
struct worker* p=head->next;
printf("\n工号 工资(元)\n");
while(p!=NULL)
{
printf("%-6d%7.2f\n",p->ID,p->gz);
p=p->next;
}
}

int delete(struct worker *head,Type ID)/*删除工号=ID的结点*/
{
int del_cnt=0;
struct worker *q=head,*p=q->next;
while(p!=NULL)
{
if(ID == p->ID)/*若满足删除条件*/
{
q->next=p->next;
free(p);
del_cnt++;
}
else
q=p;
p=q->next;
}
return del_cnt;/*返回被删除的结点的个数*/
}

int main(void)
{
int n;
Type id;
struct worker *link;

link=create();

printf("\n删除前");
list( link );

printf("\n开除谁:");
scanf( "%d",&id );
n=delete( link,id );

if(n!=0)
{
printf("\n删除后");
list( link );
}
else
{
printf("\n花名册上并无此人\n");
}

return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-24 11:20
快速回复:链表这题我做不出来啊
数据加载中...
 
   



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

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