C语言实验平台编程作业 闰年判断分段函数计算题 含完整代码答案_第1页
C语言实验平台编程作业 闰年判断分段函数计算题 含完整代码答案_第2页
C语言实验平台编程作业 闰年判断分段函数计算题 含完整代码答案_第3页
C语言实验平台编程作业 闰年判断分段函数计算题 含完整代码答案_第4页
C语言实验平台编程作业 闰年判断分段函数计算题 含完整代码答案_第5页
已阅读5页,还剩21页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

考试平台题目题目:从键盘上任意输入一个年份,就能判断闰年或平年。如果是闰年,输出1否则输出0闰年的条件:第一能够被400整除的数;第二能够被4整除但不能被100整除的数。-------------------------------------------------------*/#include<stdio.h>intmain(){intyear,t=0;scanf("%d",&year);/**********Program**********/ if(year%400==0||(year%4==0&&year%100!=0))t=1;elset=0;/**********End**********/printf("%d\n",t);return0;}题目:要求:从键盘上输入x的值,按下式计算y的值。|--x(x<1)y=|--2x-1(1<=x<10)|--3x-11(10<=x)-------------------------------------------------------*/#include<stdio.h>intmain(){intx,y;scanf("%d",&x);/**********Program**********/ if(x<1)y=x; elseif(x<10)y=2*x-1; elsey=3*x-11;/**********End**********/printf("%d\n",y);return0;}题目:编写计算器程序,要求如下:①从屏幕获取两个变量的值和一个算术运算符(+、-、*、/、%),对这两个变量进行相应的算术运算,输出计算结果,对于其他运算符给出错误信息。②用switch语句实现。-------------------------------------------------------*/#include<stdio.h>intmain(){intx,y,z;charop;scanf("%d%c%d",&x,&op,&y);/**********Program**********/ switch(op) { case'+':z=x+y;break; case'-':z=x-y;break; case'*':z=x*y; break; case'/':z=x/y; if(0==y)printf("divisionbyzero!\n"); elseprintf("%d/%d=%d\n",x,y,z); break; case'%': z=x%y; if(0==y)printf("divisionbyzero!\n"); elseprintf("%d%%d=%d\n",x,y,z);break; default: printf("invalidoperator!\n"); }/**********End**********/printf("%d\n",z);return0;}题目:设fh为父亲的身高,mh为母亲的身高,身高预测公式为:男性成人时身高=(fh+mh)*0.54(cm)女性成人时身高=(fh*0.923+mh)/2(cm)此外,如果喜爱体育锻炼,那么身高可增加2%;如果有良好的卫生饮食习惯,那么身高可增加1.5%。编程从键盘输入用户性别、父母身高、是否喜爱体育锻炼、是否有良好的饮食习惯等条件,利用给定公式和身高预测方法对身高预测。-------------------------------------------------------*/#include<stdio.h>intmain(){intsex,he,ph;/*sex-1为男性,0为女性;he-良好卫生习惯1-是,0-否;ph-参加体育锻炼,1-是,0-否*/floatfh,mh,h;printf("你是男性还是女性\n");scanf("%d",&sex);printf("请输入父母的身高\n");scanf("%f%f",&fh,&mh);printf("是否参加体育锻炼\n");scanf("%*c%d",&ph);printf("是否有良好的卫生饮食习惯\n");scanf("%*c%d",&he);/**********Program**********/ if(sex==1) {h=(fh+mh)*0.54; if(ph==1)h=h*1.02; if(he==1)h=h*1.015; } else {h=(fh*0.923+mh)/2; if(ph==1)h=h*1.02; if(he==1)h=h*1.015; }/**********End**********/printf("%0.2f\n",h);return0;}题目:请编写程序实现计算3到100之间所有素数的平方根之和,并输出。-------------------------------------------------------*/#include<stdio.h>#include<math.h>intmain(){inti,j;doublesum=0.0;/**********Program**********/ for(i=3;i<=100;i++){ {for(j=2;j<i;j++) if(i%j==0)break;} if(i==j) sum=sum+sqrt(i);}/**********End**********/printf("%lf\n",sum);return0;}题目:相传国际象棋是古印度舍罕王的在想达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的在想指着8*8共64格的象棋盘说:"陛下,请您赏我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放4粒,第3格中放8粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64个格子。我就感激不尽了。"舍罕王让人抗来一袋麦子,他要兑现他的许诺。请问:国王能兑现他的承诺么?编程计算舍罕王共需要多少麦子赏赐他的宰相,这些麦子相当于多少立方米?(1m3麦子约1.42e8粒)****特别申明:只输出多少立方米的麦子,不使用pow函数****-------------------------------------------------------*/#include<stdio.h>intmain(){inti;doublesum=1.0,an=2;/**********Program**********/ for(i=1;i<64;i++) {an=an*2; sum=sum+an;} sum=sum/1.42e8;/**********End**********/printf("%lf\n",sum);return0;题目:编程打印出所有的"水仙花数",所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。如153=1*1*1+3*3*3+5*5*5。输出时注意,每一个水仙花数独占一行。不用pow函数-------------------------------------------------------*/#include<stdio.h>intmain(){inti,bw,sw,gw;for(i=100;i<=999;i++){/**********Program**********/ bw=(i/100); sw=(i/10%10); gw=(i%10); if(i==bw*bw*bw+sw*sw*sw+gw*gw*gw)/**********End**********/printf("%d\n",i);}return0;题目:计算如样图所示的多项式求和,输入一个x就可以得到求和要求x<0.97。-------------------------------------------------------*/#include<stdio.h>#include<math.h>intmain(){inti;doublexn=1.0,sum=1.0,x;scanf("%lf",&x);/**********Program**********/ for(i=1;fabs(xn)>=1e-6;i++) {xn=xn*(0.5-i+1)*x/i; sum=sum+xn;}/**********End**********/printf("%lf\n",sum);return0;}题目:用dowhile循环求Fibonacci数列中刚好大于1000的数,并输出结果。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)-------------------------------------------------------*/#include<stdio.h>#include<math.h>intmain(){intf0=0,f1=1,f;/**********Program**********/ do{ f=f0+f1; f0=f1; f1=f; }while(f<=1000);/**********End**********/printf("%d\n",f);return0;编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)-------------------------------------------------------*/#include<math.h>#include<stdio.h>intfun(intt){/**********Program**********/ intf0=0,f1=1,f; do{ f=f0+f1; f0=f1; f1=f; }while(f<=t); returnf;/**********End**********/}main()/*主函数*/{intn;n=1000;printf("n=%d,f=%d\n",n,fun(n));return0;}题目:请编写函数,其功能是计算3到n之间所有素数的平方根之和。例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。(注意:要求n的值大于2且不超过100。)-------------------------------------------------------*/#include<math.h>#include<stdio.h>doublefun(intn){/**********Program**********/inti,j;doublesum=0;for(i=3;i<=n;i++){for(j=2;j<i;j++){if(i%j==0)break;}if(i==j)sum=sum+sqrt(i);}returnsum;/**********End**********/}intmain(){intn;doublesum;printf("\n\nInputn:");scanf("%d",&n);sum=fun(n);printf("\n\nsum=%lf\n\n",sum);return0;}题目:计算如样图所示的多项式求和,输入一个x就可以得到求和要求x<0.97。-------------------------------------------------------*/#include<stdio.h>#include<math.h>doublefun(doublex){/**********Program**********/ inti; doublexn=0.5*x,sum=1.0; for(i=2;fabs(xn)>=1e-6;i++){ sum=sum+xn;xn=xn*(0.5-i+1)/i*x;} returnsum;/**********End**********/}intmain(){doublex;scanf("%lf",&x);printf("%lf\n",fun(x));return0;}题目:请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。注意:要求n的值不大于100。-------------------------------------------------------*/#include<stdio.h>doublefun(intn){/**********Program**********/ inti; doublesum=0; for(i=1;i<=n;i++){ if(i%5==0||i%9==0) sum=sum+1.0/i; }returnsum;/**********End**********/}intmain(){intn;doubles;printf("\nInputn:");scanf("%d",&n);s=fun(n);printf("s=%f\n",s);return0;}题目:请编写一个函数fun,它的功能是:根据以下样图公式求π的值(比如要求满足精度0.0005,即某项小于0.0005时停止迭代)-------------------------------------------------------*/#include<stdio.h>#include<math.h>doublefun(doubleeps){/**********Program**********/ inti; doublesum=1.0,xn=1.0; for(i=1;fabs(xn)>=eps;i++){ xn=xn*i/(2*i+1); sum=sum+xn; }returnsum*2;/**********End**********/}intmain(){doublex;printf("Inputeps:");scanf("%lf",&x);printf("\neps=%lf,PI=%lf\n",x,fun(x));return0;}题目:若形参ch中是小写字母就转换成大写字母;若是大写字母就转换成小写字母,若是数字字符就转换成阿拉伯数字,其他字符不变。最终以ASCII值形式返回主函数输出。(不采用isupper函数和isdigit函数判断)-------------------------------------------------------*/#include<stdio.h>intfun(charch){/**********Program**********/ if(ch>='a'&&ch<='z')ch=ch-32; elseif(ch>='A'&&ch<='Z')ch=ch+32; elseif(ch>='0'&&ch<='9')ch=ch-48; elsech=ch; returnch;/**********End**********/}intmain(){charch;ch=getchar();printf("%d\n",fun(ch));return0;}题目:用while循环实现输入一个五位正整数,将它倒序后返回给主函数输出。例如输入12345,输出应为54321。(不采用指针、数组和递归函数)-------------------------------------------------------*/#include<stdio.h>intfun(intn){/**********Program**********/ ints=0; while(n!=0) { s=s*10+n%10; n=n/10; }returns;/**********End**********/}intmain(){intn,r;scanf("%d",&n);r=fun(n);printf("%d\n",r);return0;}题目:害死人不偿命的(3n+1)猜想--卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……请编写函数,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?-------------------------------------------------------*/#include<stdio.h>intfun(intn){/**********Program**********/ intcount=0; while(n!=1){ if(n%2==0)n=n/2; elsen=(3*n+1)/2; count++;} returncount;/**********End**********/}intmain(){intn,count;printf("\nInputn:");scanf("%d",&n);count=fun(n);printf("count=%d\n",count);return0;}题目:编写函数fun,利用dowhile循环,用简单迭代方法求方程一个实根。cos(x)-x=0迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085。-------------------------------------------------------*/#include<math.h>#include<stdio.h>floatfun(){/**********Program**********/ doublex0,x1=0; do{ x0=x1; x1=cos(x0); }while(fabs(x0-x1)>=1e-6); returnx0;/**********End**********/}intmain(){printf("%f\n",fun());return0;}题目:将大于形参m且紧靠m的k个素数求和并返回到主函数输出。例如,若输入17,5,可以找出五个素数分别是19,23,29,31,37。和为139-------------------------------------------------------*/#include<stdio.h>intfun(intm,intk){/**********Program**********/ inti,j,n=0,sum=0; for(i=m+1;n<k;i++){ for(j=2;j<i;j++) {if(i%j==0)break;} if(j==i){sum=sum+i;n++;} }returnsum;/**********End**********/}intmain(){printf("%d\n",fun(17,5));return0;}功能:统计出若干个学生的平均成绩,最高分以及得最高分的人数。(最高分可能不止一个)例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。------------------------------------------------*/#include<stdio.h>voidwwjt();floatMax=0;/*Max为最高分变量,注意最高分不止一个*/intJ=0;/*J为最高分的人数*/floatfun(floatarray[],intn){/**********Program**********/ inti,j; floats=0.0; Max=array[0];for(i=0;i<n;i++) {s=s+array[i]; if(Max<array[i])Max=array[i];}for(j=0;j<n;j++){ if(Max==array[j])J++; }returns/n;/**********End**********/}main(){floata[10],ave;inti=0;for(i=0;i<10;i++)scanf("%f",&a[i]);ave=fun(a,10);printf("ave=%f\n",ave);printf("max=%f\n",Max);printf("Total:%d\n",J);wwjt();}voidwwjt(){FILE*IN,*OUT;floatiIN[10],iOUT;intiCOUNT;IN=fopen("in.dat","r");if(IN==NULL){printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("PleaseVerifyTheCurrentDir..itMayBeChanged");}for(iCOUNT=0;iCOUNT<10;iCOUNT++)fscanf(IN,"%f",&iIN[iCOUNT]);iOUT=fun(iIN,10);fprintf(OUT,"%f%f\n",iOUT,Max);fclose(IN);fclose(OUT);}功能:编写函数用排序法对数组中的数据进行从小到大的排序。------------------------------------------------*/#include<stdlib.h>#include<stdio.h>voidwwjt();voidsort(inta[],intn){/**********Program**********/ inti,j,t; for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;} } }/**********End**********/}main(){inta[16],i;for(i=0;i<16;i++)a[i]=rand()%100;for(i=0;i<16;i++)printf("%4d",a[i]);printf("\n-------------------\n");sort(a,16);for(i=0;i<16;i++)printf("%4d",a[i]);wwjt();}voidwwjt(){FILE*IN,*OUT;intn;inti[10];IN=fopen("in.dat","r");if(IN==NULL){printf("ReadFILEError");}OUT=fopen("out.dat","w");if(OUT==NULL){printf("WriteFILEError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}sort(i,10);for(n=0;n<10;n++)fprintf(OUT,"%d\n",i[n]);fclose(IN);fclose(OUT);}题目:请编写函数fun,给各位参赛选手打分:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。例如,若输入9.9,8.5,7.6,8.5,9.3,9.5,8.9,7.8,8.6,8.4十个得分,则输出结果为:8.687500。-------------------------------------------------------*/#include<stdio.h>doublefun(doublea[],intn){/**********Program**********/ inti; doublemax,min,s=0.0; max=a[0];min=a[0]; for(i=0;i<n;i++){ s=s+a[i]; if(max<a[i])max=a[i]; if(min>a[i])min=a[i]; } s=s-max-min; returns/(n-2);/**********End**********/}intmain(){doubleb[10],r;inti;printf("输入10个分数放入b数组中:");for(i=0;i<10;i++)scanf("%lf",&b[i]);printf("输入的10个分数是:");for(i=0;i<10;i++)printf("%4.1lf",b[i]);printf("\n");r=fun(b,10);printf("去掉最高分和最低分后得分:%lf\n",r);return0;}题目:程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。-------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>#defineN5doublefun(intw[][N]){/**********Program**********/ inti,j,k=0; doubles=0.0; for(j=0;j<N;j++){ s=s+w[0][j]+w[N-1][j];k=k+2; } for(i=1;i<N-1;i++){ s=s+w[i][0]+w[i][N-1];k=k+2; }return(s/k);/**********End**********/}main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;doubles;printf("*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",a[i][j]);}printf("\n");}s=fun(a);printf("*****THERESULT*****\n");printf("Thesumis:%lf\n",s);}题目:请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。示例结果可以见样图-------------------------------------------------------*/#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){/**********Program**********/ inti,j,min;for(j=0;j<N;j++){ min=tt[0][j]; for(i=1;i<M;i++){ if(min>tt[i][j])min=tt[i][j]; } pp[j]=min;}/**********End**********/}main(){intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};intp[N],i,j,k;printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",t[i][j]);printf("\n");}fun(t,p);printf("\nTheresultis:\n");for(k=0;k<N;k++)printf("%4d",p[k]);printf("\n");}/*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G*******删除后,字符串中的内容应当是:ABCDEFG。注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include<stdio.h>voidfun(chara[]){/**********Program**********/ inti,j=0; for(i=0;a[i];i++){ if(a[i]!='*')a[j++]=a[i];}a[j]=0;/**********End**********/}main(){chars[81];printf("Enterastring:\n");gets(s);fun(s);printf("Thestringafterdeleted:\n");puts(s);}题目:请编一个函数fun(chars[]),函数的功能是把s所指字符串中的内容逆置。例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。-------------------------------------------------------*/#include<string.h>#include<stdio.h>#defineN81voidfun(chars[]){/**********Program**********/ inti,len=strlen(s); chart; for(i=0;i<len/2;i++){ t=s[i];s[i]=s[len-i-1];s[len-i-1]=t; }/**********End**********/}main(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("\n");printf("Thestringaftermodified:");puts(a);}题目:函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:"246"。-------------------------------------------------------*/#include<stdio.h>#include<string.h>voidfun(chars[],chart[]){/**********Program**********/ inti,j=0; for(i=0;s[i]!='\0';i++){ if(i%2==0&&s[i]%2==0){t[j++]=s[i]; } t[j]='\0'; }/**********End**********/}main(){chars[100],t[100];voidNONO();printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);NONO();}voidNONO(){chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<5;i++){fscanf(rf,"%s",s);fun(s,t);fprintf(wf,"%s\n",t);}fclose(rf);fclose(wf);}题目:请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。-------------------------------------------------------*/#include<stdio.h>#defineN50#defineM11voidfun(inta[],intb[]){/**********Program**********/ inti,j; for(i=0;i<M;i++)b[i]=0; for(i=0;i<N;i++){ j=a[i]/10; if(j>=10)b[10]++; elseb[j]++; }/**********End**********/}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}main(){intage[N],i,d[M];voidNONO(intd[M]);for(i=0;i<N;i++)age[i]=(int)(115*rnd());printf("Theoriginaldata:\n");for(i=0;i<N;i++)printf((i+1)%10==0?"%4d\n":"%4d",age[i]);printf("\n\n");fun(age,d);for(i=0;i<10;i++)printf("%4d---%4d:%4d\n",i*10,i*10+9,d[i]);printf("Over100:%4d\n",d[10]);NONO(d);}voidNONO(intd[M]){FILE*wf;inti;wf=fopen("out.dat","w");for(i=0;i<10;i++)fprintf(wf,"%4d---%4d:%4d\n",i*10,i*10+9,d[i]);fprintf(wf,"Over100:%4d\n",d[10]);fclose(wf);}题目:编写函数,要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。输出格式:在一行中按下列格式输出:素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。输入样例1:100010输出样例1:997+991+983+977+971+967+953+947+941+937=9664输入样例2:126输出样例2:11+7+5+3+2=28-------------------------------------------------------*/#include<stdio.h>inta[11];intcount=0,sum=0;/*count数组中存放素数的个数,sum数组中素数求和*/voidfun(intn,intk){/**********Program**********/ inti,j; for(i=n;i>1;i--){ for(j=2;j<i;j++){ if(i%j==0)break;} if(j==i){sum=sum+i;a[count++]=i;} if(count==k)break; } for(i=0;i<count-1;i++){ printf("%d+",a[i]); } printf("%d=%d\n",a[count-1],sum);/**********End**********/}intmain(){intn,k;printf("\nInputnandk:");scanf("%d%d",&n,&k);fun(n,k);return0;}题目:请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入"asdafaaz67",则输出为"asdafaaz67"。-------------------------------------------------------*/#include<stdio.h>#include<ctype.h>voidfun(char*str){/**********Program**********/ inti,j=0; for(i=0;str[i]!=0;i++){ if(str[i]!=32)str[j++]=str[i]; } str[j]='\0';/**********End**********/}intmain(){charstr[81];printf("Inputastring:");gets(str);puts(str);fun(str);printf("***str:%s\n",str);return0;}题目:请编写函数fun,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4-------------------------------------------------------*/#include<stdio.h>#defineN80voidfun(int*w,intp,intn){/**********Program**********/ inti,j=0,b[N]; for(i=p+1;i<n;i++)b[j++]=w[i]; for(i=0;i<=p;i++)b[j++]=w[i]; for(i=0;i<n;i++)w[i]=b[i];/**********End**********/}intmain(){inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\nEnterp:");scanf("%d",&p);fun(a,p,n);printf("\nThedataaftermoving:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");return0;}题目:请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2223445666677899101010删除后,数组中的内容应该是:2345678910--------------

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论