网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月03日漏签0天
c语言吧 关注:798,916贴子:4,357,702
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 15回复贴,共1页
<<返回c语言吧
>0< 加载中...

大学牲求助贴

  • 只看楼主
  • 收藏

  • 回复
  • 唐奶
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大学牲求助
图一为代码
执行完程序后,我给a值赋予0,理论上来讲应该删除数组数字1(如图二),而给a值赋1的时候,按道理来说应该是删除数组数字2,但是程序还是删除了1(如图三);而当接下来给a值赋值为2时,删除的数字又延续了图二的逻辑,所以删除了2。
想不通的是,因为第17行的循环语句,所以给a值赋值应该是属于给下标赋值,那为什么会出现下标0和下标1都是删除了1,是我搞错概念了吗,如果是错了还请大佬解惑




  • 唐奶
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
轻点骂,大学牲小白qwq


2025-08-03 05:50:52
广告
不感兴趣
开通SVIP免广告
  • 油炸不良人
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
既然a代表下标,为什么拿元素值和a作比较?


  • 油炸不良人
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • a[0]
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
int main() {
int arr[10];
int i;
printf("请输入你所需要的十个整数\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
int a; // 你所要删除的元素位置
printf("请输入你所要删除的元素的位置(0-9)\n");
scanf("%d", &a);
if (a < 0 || a >= 10) {
printf("无效的位置\n");
return 1;
}
for (i = a; i < 9; i++) {
arr[i] = arr[i + 1];
}
printf("删除后的结果为:");
for (i = 0; i < 9; i++) {
printf("%d\t", arr[i]);
}
printf("\n");
return 0;
}


  • a[0]
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
a为零的时候不应该是数组越界吗,arr[-1]为什么不报错


  • 唐奶
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
此贴完结,我算是明白了是我学的有问题,只能说是课堂上真学不到什么吧


  • AN-drew
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看你的代码显然没分清数组下标和数组元素
数组下标就是位置,如下图蓝色数字,从0开始标序号
数组元素就是存储的内容,比如下标为0的位置里存储的是数字1,arr[0]=1;下标为4的位置中存储的是数字5,arr[4]=5

for循环输入数组其实就是把过程简化了,不然得重复写9遍scanf,从scanf("%d", &arr[0]);一直写到scanf("%d", &arr[9]);
如果改用循环变量 i 来遍历下标,只需要在循环体写scanf("%d", &arr[i]);
同理,删除某个位置a,只需要用for循环判断a==i,确定a是哪个下标位置
因为C语言数组不能动态删除元素,只能用“后面覆盖前面”来实现删除,即arr[i]=arr[i+1];
除此之外还要定义一个变量len来表示数组长度,输出时只输出到len,而不是10,不然就会有元素重复输出
比如删除的位置为1,则a==1,用“后面覆盖前面”,如下图,a[1]被覆盖为a[2]中存储的数字3(下图棕红色数字)

a[2]也是被a[3]覆盖

以此类推,直到最后a[8]被a[9]覆盖

此时删除完成,数组长度len需要减一
输出时按for(i=0; i<len; i++)来执行


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 15回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示