给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

admin2021-04-28  21

问题 给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
1  #include<stdio.h>
2  #include<stdlib.h>
3  #define N 20
4  int fun(int*b)
5  {
6   /*********found*********/
7  int t[N],i,num
8  for(i=0;i9    if(b>=10)
10   /*********found*********/
11    t[++num]=b
12   /*********found*********/
13    for(i=0;i14    b=t
15    return(num);
16  }
17   main()
18   {int a[N],i,num;
19   printf(’’a数组中的数据:\n’’);
20  for(i=0;i21    {a=rand()%21;
22    printf(’’%4 d’’,a);}
23   printf(’’\n’’);
24   num=fun(a);
25    for(i=0;i26    printf(’’%4d’’,a);
27    printf(’’\n’’);
28  }

选项

答案(1)int t[N],i,num=0; (2)t[num++]=b[i];或{t[num]=b[i];num++;} (3)for(i=0;i
解析 要删除数组b中小于10的数,应依次取出数组数组b中的元素与10进行比较,若不小于10,则将其存入数组t中,遍历完成后,数组t中的元素即为所求,再将数组t中的元素保存到数组b中即可。
    (1)元素num存放不小于10的元素的个数,应将其初始化为0。
    (2)将数组b中不小于10的元素存人数组t中,同时使数组t的下标加1。
    (3)语法错误,没有nun这个变量,应该为num。
转载请注明原文地址:https://jikaoti.com/ti/odz0FFFM
0

最新回复(0)