首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数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
2018-09-10
52
问题
请编写函数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 N80
int fun(int a[],int n)
{
}
void main()
{
FILE*wf;
int a[N]=t2,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
);
felose(wf);
/****************/
}
选项
答案
int fun(int a[],int n) { int i,j=1; f10r(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/7Vxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序段:intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为(
微型计算机的性能主要取决于______。
有以下程序:inta=3;main(){ints=0;{inta=5;s+=a++;)s+=a++;printf(’%d\n’,s);}程序运行后的输出结
下列程序的运行结果是______。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){sw
设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是()。
字符串"\\\’abcd\123\xAB\t"的长度是()。
已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。structlink{intdata;st
关系代数运算是以______为基础的运算。
以下4个选项,不能看作一条语句的是()。
以下选项中合法的用户标识符是
随机试题
关于输尿管结石的超声诊断,不正确的是
甲国暴发某种恶性传染病。甲国驻乙国大使的官邸据报发现疑似患者。乙国卫生防疫人员为此赶到该官邸外做好处理患者的准备工作。甲乙两国均为《维也纳外交关系公约》的缔约国,且没有其他的相关协定。依公约的规定,下列哪项是正确的?()
某项目期初投资额为2000万元,从第一年末开始每年净收益480万元。若基准收益率为10%,并已知(P/A,10%,5)=3.7908和(P/A,10%,6)=4.3553,则该项目的静态投资回收期和动态投资回收期分别为()年。
()是用于控制灭火剂的流速和喷射方向的组件,是气体灭火系统的一个关键部件。
具有从事期货业务10年以上经验或者曾担任金融机构部门负责人以上职务()年以上的人员,申请期货公司董事长、监事会主席、高级管理人员任职资格的,学历可以放宽至大学专科。
下述关于可行域的描述哪些是正确的?( )
下列哪一项不属于丽水市的历史文化遗产?()
下列关于物理常识说法错误的是()。
根据行为目标和测量的内容,测量可分为四种,其中不包括()
关于生产、销售伪劣商品罪,下列哪些判决是正确的?()
最新回复
(
0
)