龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C程序开发经典实例之8

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
【程序71】 题目:编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: 2.程序源代码: #define N 5 strUCt student { char num[6]; char name[8]; int score[4]; }stu[N]; input(stu) struct studen

  

【程序71】

  

题目:编写input()和output()函数输入,输出5个学生的数据记录。

  

1.程序分析:

  

2.程序源代码:

  

#define N 5

  

strUCt student

  

{

  

char num[6];

  

char name[8];

  

int score[4];

  

}stu[N];

  

input(stu)

  

struct student stu[];

  

{

  

int i, j;

  

for(i=0; i

  

{

  

printf("

please input %d of %d

", i+1, N);

  

printf("num: ");

  

scanf("%s", stu[i].num);

  

printf("name: ");

  

scanf("%s", stu[i].name);

  

for(j=0; j<3; j++)

  

{

  

printf("score %d.", j+1);

  

scanf("%d", &stu[i].score[j]);

  

}

  

printf("

");

  

}

  

}

  

print(stu)

  

struct student stu[];

  

{

  

int i, j;

  

printf("

No. Name Sco1 Sco2 Sco3

");

  

for(i=0; i

  

{

  

printf("%-6s%-10s", stu[i].num, stu[i].name);

  

for(j=0;j<3;j++)

  

printf("%-8d", stu[i].score[j]);

  

printf("

");

  

}

  

}

  

main()

  

{

  

input();

  

print();

  

}

  

  

【程序72】

  

题目:创建一个链表。

  

1.程序分析:

  

2.程序源代码:

  

/* creat a list */

  

#include "stdlib.h"

  

#include "stdio.h"

  

struct list

  

{

  

int data;

  

struct list *next;

  

};

  

/* 欢迎访问 C++Builder研究 - www.ccrun.com */

  

typedef struct list node;

  

typedef node *link;

  

void main()

  

{

  

link ptr, head;

  

int num, i;

  

ptr = (link)malloc(sizeof(node));

  

ptr = head;

  

printf("please input 5 numbers==>

");

  

  

for(i=0; i<=4; i++)

  

{

  

scanf("%d", &num);

  

ptr->data = num;

  

ptr->next = (link)malloc(sizeof(node));

  

if(i==4) ptr->next = NULL;

  

else ptr = ptr->next;

  

}

  

ptr = head;

  

while(ptr != NULL)

  

{

  

printf("The value is ==>%d

", ptr->data);

  

tr = ptr->next;

  

}

  

}

  

  

【程序73】

  

题目:反向输出一个链表。

  

1.程序分析:

  

2.程序源代码:

  

/*reverse output a list*/

  

#include "stdlib.h"

  

#include "stdio.h"

  

struct list

  

{

  

int data;

  

struct list *next;

  

};

  

typedef struct list node;

  

typedef node *link;

  

void main()

  

{

  

link ptr, head, tail;

  

int num, i;

  

tail = (link)malloc(sizeof(node));

  

tail->next = NULL;

  

ptr = tail;

  

printf("

please input 5 data==>

");

  

for(i=0; i<=4; i++)

  

{

  

scanf("%d", &num);

  

ptr->data = num;

  

head = (link)malloc(sizeof(node));

  

head->next = ptr;

  

ptr = head;

  

}

  

ptr = ptr->next;

  

while(ptr != NULL)

  

{

  

printf("The value is ==>%d

", ptr->data);

  

ptr = ptr->next;

  

}

  

}

  

  

【程序74】

  

题目:连接两个链表。

  

1.程序分析:

  

2.程序源代码:

  

#include "stdlib.h"

  

#include "stdio.h"

  

struct list

  

{

  

int data;

  

struct list *next;

  

};

  

typedef struct list node;

  

typedef node *link;

  

link delete_node(link pointer, link tmp)

  

{

  

if(tmp == NULL) /* delete first node */

  

return pointer->next;

  

  

else

  

{

  

if(tmp->next->next == NULL) /* delete last node */

  

tmp->next = NULL;

  

else /* delete the other node */

  

tmp->next = tmp->next->next;

  

return pointer;

  

}

  

}

  

void selection_sort(link pointer, int num)

  

{

  

link tmp, BTmp;

  

int i, min;

  

for(i=0; i

  

{

  

tmp = pointer;

  

min = tmp->data;

  

btmp = NULL;

  

while(tmp->next)

  

{

  

if(min > tmp->next->data)

  

{

  

min = tmp->next->data;

  

btmp = tmp;

  

}

  

tmp = tmp->next;

  

}

  

printf("40: %d

", min);

  

pointer = delete_node(pointer, btmp);

  

}

  

}

  

link create_list(int array[], int num)

  

{

  

link tmp1, tmp2, pointer;

  

int i;

  

pointer = (link)malloc(sizeof(node));

  

pointer->data = array[0];

  

tmp1 = pointer;

  

for(i=1; i

  

{

  

tmp2 = (link)malloc(sizeof(node));

  

tmp2->next =&

  

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接