首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 1
请编写函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 1
admin
2010-09-14
35
问题
请编写函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio. h>
#define N 80
int fun(int a[], int n)
{
}
main ( )
{
int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,
8,9,9,10,10,10,10}, i, n=20;
printf ("The original data : \n");
for(i=0; i<n; i++)
printf ("%3d", a
);
n=fun (a, n);
printf("\n\nThe data after deleted
: \n");
for(i=0; i<n; i++)
printf ("%3d", a
);
printf ("\n\n");
}
选项
答案
int fun(int a[], int n) { int i, j=l; for (i=1; i<n; i++) if (a[j-1] !=a[i]) /*若该数与前一个数不相同,则要保留*/ a[j++]=a [i]; return j; /*返回不同数的个数*/ }
解析
本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a
,其中a[j-1]就是新数组中的最后一个元素,若条件成立,则表示出现了不同的值,所以a
要留下到新数组中。注意本题中i,j的初值都要从1开始,该算法只能用于数组已排序的题目中。
转载请注明原文地址:https://kaotiyun.com/show/GWID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在推进我国反腐倡廉建设的工作上,中国共产党一直坚持不懈地努力着,下列有关说法错误的是()。
亚太经合组织逐步形成了自己独特的合作方式,即“APEC”方式,这一合作方式的内容是()。①承认多样性②强调协商一致③强调互惠互利④强调自主自愿⑤强调灵活性⑥提倡自由贸易
我国佛教艺术驰名中外,云冈石窟、龙门石窟和莫高窟三大石窟举世皆知。以下关于三大石窟地理位置的描述,正确的是()。
《公务员法》规定,对公务员考核的内容包括德、能、勤、绩、廉五个方面,重点考核()。
改革开放以来,我国主要区域政策经历了不同的阶段:①以经济特区为重心的沿海地区优先发展阶段;②以缩小区域差距为导向的西部大开发阶段;③以浦东开发为龙头的沿江沿边地区重点发展阶段;④以区域协调发展为导向的共同发展阶段。这四个阶段按时间顺序排列应为()。
以下中国历史上著名历史事件按发生先后顺序排序,完全正确的是()。
如图所示,X、Y、Z分别是面积为64、180、160的三张不同形状的纸片。它们部分重叠放在一起盖在桌面上,总共盖住的面积为290。且X与Y、Y与Z、Z与X重叠部分面积分别为24、70、36。问阴影部分的面积是多少?
某校按字母A到Z的顺序给班级编号,按班级编号加01、02、03……给每位学生按顺序定学号,若A—K班级人数从15人起每班递增1名,之后每班按编号顺序递减2名,则第256名学生的学号是多少?
一个南4个数字(0—9之间的整数)组成的密码,每连续两位都不相同,问任意猜一个符合该规律的数字组合,猜中密码的概率为()。
掷两个骰子,掷出的点数之和为奇数的概率为P1。掷出的点数之和为偶数的概率为P2,问P1和P2的大小关系是()。
随机试题
有以下程序:#includevoidf(int*p){inti=0:for(;i<5;i++)(*p)+=2;}voidmain(){inta[5]={0,1,2,3,4},i;f(a);for(i=0;i<5;i++)print
通常规定单位时间内通过导体横截面的电量称为电流,以字母I表示。()
在安装Windows7的最低配置中,内存的基本要求是512M及以上。
A.子宫颈平滑肌瘤B.食管腺癌C.肝血管肉瘤D.顽固性贫血E.类肉瘤虽称之为“瘤”但并不是肿瘤的是
甲、乙双方达成协议,约定甲将房屋无偿提供给乙居住,乙则无偿教甲的女儿学钢琴。对于该协议,下列哪些说法是正确的?()
【背景资料】某公司承建一城市道路工程,道路全长3000m,穿过部分农田和水塘,需要借土回填和抛石挤淤。工程采用工程量清单计价,合同约定分部分项工程量增加(减少)幅度在15%以内执行原有综合单价。工程量增幅大于15%时,超过部分按原综合单价的0.9倍计算;
计算机账务处理系统中,某种凭证类型一旦使用,则年度内()。
()是指行政机关在履行职责过程中制作或者获取的,以一定形式记录、保存的信息。
根据汉字国标GB2312-1980的规定,总计有各类符号和—级、二级汉字个数是()。
CircleTHREElettersA~E.WhichTHREEofthefollowingusesofdamwaterarementioned?(A)providingwaterforlivestock(B)wate
最新回复
(
0
)