首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
admin
2019-04-14
99
问题
请编写函数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)
{
}
void main()
{
FILE *wf;
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(″\nThe data after deleted:\n″);
for(i=0;i<n;i+ +)
printf(″%3d″,a
);
printf(″\n″);
/* * * * * * * * * * * * * * * */
wf=fopen(″out.dat″,″w″);
for(i=0;i<n;i+ +)
fprintf(wf,″%3d″,a
);
fclose(wf);
/* * * * * * * * * * * * * * * */
}
选项
答案
int fun(int a[],int n) { int i,j=1; for(i=1;i<n;i+ +) if(a[j—1]!=a[i]) /*若该数与前一个数不相同,则要保留*/ a[j+ +]=a[i]; return j;/*返回不相同数的个数*/ }
解析
该程序的流程是:定义变量i和j,其中j用于控制删除后剩下的数在数组中的下标,i用于搜索原数组中的元素。j始终是新数组中最后一个元素的下一个元素的下标,所以if语句中的条件是a[j—1]!=a
,其中a[j—1]就是新数组中的最后一个元素,若条件成立,则表示出现了不同的值,所以a
要保留到新数组中。
注意:本题中i和j的初值都要从1开始,该算法只能用于数组已排序的题目中。
转载请注明原文地址:https://www.kaotiyun.com/show/V1Rp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"ThisisYES."与"ThisisNO."。空白处需要填入的内容是#includevoidYesNo(charch){switch(ch)
以下函数不能用于向文件中写入数据的是
以下程序的输出结果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
在结构化方法中,软件功能分解属于软件开发中的()阶段。
若有以下定义语句,则不移动指针p,并且通过指针p引用值为98的数组元素的表达式是【】。intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
下列叙述中正确的是 ______。
以下正确的说法是
变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是()。
若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。
深度为7的二叉树共有127个节点,则下列说法中错误的是()。
随机试题
下列程序的运行结果是【】#includeintx=1;intfun(inta){staticintb=1;b+=a+x;returnb;}main(){i
A.脊髓灰质炎病毒B.疱疹病毒C.乳头瘤病毒D.狂犬病毒E.丙型肝炎病毒经泌尿生殖道传播的病毒是
有关吸虫卵生物学描述,不正确的是
商业银行当前的外汇敞口头寸如下:瑞士法郎空头20,日元多头50,欧元多头100,英镑多头150,美元空头180。则累计总敞口头寸和净总敞口头寸分别为()。
有9个不同的正整数,它们的平均值为32,中位数为25,则它们当中最大的数的最大值可能为()。
人力资源的一般特点是()。
夏季天气炎热,人很容易犯困、无精打采,这时不妨吃几颗葡萄来帮你提神、消除疲乏之意。因为在葡萄中含有丰富的葡萄糖成分,且很容易被人体吸收利用,从而为大脑供给所需能量,快速恢复大脑活力。同时,葡萄中还含有较多的氨基酸,能对神经产生良好的__________,帮
根据解释尺度的不同,法律解释可以分为()
下列关于减刑适用的理解,正确的有()。
打开工作簿文件EXCEL.xlsx,将工作表sheetl的A1:D1单元格合并为一个单元格,内容水平居中,计算“金额”列的内容(金额=单价*订购数量),将工作表命名为“图书订购情况表”。
最新回复
(
0
)