c语言程序设计7-数组上机题分析课件_第1页
c语言程序设计7-数组上机题分析课件_第2页
c语言程序设计7-数组上机题分析课件_第3页
c语言程序设计7-数组上机题分析课件_第4页
c语言程序设计7-数组上机题分析课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计

(短号:649579)

信息学院计算机科学与技术系1上周课堂上机情况2上周课堂上机情况3上周课后练习情况5内容简介P1178寻找重复数字P1179评委打分(2)P1192约瑟夫问题(1)P1262无重复的排序P1269小B的任务Ⅶ6P1178寻找重复数字Input先输入一个整数n,表示这个测试实例的数值的个数,跟着输入这n个整数,每个整数都不大于100。Output如果存在有重复的数字则依次输出,数字之间用空格间隔,如果不存在重复的数字,则输出-1。Description输入n(n<100)个整数,不排序直接查找并输出所有重复的数字。Submits:986|Solved:302★★★★★7P1178寻找重复数字SampleInput75432124

SampleOutput42

Description输入n(n<100)个整数,不排序直接查找并输出所有重复的数字。Submits:986|Solved:302★★★★★8#defineM100intmain(){intn,a[M],i,j,count=0,b[M]={0},c=-1,d[M];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[j]==a[i]){b[j]=1;

if(b[i]==0){c+=1;d[c]=a[i];count++;break;}}if(count==0)printf("-1\n");for(c=0;c<count-1;c++)printf("%d",d[c]);printf("%d\n",d[c]);return0;}P1178寻找重复数字10程序Wrong-1754321244ij0000000104xxxxxxxx#defineM100intmain(){intn,a[M],i,j,count=0,b[M]={0},c=-1,d[M];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[j]==a[i]){b[j]=1;

if(b[i]==0){c+=1;d[c]=a[i];count++;break;}}if(count==0)printf("-1\n");for(c=0;c<count-1;c++)printf("%d",d[c]);printf("%d\n",d[c]);return0;}P1178寻找重复数字1275432124

4

程序Wrong-1ij000000111

42xxxxxxxintn,a[M],i,j,t,count=0,b[M]={0},d[M];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)

if(b[i]==0){t=0;for(j=i+1;j<n;j++) if(a[j]==a[i]){b[j]=1;

if(t==0){t++;d[count]=a[i];count++;}

}}//输出结果return0;}P1178寻找重复数字14Accept-2754321244ij000000010000000011

intmain(){inta[N],ci=0,b[N]={0},c[N],n,i,j=0,m,k=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);b[a[i]]++;}for(i=0;i<n;i++){if(b[a[i]]>1){c[ci++]=a[i];b[a[i]]=1;k=1;}}if(k==0)printf("-1\n");else{for(i=0;i<ci-1;i++)printf("%d",c[i]);printf("%d\n",c[i]);}return0;}P1178寻找重复数字15Accept-3012131010754321244intmain(){inta[N],ci=0,b[N]={0},c[N],n,i,j=0,m,k=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);b[a[i]]++;}for(i=0;i<n;i++){

if(b[a[i]]>1){c[ci++]=a[i];b[a[i]]=1;k=1;}}if(k==0)printf("-1\n");else{for(i=0;i<ci-1;i++)printf("%d",c[i]);printf("%d\n",c[i]);}return0;}P1178寻找重复数字16Accept-3From:DingKW754321244i012131010012111010P1179评委打分(2)Input输入一个整数n,表示这个测试实例的数值的个数,跟着输入这n个实数。Output输出除去最大数和最小数后,剩下的数据的平均数,结果保留2位小数。Description输入n(n<=1000)个实数存放在一维数组中,输出他们除去一个最高分和一个最低分(如果有多个只要去一个)后剩下数的平均数。Submits:1448|Solved:626★★★★★17P1179评委打分(2)SampleInput75432124

SampleOutput4.00Description输入n(n<=1000)个实数存放在一维数组中,输出他们除去一个最高分和一个最低分(如果有多个只要去一个)后剩下数的平均数。Submits:1448|Solved:626★★★★★18#include<stdio.h>voidmain(){intn,i=2;floats,j,k,a,q;scanf("%d",&n);scanf("%f%f",&j,&k);s=j+k;if(j<k){a=j;j=k;k=a;}else{j=j;k=k;}while(i<n){scanf("%f",&q);if(j<q){j=q;k=k;}if(k>q){j=j;k=q;}s=s+q;i++;}printf("%.2f\n",(s-j-k)/(n-2));}P1179评委打分(2)20Accept-2冗余!应避免!P1192约瑟夫问题(1)Input输入一个整数n。Output输出最后剩下的数。Description模拟这个游戏。有n个人围成一圈,从第一个人开始沿顺时针方向报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人?Submits:294|Solved:144★★★★★21intn,k,p,i,j,inta[10000];scanf("%d",&n);k=n;for(i=1;i<=n;i++)a[i]=1;p=1;j=0;while(k>1){if(a[p]){j++;if(j%3==0){a[p]=0;j=0;k--;}}p++;if(p==n+1)p=1;}for(i=1;i<=n;i++)if(a[i])break;printf("%d\n",i);return0;}P1192约瑟夫问题(1)23Accept-1#include<stdio.h>intmain(){inta[1000],i,j=2,z,n;scanf("%d",&n);for(i=0;i<n;i++)a[i]=i+1;while(n>1){j=j%n;for(z=j;z<n;z++)a[z]=a[z+1];j+=2;n--;}printf("%d\n",a[0]);return0;}P1192约瑟夫问题(1)24Accept-2Fr:HuangJH#include<stdio.h>constintM=3;intmain(){inti,n,s=0;scanf("%d",&n);for(i=2;i<=n;++i)s=(s+M)%i;printf("%d\n",s+1);return0;}P1192约瑟夫问题(1)26Accept-4P1262无重复的排序Input输入只有一组数据,输入数据不超过20个。所有输入都在正确的范围内。Output输出数据一个一行。Description输入一组整型数据,每个数据都大于0且小于100,输入遇0时结束。要求将输入的数排序,并去掉相同的数,将排序结果从小到大输出。Submits:607|Solved:347★★★★★27P1262无重复的排序SampleInput

16899861690SampleOutput6891689Description输入一组整型数据,每个数据都大于0且小于100,输入遇0时结束。要求将输入的数排序,并去掉相同的数,将排序结果从小到大输出。Submits:607|Solved:347★★★★★28inta[N]={0},i=0,j,k,m,minloc,temp;while(1){scanf("%d",&a[i]);if(a[i]==0)break;i++;}m=i;for(i=0;i<m;i++){minloc=i;for(j=i+1;j<m;j++){if(a[j]<a[minloc])minloc=j;}if(minloc!=i){temp=a[i];a[i]=a[minloc];a[minloc]=temp;}}for(i=0;i<m;i++){if(a[i]==a[i+1]){for(k=i;k<m;k++)a[k]=a[k+1];}

}

for(i=0;i<m&&a[i]!=0;i++)printf("%d\n",a[i]);return0;}P1262无重复的排序30Accept-2Fr:DingKWinta[100],b[100],n=0,i,j,k,t=0;while(1)

{scanf("%d",&a[n]);if(!a[n])break;n++;

}b[0]=a[0];t=1;for(i=1;i<n;i++)

{for(j=0;j<t;j++)if(a[i]<=b[j])break;if(a[i]<b[j]||j==t)

{for(k=t;k>j;k--)b[k]=b[k-1];b[k]=a[i];t++;

温馨提示

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

评论

0/150

提交评论