指针和数组就行了啊
----------------解决方案--------------------------------------------------------
/* 根据要求写了一个,可以完善下 */
#include <stdio.h>
#include <ctype.h>
void show(int ar[], int count); // 显示数组内容
void sorting(int ar[], int n); // 排序
int insert(int ar[], int * count, int n, int insert_num) ; // 插入数字
int help_menu(void); // 帮助菜单
int quit_menu(void); // 退出菜单
int main(void)
{
int ar[100];
int count = 0; // 数组中有0个数
int k, num;
printf("请输入一些数字,数字之间用空格空开,输入一个非数字结束输入:\n");
while(scanf("%d", &ar[count]) == 1 && count < sizeof(ar))
{
count++;
}
while(getchar() != '\n')
continue;
show(ar, count);
do
{
putchar('\n');
k = help_menu();
switch(k)
{
case 'A':
k = 0;
do
{
printf("请输入要添加的数字: ");
k = scanf("%d", &num);
while(getchar() != '\n')
continue;
}while(k != 1);
k = insert(ar, &count, sizeof(ar) / sizeof(int), num);
if(k)
puts("添加成功!");
else
puts("添加失败: 数组已满!");
break;
case 'S':
sorting(ar, count);
puts("完成排序!");
break;
default :
puts("选项错误!");
}
putchar('\n');
show(ar, count);
putchar('\n');
}while(!quit_menu());
puts("Bye!");
getchar();
return 0;
}
void show(int ar[], int count)
{
int i;
for(i = 0; i < count; i++)
{
printf("%6d ", ar[i]);
if(i % 9 == 8)
putchar('\n');
}
if(count < 1)
puts("数组为空!");
putchar('\n');
}
void sorting(int ar[], int count) // 排序
{
int i, j, temp;
for(i = 1; i < count; i++) // 冒泡排序
for(j = 0; j < count - i; j++)
if(ar[j] > ar[j + 1])
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j + 1] = temp;
}
}
int insert(int ar[], int * count, int max, int insert_num) // 插入数字
{
if(*count < max && *count >= 0)
{
ar[*count] = insert_num;
(*count)++;
return 1;
}
else
return 0;
}
int help_menu(void) // 帮助菜单
{
int ch;
do
{
printf("A) 添加 S) 排序\n");
ch = toupper(getchar());
if(ch != '\n')
while(getchar() != '\n')
continue;
}while(ch != 'A' && ch != 'S');
return ch;
}
int quit_menu(void) // 退出菜单
{
int ch;
printf("是否退出退出[Y/N]...");
while((ch = toupper(getchar())) != 'Y' && ch != 'N')
{
if(ch != '\n')
while(getchar() != '\n')
continue;
printf("是否退出退出[Y/N]...");
}
while(getchar() != '\n')
continue;
if(ch == 'Y')
return 1;
else
return 0;
}
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
/* 根据要求写了一个,可以完善下 */
#include <stdio.h>
#include <ctype.h>
void show(int ar[], int count); // 显示数组内容
void sorting(int ar[], int n); // 排序
int insert(int ar[], int * count, int n, int insert_num) ; // 插入数字
int help_menu(void); // 帮助菜单
int quit_menu(void); // 退出菜单
int main(void)
{
int ar[100];
int count = 0; // 数组中有0个数
int k, num;
printf("请输入一些数字,数字之间用空格空开,输入一个非数字结束输入:\n");
while(scanf("%d", &ar[count]) == 1 && count < sizeof(ar))
{
count++;
}
while(getchar() != '\n')
continue;
show(ar, count);
do
{
putchar('\n');
k = help_menu();
switch(k)
{
case 'A':
k = 0;
do
{
printf("请输入要添加的数字: ");
k = scanf("%d", &num);
while(getchar() != '\n')
continue;
}while(k != 1);
k = insert(ar, &count, sizeof(ar) / sizeof(int), num);
if(k)
puts("添加成功!");
else
puts("添加失败: 数组已满!");
break;
case 'S':
sorting(ar, count);
puts("完成排序!");
break;
default :
puts("选项错误!");
}
putchar('\n');
show(ar, count);
putchar('\n');
}while(!quit_menu());
puts("Bye!");
getchar();
return 0;
}
void show(int ar[], int count)
{
int i;
for(i = 0; i < count; i++)
{
printf("%6d ", ar[i]);
if(i % 9 == 8)
putchar('\n');
}
if(count < 1)
puts("数组为空!");
putchar('\n');
}
void sorting(int ar[], int count) // 排序
{
int i, j, temp;
for(i = 1; i < count; i++) // 冒泡排序
for(j = 0; j < count - i; j++)
if(ar[j] > ar[j + 1])
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j + 1] = temp;
}
}
int insert(int ar[], int * count, int max, int insert_num) // 插入数字
{
if(*count < max && *count >= 0)
{
ar[*count] = insert_num;
(*count)++;
return 1;
}
else
return 0;
}
int help_menu(void) // 帮助菜单
{
int ch;
do
{
printf("A) 添加 S) 排序\n");
ch = toupper(getchar());
if(ch != '\n')
while(getchar() != '\n')
continue;
}while(ch != 'A' && ch != 'S');
return ch;
}
int quit_menu(void) // 退出菜单
{
int ch;
printf("是否退出退出[Y/N]...");
while((ch = toupper(getchar())) != 'Y' && ch != 'N')
{
if(ch != '\n')
while(getchar() != '\n')
continue;
printf("是否退出退出[Y/N]...");
}
while(getchar() != '\n')
continue;
if(ch == 'Y')
return 1;
else
return 0;
}
----------------解决方案--------------------------------------------------------