首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数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
2013-03-29
23
问题
请编写函数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。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#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; void
NONO();
printf(”The original data:\n”);
for(i=0; i
a
);
n=fun(a,n);
printf(”\n\nThe data after deleted:
\n”);
for(i=0;i
a
);printf(”\n\n”);
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,
调用fun函数,输出数据,关闭文件。 */
FILE*rf,*wf;int a [N],n,i,j;
rf=fopen(”in.dat”,”r”);
wf=fopen(”out.dat”,”w”);
for(i=0;i<5;i++){
fscanf(rf,”%d”,&n);
for(j=0 ; j
”%d”,&a[j]);
n=fun(a,n);
for(j=0 ; j
(wf,”%4d”,a[j]);
fprintf(wf,”\n”);
}
fclose(rf); fclose(wf);
}
选项
答案
int i,t,j=0,*p=a; t=p[0]; //设置临时变量t初值指向第一 数组值 for(i=0;i<=n;i++) if(t==p[i]) //当临时变量与数组中 的某个值相同则跳出,比较下一个元素 ; else //如果临时变量与数组中值不 同,则对临时变量重新赋值 { a[j]=t; t=p [i]; j++; } if(i>=n) a[j]=t, return j;
解析
(1)首先,设置一个临时变量,初值设置为一维数组的第一个元素。
(2)然后,依次将数组的元素与临时变量比较,如果相同,则继续取数组下一个元素与临时变量比较:如果不同。则将临时变量的值赋值到数组的第一个元素,同时将此与临时变量不同的数组元素赋值给临时变量。
(3)循环执行,直到所有的数据处理完毕。
转载请注明原文地址:https://jikaoti.com/ti/qBn0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行下列程序时输入:123<空格>456<空格>789<回车>输出结果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
以下程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(键表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。#include<stdio.h>structlis
以下程序运行结果是【】。#include<stdio.h>longfib(intg){switch(g){case0:return0;case1:case
以下程序的输出结果是【】。inta=1234;printf("%2d\n",a);
数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。
若有以下的说明,对初值中整数2的正确引用方式是()。staticstruct{charch;inti;doublex;}a[2][3]={{{’a’,1,3,45},{’b’,
以下正确的程序段是
主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){i
有以下程序,其中函数f的功能是将多个字符串按字典顺序排序: #include<string.h> void f(char *p[],int n) {char *t;int i,j; for(i=O;i<n-1;i++)
以下程序中函数fun的功能是:构成—个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。#include<stdio
随机试题
培训需求分析通常在_______进行()
血栓外痔形成的原因是
患者,男性,43岁,踢球时突感左臂及心前区剧痛,有濒死感,就地休息30分钟未缓解,伴烦躁不安、恶心、出冷汗,急送至急诊科。心电监护示多导联ST段弓背状抬高,T波倒置,可见异常深宽Q波,最可能发生了
根据《保险法》的规定,人身保险中对投保人具有保险利益的人包括投保人的()等。
某班共44个人,每人只投一张票,从A、B、C、D、E五位候选人中选出一位班长。已知A得选票23张,B得的选票数占第二位,C、D得的选票相同,而E得的选票最少,只有4张。那么B得了多少张选票?
A.尺骨上1/3骨折合并桡骨头脱位B.伸直型桡骨远端骨折C.屈曲型桡骨远端骨折D.桡骨远端关节面骨折Colles骨折
明朝独有的南皇帝委派宦官会同三法司官员定期录囚的制度是()。(2013法单20)
孔子对不同问“孝”的人回答不同。孟懿子问孝,子曰:“无违。”子游问孝,子曰:“今之孝者,是谓能养。至于犬马,皆能有养;不敬,何以别乎?”子夏问孝,子曰:“色难。”上述问答表明()
某立体上、下底面平行,且与x轴垂直,若平行于底面的截面面积A(x)是x的不高于二次的多项式,试证该立体体积为V=(B1+4M+B2)其中h为立体的高,B1,B2分别是底面面积,M为中截面面积。
Certainbirdsare,moreoftenthannot,consideredbadluck,orevenfrightening,asignofimpendingdeath.Allovertheworld,
最新回复
(
0
)