トピック: 5 つの数値を入力し、削除する数値を入力し、残りの結果を印刷します。
方法1:ダブルポインタ方式
原理:
i は右に移動し、修飾されたものを arr[j] に格納します。独自の補償範囲と同等。
削除される数字は数字 3です。i が 3 を通過すると、i は 3 になります。この時点では j は受け入れられず、j は 2 のままです。
そして、i が 4 を通過すると、i は 4、j は受信し、j は現在 3 です。
最後に、印刷配列を走査します。範囲はj の数です。
方法 2: コモンロー (トラバース + if 判定の場合)
#include<stdio.h>
#include<string.h>
int main()
{
int i = 0;
int j = 0;
int arr[5] = {0};
for (i = 0; i < 5; i++)
{
scanf("%d", &arr[i]);
}
int del = 0;
scanf("%d",&del);
//法一
for (i = 0; i < 5; i++)
{
if (arr[i] != del)
{
arr[j] = arr[i];
j++;
}
}
for (i = 0; i < j; i++)
{
printf("%d", arr[i]);
}
//法二
/*for (i = 0; i < 5; i++)
{
if (arr[i] != del)
printf("%d", arr[i]);
}*/
return 0;
}