C语言程序作业:实现数组元素删除和插入

定义一个能存放10个整数的数组,存放一组从小到大的整数数据:5, 9, 11, 16, 24, 34, 37, 49, 51, 61。设计程序对数组中的数据实现一次删除及插入操作:

利用getchar()函数接收键盘输入:
● 当输入字符’D’时,接收键盘输入一个数组中存在的整数n,并对数组中存在的该整数进行删除,要求删除后的数组各元素仍按照从小到大的顺序排列。
要求:不使用冒泡法或选择法实现删除数据后的排序操作。
● 当输入字符’I’时,接收键盘输入一个数组中不存在的整数m,并将该整数m插入到数组中,要求插入后的数组各元素仍按照从小到大的顺序排列。
要求:不使用冒泡法或选择法实现插入数据后的排序操作。

样例输入和输出:
数组排序后的结果为:5, 9, 11, 16, 24, 34, 37, 49, 51, 61

请输入需要进行的操作(插入’I’,删除’D’):D
请输入需要删除的整数:9
删除后的数组为:5, 11, 16, 24, 34, 37, 49, 51, 61

请输入需要进行的操作(插入’I’,删除’D’):I
请输入需要插入的整数:13
插入后的数组为:5, 11, 13, 16, 24, 34, 37, 49, 51, 61

#include 

int main()
{
 int a[10] = { 5, 9, 11, 16, 24, 34, 37, 49, 51, 61 };
 int i = 0,n=0,k=0;
 char get;
 
 for (i = 0; i < 10; i++)
  	printf("%3d", a[i]);
 printf("\n");
 printf("请输入需要进行的操作(插入‘I’,删除‘D’)\n");
 
 get = getchar();
 getchar();
 
 if (get=='D')
 {
  	printf("请输入要删除的整数:\n");
  	n = getchar(); 
 	 getchar();
  	n -= 48;
 	 for (i = 0; i < 10; i++)
  	{
  	 if (a[i]==n)
  	 {
   		for (; i < 10; i++)
   		 {
    		 a[i] = a[i + 1];
   		 }
   		 a[9] = 0;
    		break;
  	 }
  	}
  for (i = 0; i < 9; i++)
   	printf("%3d", a[i]);
  printf("\n");
 }
 
 printf("请输入需要进行的操作(插入‘I’,删除‘D’)\n");
 get = getchar();
 getchar();
 
 if (get='I')
 {
  printf("请输入要插入的整数:\n");
  scanf_s("%d", &n);                 //注意陷阱,不能用getchar(),因为13其实是两个字符,回车之后,n只吸收了‘1’,所以只能用scanf_s().
  for (i = 0; i < 10; i++)
  {
   if (a[i] < n&&n < a[i + 1])
   {
    k = i;
    for (i = 8; i > k; i--)
    {
     a[i+1] = a[i];
    }
    a[k+1] = n;
    break;
   }
  }
  for (i = 0; i < 10; i++)
   printf("%3d", a[i]);
 }
 return 0;
}

加油加油!

你可能感兴趣的:(C语言程序作业:实现数组元素删除和插入)