Linux下完成的一个作业程序
2010-02-19 12:02
295 查看
文档创建日期:2010-02-19
[文件1: test06-08.c]
01 // P174: 2.编程题 (8)把有序的两个数组a和b合并,要求合并后的数组依然有序
02
03 // The beginning of C program: test06-08.c.
04
05 // Header files included.
06 #include <stdio.h>
07 #include "head06-08.h"
08
09 // Macro definition.
10 #define MAX_SIZE 100
11
12 // Main function's declaration.
13 int main ( void )
14 {
15 int i=0, j=0, m=10, n=10;
16 float list_1[MAX_SIZE], list_2[MAX_SIZE], element=0.0;
17
18 printf ( "Please input 10 float numbers for list_1: " );
19 for ( i=0; i<m; i++ )
20 scanf ( "%f", &list_1[i] );
21
22 printf ( "Please input 10 float numbers for list_2: " );
23 for ( j=0; j<n; j++ )
24 scanf ( "%f", &list_2[j] );
25
26 for ( i=0; i<m; i++ )
27 list_1[i] = rounding (list_1[i]);
28 for ( j=0; j<n; j++ )
29 list_2[i] = rounding (list_2[j]);
30 select_sort ( list_1, m );
31 select_sort ( list_2, n );
32
33 for ( j=0; j<n; j++ )
34 {
35 element = list_2[j];
36 if ( insert (list_1, &m, element) == 0 )
37 return (1);
38 }
39 printf ( "The new list is:/n" );
40 for ( i=0; i<20; i++ )
41 {
42 printf ( "%8.2f", list_1[i] );
43 if ( (i+1)%5==0 )
44 printf ( "/n" );
45 }
46 printf ( "/n" );
47
48 return (0);
49 }
50
51 // The end of C program: test06-07.c.
52
--------------------------------------------------------------------------------------------------------------------------------------------------------------
[文件2: head06-08.h]
01 // 以下声明的函数为程序test06-08.c使用到的相关函数,以头文件形式进行保存和调用;
02
03 // The beginning of C header file user_def: head06-08.h.
04
05 // No.1: Subroutine: float rounding ( float f_num );
06 float rounding ( float f_num );
07
08 // No.2: Subroutine: void select_sort ( float list[], int size ); 选择排序子函数
09 void select_sort ( float list[], int size );
10
11 // No.3: Subroutine: int insert ( float list[], int *size, float element );
12 int insert ( float list[], int *size, float element );
13
14 // The end of C header file user_def: head06-08.h.
15
--------------------------------------------------------------------------------------------------------------------------------------------------------------
[文件3: head06-08.c]
01 // 以下函数为head06-08.h中声明的函数的实现,依照相关的顺序排列给出
02
03 // The beginning of C header file program: head06-08.c.
04
05 // Header files included.
06 #include <stdio.h>
07
08 // Macro definition.
09 #define MAX_SIZE 100
10
11 // No.1: Subroutine: float rounding ( float f_num );
12 float rounding ( float f_num )
13 {
14 long int temp=0;
15 temp = (long int) (f_num * 100);
16 temp = (long int) ((f_num*100 - temp)*2 + temp);
17 f_num = temp / 100.0;
18
19 return (f_num);
20 }
21
22 // No.2: Subroutine: void select_sort ( float list[], int size ); 选择排序子函数
23 void select_sort ( float list[], int size )
24 {
25 int i, j, min;
26 float temp=0.0;
27 for ( i=0; i<size-1; i++ )
28 {
29 min = i;
30 for ( j=i+1; j<size; j++ )
31 if ( list[j] < list[min] )
32 min = j;
33 temp = list[i];
34 list[i] = list[min];
35 list[min] = temp;
36 }
37 }
38
39 // No.3: Subroutine: int insert ( float list[], int *size, float element );
40 int insert ( float list[], int *size, float element )
41 {
42 int i=0, tag=0;
43 if ( *size >= MAX_SIZE )
44 {
45 printf ( "The list is too full to insert new element./n" );
46 return (0);
47 }
48 for ( i=0; i<*size; i++ )
49 {
50 if ( element >= list[i] )
51 continue;
52 else
53 if ( element < list[i] )
54 break;
55 }
56 tag = i;
57 if ( tag == *size ) // 在有序表的尾部插入
58 list[*size] = element;
59 else // 在有序表的其他位置插入
60 {
61 for ( i=*size; i>tag; i-- )
62 list[i] = list[i-1];
63 list[tag] = element;
64 }
65 *size = *size + 1;
66 // 返回1表示元素插入成功,返回0表示操作失败.
67 return (1);
68 }
69
70 // The end of C header file program: head06-08.c.
71
让看代码像欣赏“高山流水”一样——心情舒畅啊 (*^__^*)
[文件1: test06-08.c]
01 // P174: 2.编程题 (8)把有序的两个数组a和b合并,要求合并后的数组依然有序
02
03 // The beginning of C program: test06-08.c.
04
05 // Header files included.
06 #include <stdio.h>
07 #include "head06-08.h"
08
09 // Macro definition.
10 #define MAX_SIZE 100
11
12 // Main function's declaration.
13 int main ( void )
14 {
15 int i=0, j=0, m=10, n=10;
16 float list_1[MAX_SIZE], list_2[MAX_SIZE], element=0.0;
17
18 printf ( "Please input 10 float numbers for list_1: " );
19 for ( i=0; i<m; i++ )
20 scanf ( "%f", &list_1[i] );
21
22 printf ( "Please input 10 float numbers for list_2: " );
23 for ( j=0; j<n; j++ )
24 scanf ( "%f", &list_2[j] );
25
26 for ( i=0; i<m; i++ )
27 list_1[i] = rounding (list_1[i]);
28 for ( j=0; j<n; j++ )
29 list_2[i] = rounding (list_2[j]);
30 select_sort ( list_1, m );
31 select_sort ( list_2, n );
32
33 for ( j=0; j<n; j++ )
34 {
35 element = list_2[j];
36 if ( insert (list_1, &m, element) == 0 )
37 return (1);
38 }
39 printf ( "The new list is:/n" );
40 for ( i=0; i<20; i++ )
41 {
42 printf ( "%8.2f", list_1[i] );
43 if ( (i+1)%5==0 )
44 printf ( "/n" );
45 }
46 printf ( "/n" );
47
48 return (0);
49 }
50
51 // The end of C program: test06-07.c.
52
--------------------------------------------------------------------------------------------------------------------------------------------------------------
[文件2: head06-08.h]
01 // 以下声明的函数为程序test06-08.c使用到的相关函数,以头文件形式进行保存和调用;
02
03 // The beginning of C header file user_def: head06-08.h.
04
05 // No.1: Subroutine: float rounding ( float f_num );
06 float rounding ( float f_num );
07
08 // No.2: Subroutine: void select_sort ( float list[], int size ); 选择排序子函数
09 void select_sort ( float list[], int size );
10
11 // No.3: Subroutine: int insert ( float list[], int *size, float element );
12 int insert ( float list[], int *size, float element );
13
14 // The end of C header file user_def: head06-08.h.
15
--------------------------------------------------------------------------------------------------------------------------------------------------------------
[文件3: head06-08.c]
01 // 以下函数为head06-08.h中声明的函数的实现,依照相关的顺序排列给出
02
03 // The beginning of C header file program: head06-08.c.
04
05 // Header files included.
06 #include <stdio.h>
07
08 // Macro definition.
09 #define MAX_SIZE 100
10
11 // No.1: Subroutine: float rounding ( float f_num );
12 float rounding ( float f_num )
13 {
14 long int temp=0;
15 temp = (long int) (f_num * 100);
16 temp = (long int) ((f_num*100 - temp)*2 + temp);
17 f_num = temp / 100.0;
18
19 return (f_num);
20 }
21
22 // No.2: Subroutine: void select_sort ( float list[], int size ); 选择排序子函数
23 void select_sort ( float list[], int size )
24 {
25 int i, j, min;
26 float temp=0.0;
27 for ( i=0; i<size-1; i++ )
28 {
29 min = i;
30 for ( j=i+1; j<size; j++ )
31 if ( list[j] < list[min] )
32 min = j;
33 temp = list[i];
34 list[i] = list[min];
35 list[min] = temp;
36 }
37 }
38
39 // No.3: Subroutine: int insert ( float list[], int *size, float element );
40 int insert ( float list[], int *size, float element )
41 {
42 int i=0, tag=0;
43 if ( *size >= MAX_SIZE )
44 {
45 printf ( "The list is too full to insert new element./n" );
46 return (0);
47 }
48 for ( i=0; i<*size; i++ )
49 {
50 if ( element >= list[i] )
51 continue;
52 else
53 if ( element < list[i] )
54 break;
55 }
56 tag = i;
57 if ( tag == *size ) // 在有序表的尾部插入
58 list[*size] = element;
59 else // 在有序表的其他位置插入
60 {
61 for ( i=*size; i>tag; i-- )
62 list[i] = list[i-1];
63 list[tag] = element;
64 }
65 *size = *size + 1;
66 // 返回1表示元素插入成功,返回0表示操作失败.
67 return (1);
68 }
69
70 // The end of C header file program: head06-08.c.
71
让看代码像欣赏“高山流水”一样——心情舒畅啊 (*^__^*)
相关文章推荐
- Linux下完成的一个作业程序
- Linux下完成的一个作业程序
- Linux下完成的一个作业程序
- Linux 内核分析 第二次作业 完成一个简单的时间片轮转多道程序内核代码
- Linux下完成的一个作业程序
- 设计一个学生作业完成情况的管理程序
- Linux下的一个作业程序
- 设计一个学生作业完成情况的管理程序
- linux入手小程序——任何一个程序的运行只有借助于操作系统才能得以顺利完成的小实例
- 设计一个学生作业完成情况的管理程序
- 设计一个学生作业完成情况的管理程序
- 设计一个学生作业完成情况的管理程序
- Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序
- 设计一个学生作业完成情况的管理程序
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- linux下,编写和执行一个c程序的完成过程(复习)
- 一个分析Linux ARP日志的源代码程序
- Linux操作系统的简单指令及如何使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。
- 2、一个简单的Linux下的socket程序
- 做一个用于自动完成数据层的.net外接程序,仅支持C#语言