C语言数组删除函数删除不了
发布网友
发布时间:2022-12-23 18:26
我来回答
共2个回答
热心网友
时间:2024-10-26 15:31
两种做法
1 数组a[]设为全局变量
#include <stdio.h>
#include <stdlib.h>
int a[20] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
void delete1(int x)
{
int i;
for (i =x; i < 20; i++)
a[i] = a[i + 1];
}
int main()
{
int i,x;
printf("请输入要删除的学生学号:");
scanf_s("%d", &x);
delete1(x);
for (i = 0; i < 20; i++)
printf("%d\n", a[i]);
system("pause");
return 0;
}
2 delete1函数增加一个参数,用于传入待处理的数组
#include <stdio.h>
#include <stdlib.h>
void delete1(int x,int a[])
{
int i;
for (i =x; i < 20; i++)
{
if (i + 1 == 20)
{
a[i] = 0;
}
else
{
a[i] = a[i + 1];
}
}
}
int main()
{
int a[20] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,15,16, 17, 18, 19, 20},i,x;
printf("请输入要删除的学生学号:");
scanf_s("%d", &x);
delete1(x,a);
for (i = 0; i < 20; i++)
printf("%d\n", a[i]);
system("pause");
return 0;
少年,自行选一个吧,总有一款你喜欢的
热心网友
时间:2024-10-26 15:31
将数组设为全局变量
当你调用delete时,只是删除了delete函数里数组的数,主函数里的数组未受到影响
建议楼主去看看变量的作用域追问那我该怎样修改