#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;
}