通常我们需要对表格数据进行增删改查,下面是完整的代码
#include <stdio.h>
int main()
{
int array[20] = { 1,5,9 };
int size = 3;
//末尾直接插入
int count = 0;
while (count < 3)
{
int insertNum = 0;
printf("请在末尾插入一个数:");
scanf("%d", &insertNum);
array[size++] = insertNum;
for (int i = 0; i < size; i++)
{
printf("%d ", array[i]);
}
printf("\n");
count++;
}
//删除:
int deleteNum = 0;
int pos = -1;
int flag = 0;
int i = 0;
printf("请输入要删除的信息:");
scanf("%d", &deleteNum);
//先查找下标:
for (i = 0; i < size; i++)
{
if (array[i] == deleteNum)
{
pos = i;
break;
}
}
if (pos == -1)
{
printf("查询不到删除信息\n");
}
else
//下面是删除操作: 数组的删除是伪删除
//伪删除: 数组长度不会变,只是单纯的改变都是记录当前数组中的元素个数的变量,采用前移操作覆盖的方式
{
printf("删除信息的下标为:%d\n", pos);
for (i = pos; i < size; i++)
{
array[i] = array[i + 1];
}
array[size--];
printf("删除之后的数组为:\n");
for (i = 0; i < size; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
int changeNum = 0;
int changePos = 0;
int changeInfo = 0;
printf("请输入要修改的信息:");
scanf("%d", &changeInfo); //修改那个数就输入哪个数
for (i = 0; i < size; i++)
{
if (array[i] == changeInfo) //查找修改数的下标
{
changePos = i;
break;
}
}
printf("将此信息修改为:");
scanf("%d", &changeNum); //输入新的修改数
array[changePos] = changeNum;//赋值修改
printf("修改之后的数组为:\n");
for (i = 0; i < size; i++)
{
printf("%d ", array[i]);
}
printf("\n");
//保证有序性的插入
int arrayNum[9] = { 1,4,10 };
int arraySize = 3;
printf("打印一个有序数组:\n");
for (int i = 0; i < arraySize; i++)
{
printf("%d ", arrayNum[i]);
}
printf("\n");
int insertInfo = 0;
while (1)
{
printf("插入一个数:\n");
scanf("%d", &insertInfo);
int insertPos = -1;
for (int i = 0; i < arraySize; i++)
{
if (insertInfo < arrayNum[i])
{
insertPos = i;
break;
}
}
if (insertPos == -1)
{
arrayNum[arraySize] = insertInfo;
}
else
{
for (int i = arraySize; i > insertPos; i--)
{
arrayNum[i] = arrayNum[i - 1];
}
arrayNum[insertPos] = insertInfo;
}
arraySize++;
for (int i = 0; i < arraySize; i++)
{
printf("%d ", arrayNum[i]);
}
}
return 0;
}
本该两天前写好的代码硬是拖到现在,害,啥也不是,这篇写给自己,是个教训
这是找了两天没找出错的的代码,贴出来以明志
//保证有序性的插入
int arrayNum[9] = { 1,4,10 };
int arraySize = 3;
int i = 0;
printf("打印一个有序数组:\n");
for (i = 0; i < arraySize; i++)
{
printf("%d ", arrayNum[i]);
}
printf("\n");
int insertInfo = 0;
int insertPos = -1;
int Count = 0;
while (Count < 3)
{
printf("插入一个数:\n");
scanf("%d", &insertInfo);
for (i = 0; i < arraySize; i++)
{
if (insertInfo < arrayNum[i])
{
insertPos = i;
break;
}
}
if (insertPos == -1)
{
arrayNum[arraySize] = insertInfo;
}
else
{
for (i = arraySize; i > insertPos; i--)
{
arrayNum[i] = arrayNum[i - 1];
}
arrayNum[insertPos] = insertInfo;
}
arraySize++;
for (i = 0; i < arraySize; i++)
{
printf("%d ", arrayNum[i]);
}
Count++;
}