刪除陣列其中一個元素 並新增一個元素
阿新 • • 發佈:2021-01-07
#include <stdio.h>
main()
{
int arr[] = {88, 77, 44, 66, 99};
int count;//陣列的長度
int i,j;
int deletenum; //輸入要刪除的數字
int deleteposition = -1;//要刪除數字的下標
//int judgment = -1;//判斷條件
int insertnum; //要插入的數字
//從大到小輸出,氣泡排序
count = sizeof(arr) / sizeof(arr[0]);
for(i = 0; i < count - 1; i++)
{
for(j = 0; j < count - 1 - i; j++)
{
int t = 0;
if(arr[j] < arr[j + 1])
{
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
//輸出陣列中的每個元素
for(i = 0; i < count; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
//刪除其中一個元素
printf("請輸入要刪除的數字:");
scanf("%d", &deletenum);
for(i = 0; i < count; i++)
{
if(deletenum == arr[i])
{
deleteposition = i; //記錄下標的位置
break;
}
}
if(deleteposition == -1)
{
printf("抱歉,沒有找到你要刪除的數字,請重試!\n");
}
else
{
for(i = deleteposition; i < count - 1; i++)//從刪除下表的那個元素開始位移
{
arr[i] = arr[i + 1];//把後面的值賦給前面的元素
}
count--;//刪除陣列後,陣列總長度-1
printf("刪除後的數列為:\n");
for(i = 0; i < count; i++)//輸出陣列刪除後的元素
{
printf("%d ", arr[i]);
}
printf("\n");
//在陣列中插入一個元素
printf("請輸入你要插入的數字:");
scanf("%d", &insertnum);
arr[count] = insertnum;//將插入的數字給陣列的最後一個元素
count++;//插入數字後,陣列總長度+1
printf("插入數字後的數列為:\n");
for(i = 0; i < count; i++)//輸出陣列插入數字後的元素
{
printf("%d ", arr[i]);
}
printf("\n");
//插入數字的元素從大到小輸出
printf("將新的陣列從大到小排列:\n");
for(i = 0; i < count - 1; i++)
{
for(j = 0; j < count - 1 - i; j++)
{
int s = 0;
if(arr[j] < arr[j + 1])
{
s = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = s;
}
}
}
for(i = 0; i < count; i++)
{
printf("%d ", arr[i]);
}
}
return 0;
}