C言語配列の追加と削除の実現
配列は要素の挿入(追加)と削除が苦手です。配列の利点は連続的なので、データの検索速度が速いことにある。しかし、これも欠点の一つです。連続しているので、要素を挿入すると、点を挿入した後にすべての要素が後ろに移動します。要素を削除すると、ポイントを削除したすべての要素が前に移動します。
アルゴリズムを挿入
挿入値の下付き文字を入力してください。10挿入値を入力してください。22
1 5 66 8 55 9 1 32 65 4 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 8 7 215。
アルゴリズムを削除
削除する値の下付きを入力してください。
1 5 66 8 55 1 32 65 4 6 6 6 6 6 6 6 6 6 6 6 6 6 1 8 8 7 215。
実例
37,49,51,61。設計プログラムは配列中のデータに対して一回の削除と挿入操作を実現します。
キーボード入力をgetch ar関数で受信します。
●文字'D'を入力すると、受信キーボードは1つの配列の中に存在する整数nを入力し、配列中に存在するこの整数を削除します。削除後の配列の各要素はまだ小さい順に並べられています。
要求:発泡法または選択法を使用しないで、データを削除した後のソート操作を実現します。
●文字'I'を入力すると、受信キーボードは配列に存在しない整数mを入力し、その整数mを配列に挿入し、挿入を要求する配列の各要素はまだ小さい順に配列されている。
要求:発泡法または選択法を使用しないで、データを挿入した後のソート操作を実現します。
サンプル入出力:
配列並べ替えの結果は、5,9,11,16,24,34,37,49,51,61
必要な操作(「I」挿入、「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 <stdio.h>
int main(void)
{
int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};
int b[24]; // , , 24
int Index; // , Index “ ”
int num; //
int i; //
printf(" :");
scanf("%d", &Index);
printf(" :");
scanf("%d", &num);
for (i=0; i<24; ++i)
{
if (i < Index)
{
b[i] = a[i]; /* i Index , */
}
else if (i == Index)
{
b[i] = num; //i Index , b
}
else
{
b[i] = a[i-1]; /* , */
}
}
for (i=0; i<24; ++i)
{
printf("%d\x20", b[i]);
}
printf("
");
return 0;
}
出力結果は:挿入値の下付き文字を入力してください。10挿入値を入力してください。22
1 5 66 8 55 9 1 32 65 4 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 1 8 7 215。
アルゴリズムを削除
# include <stdio.h>
int main(void)
{
int a[23] = {1, 5, 66, 8, 55, 9, 1, 32, 5, 65, 4, 8, 5, 15, 64, 156, 1564, 15, 1, 8, 9, 7, 215};
int b[22]; /* , , 22*/
int Index; //
int i; //
printf(" :");
scanf("%d", &Index);
for (i=0; i<23; ++i)
{
if (i < Index)
{
b[i] = a[i]; /* i Index , */
}
else
{
b[i] = a[i+1]; /* , */
}
}
for (i=0; i<22; ++i)
{
printf("%d\x20", b[i]); // \x20
}
printf("
");
return 0;
}
出力結果は:削除する値の下付きを入力してください。
1 5 66 8 55 1 32 65 4 6 6 6 6 6 6 6 6 6 6 6 6 6 1 8 8 7 215。
実例
37,49,51,61。設計プログラムは配列中のデータに対して一回の削除と挿入操作を実現します。
キーボード入力をgetch ar関数で受信します。
●文字'D'を入力すると、受信キーボードは1つの配列の中に存在する整数nを入力し、配列中に存在するこの整数を削除します。削除後の配列の各要素はまだ小さい順に並べられています。
要求:発泡法または選択法を使用しないで、データを削除した後のソート操作を実現します。
●文字'I'を入力すると、受信キーボードは配列に存在しない整数mを入力し、その整数mを配列に挿入し、挿入を要求する配列の各要素はまだ小さい順に配列されている。
要求:発泡法または選択法を使用しないで、データを挿入した後のソート操作を実現します。
サンプル入出力:
配列並べ替えの結果は、5,9,11,16,24,34,37,49,51,61
必要な操作(「I」挿入、「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 <stdio.h>
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("
");
printf(" ( ‘I', ‘D')
");
get = getchar();
getchar();
if (get=='D')
{
printf(" :
");
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("
");
}
printf(" ( ‘I', ‘D')
");
get = getchar();
getchar();
if (get='I')
{
printf(" :
");
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言語配列の追加と削除の実現についての文章を紹介します。より多くの関連C言語配列の追加と削除要素の内容を紹介します。私達の以前の文章を検索してください。または次の関連記事を引き続きご覧ください。これからもよろしくお願いします。