C程序开发经典实例之8
2008-03-08 12:38:05 来源:WEB开发网核心提示:【程序71】题目:编写input()和output()函数输入,输出5个学生的数据记录,C程序开发经典实例之8,1.程序分析:2.程序源代码:#define N 5strUCt student{ char num[6]; char name[8]; int score[4];}stu[N];input
【程序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<N; i++)
{
PRintf("\n please input %d of %d\n", 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("\n");
}
}
print(stu)
struct student stu[];
{
int i, j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
for(i=0; i<N; i++)
{
printf("%-6s%-10s", stu[i].num, stu[i].name);
for(j=0;j<3;j++)
printf("%-8d", stu[i].score[j]);
printf("\n");
}
}
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==>\n");
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\n", 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("\nplease input 5 data==>\n");
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\n", 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<num; 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\n", 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<num; i++)
{
tmp2 = (link)malloc(sizeof(node));
tmp2->next =&
赞助商链接