考试题目
#define _CRT_SECURE_NO_DEPRECATE #include "stdio.h" #include "stdlib.h" #include "conio.h" typedef struct linked_list linked_list; struct linked_list{ int num; linked_list * next; }; linked_list list = { 0, NULL }; int count = 0; void display(){ linked_list * p = list.next; int i = 0; puts( "列表输出:" ); while( p != NULL ){ printf( "%d: %d\n", i, p->num ); p = p->next; i++; } puts( "输入次数:" ); printf( "%d\n", count ); _getch(); } void input(){ linked_list * p = &list; linked_list * tmp = NULL; int n; printf( "请输入数字:" ); scanf( "%d", &n ); tmp = ( linked_list * )malloc( sizeof( linked_list ) ); tmp->num = n; tmp->next = NULL; while( NULL != p->next ){ if( p->next->num > n ){ tmp->next = p->next; p->next = tmp; count++; return; } p = p->next; } p->next = tmp; count++; } void delnum(){ linked_list * p = &list; linked_list * tmp = NULL; int id = 0; int i; if( NULL == list.next ){ return; } printf( "请输入数字ID:" ); scanf( "%d", &id ); for( i = 0; i < id; i++ ){ p = p->next; if( NULL == p->next ){ return; } } tmp = p->next; p->next = p->next->next; free( tmp ); } void average(){ linked_list * p = list.next; int sum = 0; int i = 0; if( NULL == list.next ){ return; } while( NULL != p ){ sum += p->num; i++; p = p->next; } puts( "平均数为:" ); printf( "%d\n",sum / i ); _getch(); } void maxnum(){ linked_list * p = NULL; int max; if( NULL == list.next ){ return; } else{ max = list.next->num; } p = list.next->next; while( NULL != p ){ if( p->num > max ){ max = p->num; } p = p->next; } puts( "最大数为:" ); printf( "%d\n",max ); _getch(); } void minnum(){ linked_list * p = NULL; int min; if( NULL == list.next ){ return; } else{ min = list.next->num; } p = list.next->next; while( NULL != p ){ if( p->num < min ){ min = p->num; } p = p->next; } puts( "最小数为:" ); printf( "%d\n",min ); _getch(); } void menu(){ int key = '\0'; while( key != '0' ){ system( "cls" ); puts( "1.列表输出" ); puts( "2.输入" ); puts( "3.删除" ); puts( "4.平均值" ); puts( "5.最大值" ); puts( "6.最小值" ); puts( "0.退出" ); key = _getch(); switch( key ){ case '1':{ display(); }break; case '2':{ input(); }break; case '3':{ delnum(); }break; case '4':{ average(); }break; case '5':{ maxnum(); }break; case '6':{ minnum(); }break; } } } int main(){ menu(); return 0; }