WEB开发网
开发学院软件开发C++ C程序开发经典实例之8 阅读

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 =&

Tags:程序开发 经典 实例

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接