c语言实验数组设计,C语言实验设计实验六数组

话题:C语言实验设计 实验六 数组回答:main(){ int a[10],n,i,j,_________________; /*定义,下面出现了minprintf("input n=");scanf("%d",amp;n);printf("input array a[0]a[l]… a[%d]:\n",n-1);for(i=0;iscanf("%d",______________________); /*依次存储数据a[i]printf("before sort:array\n");for(i=0;iprintf("%d",a[i]);printf("\n");for(i=0;i{ min=i;for(j=___________________;jif(a[j]ax=____________________;a[i]=a[min];____________________=ax;} /*a[min],printf("after sort:array\n");for(i=0;iprintf("%d", a[i]);printf("\n");}这份码有比较大问题,我觉得不科学我修改了下main(){ int a[10],n,i,j,min; printf("input n=");scanf("%d",amp;n);printf("input array a[0]a[l]… a[%d]:\n",n-1);for(i=0;iscanf("%d",a[i]); printf("before sort:array\n");for(i=0;iprintf("%d ",a[i]);printf("\n");for(i=0;i{ min=i;for(j=i+1;jif(a[j]{ a[i]=a[j]; a[i]=a[min]; }} printf("after sort:array\n");for(i=0;iprintf("%d ", a[i]);printf("\n");}

f389cb94062a64c06a1452cdfe58a962.png话题:试编写算法,计算i!*2^i的值并存入数组回答:可以利用递归函数来解答int age(int n);Status Series(int ARRSIZE, int a[])/* 求i!*2^i序列的值并依次存入长度为ARRSIZE的数组a; *//* 若所有值均不超过MAXINT,则返回OK,否则返回OVERFLOW */{int i;for(i=1;ilt;=ARRSIZE;i++){a[i-1]=age(i);if(a[i-1]gt;MAXINT)return OVERFLOW; }return OK;}int age(int n){ int c,k=n;if(n==1) c=2;else{ k--;c=age(n-1)*(k+1)*2;}return c;}话题:设A 是一个整数的数组,函数max(i, n)可求出A 中从i 到i + n回答:m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。  最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到out.dat中。  部分源程序存在prog1.c中。  例如:若输入17 5 则应输出:19,23,29,31,37。  请勿改动主函数main()和写函数writeDat()的内容。 int isP(int m) {  int i;  for(i=2;im;i++)  if(m % i==0)return 0;  return 1; }  void num(int m,int k,int xx[]) { int s=0;  for(m=m+1;k0;m++)  if(isP(m)) } ********************************* 题目2 已知数据IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT中。  注意:部分源程序存在prog1.c中。  程序中已定义数组:a[200],b[200],已定义变量:cnt  请勿改动数据IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() { int i,j,qw,bw,sw,gw;  for(i=0;iMAX;i++)  { qw=a[i]/1000; bw=a[i]/100%10;  sw=a[i]%100/10; gw=a[i]%10;  if(qwqw%2==0bw%2==0sw%2==0gw%2==0) b[cnt++]=a[i];  }  for(i=0;icnt-1;i++)  for(j=i+1;jcnt;j++)  if(b[i]b[j]) } *********************************★题目3 函数ReadDat( )实现从IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到OUT5.DAT中。   原始数据存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。  注意:部分源程序存放在prog1.c中。  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。  void StrOR(void) {int i,righto,j,s,k;  char tem[80];  for(i=0;imaxline;i++) for(j=strlen(xx[i])-1;j=0;j--)  { k=0; memset(tem,0,80);  if(xx[i][j]=='o')  {righto=j;  for(s=righto+1;sstrlen(xx[i]);s++)  tem[k++]=xx[i][s];  for(s=0;srighto;s++)  if(xx[i][s]!='o')  tem[k++]=xx[i][s];  strcpy(xx[i],tem);  }  else continue;  } } ★题目4 函数ReadDat()实现从IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到OUT6.DAT中。  例如:原文:You He Me  I am a student.  结果:Me He You  student a am I  原始数据存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。  部分源程序存在prog1.c中。  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 void StrOL(void) { int i,j,k,s,m,strl;  char str[80];  for(i=0;imaxline;i++)  { strl=strlen(xx[i]);  memset(str,0,80);  s=k=0;  for(j=strl-1;j=0;j--)  { if(isalpha(xx[i][j])) k++;  else { for(m=1;m=k;m++)  str[s++]=xx[i][j+m];  k=0;  }  if(!isalpha(xx[i][j]))  str[s++]=' ';  }  for(m=1;m=k;m++)  str[s++]=xx[i][j+m];  str[s]='\0';  strcpy(xx[i],str); } } ********************************** ☆题目5(整数排序题) 在in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到out.dat中。  例:处理前 6012 5099 9012 7025 8088  处理后 9012 6012 7025 8088 5099  部分源程序存在prog1.c中。  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。  void jsSort() {  int i,j,data;  for(i=0;i199;i++)  for(j=i+1;j200;j++) if(aa[i]%1000aa[j]%1000||aa[i]%1000==aa[j]%1000aa[i]aa[j])  for(i=0;i10;i++)  bb[i]=aa[i]; } ********************************* ☆题目6 正整数排序 在in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到out.dat中。 例:处理前 9012 5099 6012 7025 8088  处理后 5099 8088 7025 6012 9012  注意:部分源程序已给出。  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数

参考回答:float max(float a[], int n) { int max_index=0; for (int i=1; ilt;n; ++i) if (a[i]gt;a[max_index]) max_index = i; return a[max_index]; }

bdbd3c852aa5ed84f9b42f17097c145b.png话题:编程题:求一个二位数组中每列元素的最小值,并依次存入一维数组pp回答:如下面的程序: #includelt;stdio.hgt; int main() { // a 是一个二维数组 int a[3][4]={{1,9,10, -2}, {3,5,2, 77}, {89,4,89, 8}}, pp[4]; int i,j; int m=3, n = 4; for(i=0;ilt;n;i++) { int min = a[0][i]; for(j=1;jlt;m;j++) { if (a[j][i] lt; min) min = a[j][i]; } //少了一个逗号 pp[i] = min; } //输出每一列的最小值 for(i=0; ilt;n; i++) { printf("%d ", pp[i]); } printf("\n"); }话题:用C语言依次输入10个字符串,找出每个字符串中的最大字符,并依回答:#includestdio.h#includestring.hint main(){ char res[10],tem[100],maxc; //res[10]用来存储最终结果,maxc是每个输入的字符串中的最大值 int n=10,i,leg,j=0;//leg是每个输入的字符串的长度,j用来当做res数组的下标 while(n!=0)

参考回答:展开全部 #includestdio.h#includestring.hint main(){ char res[10],tem[100],maxc; //res[10]用来存储最终结果,maxc是每个输入的字符串中的最大值 int n=10,i,leg,j=0;//leg是每个输入的字符串的长度,j用来当做res数组的下标 while(n!=0) { gets(tem); leg=strlen(tem); maxc=tem[0]; for(i=1;ileg;i++) { if(tem[i]maxc) maxc=tem[i]; } res[j]=maxc; j++; n--; } for(i=0;i10;i++)//输出最终的数组 printf("%c ",res[i]); printf("\n"); return 0;}ps:码调试成功!

0400b51459a36ca45ba4b15321c75c5b.png话题:java从中读数据依次存入String数组,出现了些问题请指教。回答:字符串比较时要用.equals().用==比较的是引用的

参考回答: ,比较字符串相等能用==来比较吗??!! 请用equals 谢谢~!话题:C语言中,如何把一个数据均分为若干段,然后依次存入一个整型数组回答:作为字符读入每读到固定个数就写入数组:int k = 0;char str[10000];scanf("%s",str);for(int i=0;ilt;=strlen(str);i++){a[k]=str[i]-'0';if(igt;0 amp;amp; i%3==0)k++;else a[k] *=10;}

参考回答:for(int i=0; ilt;length;i++){ for(int j=0; jlt;i;j++){ if(arr[j]=arr[i]){ for(int k=i+1;klt;length;k++){ arr[k-1]=arr[k]; } length--; break; } }}

4f2271ed5885d87a5e6caea5293fc70f.png话题:如何将10个字符串依次存入一维数组中去回答:方法很多啊 ,可以截取字符串 用循环存入

参考回答:#include#includeint main(){char res[10],tem[100],maxc;//res[10]用来存储最终结果,maxc是每个输入的字符串中的最大值int n=10,i,leg,j=0;//leg是每个输入的字符串的长度,j用来当做res数组的下标while(n!=0){gets(tem);leg=strlen(tem);maxc=tem[0];for(i=1;i{if(tem[i]maxc)maxc=tem[i];}res[j]=maxc;j++;n--;}for(i=0;iprintf("%c ",res[i]);printf("\n");return 0;}话题:C语言中,如何把一个数据均分为若干段,然后依次存入一个整型数组回答:作为字符读入每读到固定个数就写入数组:int k = 0;char str[10000];scanf("%s",str);for(int i=0;ilt;=strlen(str);i++){a[k]=str[i]-'0';if(igt;0 amp;amp; i%3==0)k++;else a[k] *=10;}

参考回答:for(int i=0; ilt;length;i++){ for(int j=0; jlt;i;j++){ if(arr[j]=arr[i]){ for(int k=i+1;klt;length;k++){ arr[k-1]=arr[k]; } length--; break; } }}

4f2271ed5885d87a5e6caea5293fc70f.png话题:C语言完成其中的fun(int回答:a的长度必须要传,否则实现不了用N当长度就可以:#include lt;stdio.hgt;#include lt;conio.hgt;#define N 8void fun(int a[],int c[]){ int i, j, k=0;for(i=0; ilt;N; i++) {for(j=i-1; jgt;=0; j--) {if(a[j]==a[i]) break;}if(jlt;0) {c[k++]=a[i];}}c[k]=-1; }void main(){ int arra[N]={5,1,1,2,6,5,2,7};int arrc[N],i;fun(arra,arrc);printf("array arra is:");for(i=0;ilt;N;i++)printf("%d ",arra[i]);printf("\nresult arrc is:");for(i=0;ilt;N;i++)if(arrc[i]!=-1)printf("%d ",arrc[i]);elsebreak;printf("\n");getch();}/*C:\cnCodegt;c5234array arra is:5 1 1 2 6 5 2 7result arrc is:5 1 2 6 7*/ 的题目出得不好. 正常情况是应该传长度的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值