18362374790 发表于 2019-11-12 16:55

还是一个c语言数组的问题

本帖最后由 18362374790 于 2019-11-12 16:57 编辑

1   #include <stdio.h>
2   #define UNM 10
3   int arrdel (int *,int,int); //函数用来进行所要求的的删除操作
4      void arrout (int *,int );//函数用来输出数组中的数据
5   int getindex (int n);   //函数用来输入所删除元素的下标,函数中对输入的下标进行检查,若越界,则要求重新输入,直到正确为止
6   main ( )
7   {
8   int n,d,a={21,22,23,24,25,26,27,28,29,30};
9   n=NUM;
10   printf("output primary date:\n");
11   arrout(a,n);
12   d=getindex(n);
13    n=arrdel(a,n,d);
14   printf("output the data after delete :\n");
15   arrout(a,n);
16   }
函数的调用原型过程暂不写了。
         在这个main中,第12,13行是什么意思?是第12行是把要删除的元素下标给d,然后第13行是删除数组a中的d所包含的下标元素吗?还有第12行的getindex函数后面怎么是n,n代表的是什么呢?
多谢各位大佬指教。         

条件日志 发表于 2019-11-12 17:05

n代表的是数组元素个数

条件日志 发表于 2019-11-12 17:06

第12行是扫描一个要删除的下标,n是最大值,也就是说输入的应比n小

bignuts 发表于 2019-11-12 17:06

n=NUM,就是一维数组的个数,估计是循环或判断用到,他在第5行注释写到了会检查是否超限。
没有子函数的代码,应该就是你说的 第12行是把要删除的元素下标给d,然后第13行是删除数组a中的d所包含的下标元素

kang000 发表于 2019-11-13 09:09

个人理解:
第12行的getindex(n),根据注释说明,函数会实现控制台提示输入一个数字x,在判断输入的x值是否比n大,也就是判断是否越界;如果越界,循环提示要求重新输入;否则函数返回x的值给d。
第13行的arrdel(a,n,d),a为传递a的首地址;n为数组的长度;d为要删除的数组下标(具体是下标还是位置需要看函数的具体实现);之后将删除后的数组长度返回给n。

getindex函数的n,前面n=NUM;说明表示的是数组的长度。

页: [1]
查看完整版本: 还是一个c语言数组的问题