手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

C程式研发经典实例之8

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

ptr = ptr->next;
// 本文转自 C Builder 研究 - http://www.ccrun.com/article.asp?i=651&d=l1423t
}
}

【程式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 = NULL;
tmp2->data = array[i];
tmp1->next = tmp2;
tmp1 = tmp1->next;
}
return pointer;
}
link concatenate(link pointer1, link pointer2)
{
link tmp;
tmp = pointer1;
while(tmp->next)
tmp = tmp->next;
tmp->next =pointer2;
return pointer1;
}
void main(void)
{
int arr1[] = {3, 12, 8, 9, 11};
link ptr;
ptr = create_list(arr1, 5);
selection_sort(ptr, 5);
}

【程式75】
题目:放松一下,算一道简单的题目。
1.程式分析:
2.程式源代码:
/* 63 63 72 75 6E 2E 63 6F 6D */
main()
{
int i, n;
for(i=1; i<5; i )
{
n = 0;
if(i != 1)
n = n 1;
if(i == 3)
n = n 1;
if(i == 4)
n = n 1;
if(i != 4)
n = n 1;
if(n == 3)
printf("zhu hao shi de shi:%c", 64 i);
}
}

【程式76】
题目:编写一个函数,输入n为偶数时,调用函数求1/2 1/4 ... 1/n, 当输入n为奇数时,调用函数
1/1 1/3 ... 1/n(利用指针函数)
1.程式分析:
2.程式源代码:
main()
#include "stdio.h"
main()
{
float peven(), podd(), dcall();
float sum;
int n;
while (1)
{
scanf("%d", &n);
if(n > 1)
break;
}
if(n % 2 == 0)

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!