已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组应用程序设计1、从键盘输入11个数存入一维数组中,先输出下标为奇数的元素,再输出下标为偶数的元素。main()float a11;int i;for(i=0;i=10;i+) scanf(%f,&ai);for(i=1;i=9;i+=2)printf(%f,ai);for(i=0;i=10;i+=2)printf(%f,ai);printf(n);2、从键盘输入11个数存入一维数组中,将下标为奇数的元素值取倒数后重新存入该数组中,并输出所有元素。main()float a11;int i;for(i=0;i=10;i+)scanf(%f,&ai);for(i=1;i=9;i+=2)ai=1/ai; /*因ai为float型,故不必写作1.0/ai*/for(i=0;i=10;i+)printf(%f,ai);printf(n);3、从键盘输入11个数存入一维数组中,将左半部分的元素值取倒数后重新存入该数组中,并输出所有元素。解法1:main()float a11;int i;for(i=0;i11;i+)scanf(%f,&ai);for(i=0;i5;i+) /*左半部分下标为0到4*/ai=1/ai; for(i=0;i11;i+)printf(%f,ai);printf(n);解法2:#define N 11main()float aN;int i;for(i=0;iN;i+) scanf(%f,&ai);for(i=0;iN/2;i+) /*左半部分下标为0到N/2-1*/ai=1/ai; for(i=0;iN;i+)printf(%f,ai);printf(n);4、从键盘输入11个数存入一维数组中,将右半部分的元素值取相反数后重新存入该数组中,并输出所有元素。解法1:main()float a11;int i;for(i=0;i11;i+) scanf(%f,&ai);for(i=6;i11;i+) /*右半部分下标为6到10*/ai=-ai; for(i=0;i11;i+)printf(%f,ai);printf(n);解法2:#define N 11main()float aN;int i;for(i=0;iN;i+) scanf(%f,&ai);for(i=(N+1)/2;i=N-1;i+) /*右半部分下标为(N+1)/2到N-1*/ai=-ai; for(i=0;iN;i+)printf(%f,ai);printf(n);5、求出斐波那契数列的前20项并输出。main()long f20=1,1;int i;for(i=2;i=19;i+)fi=fi-2+fi-1;for(i=0;i=19;i+) printf(%12ld,fi);6、从键盘输入10个数,求出其中的最大数并输出。main()int a10,max,i;for(i=0;i=9;i+) scanf(%d,&ai);max=a0;for(i=1;imax) max=ai; printf(max=%dn,max);7、从键盘输入10个数,求出其中的最大数和最小数并输出。解法1:main()int a10,max,min,i; for(i=0;i=9;i+) scanf(%d,&ai); max=a0; for(i=1;imax) max=ai; min=a0; for(i=1;i=9;i+)if(aimin) min=ai; printf(max=%dn,max);printf(min=%dn,min);解法2:main()int a10,max,min,i; for(i=0;i=9;i+) scanf(%d,&ai); max=min=a0; for(i=1;imax) max=ai; if(aimin) /*或else if(aimin)*/ min=ai; printf(max=%d,min=%dn,max,min);8、从键盘输入11个数存入一维数组a中,再将其中的值按相反的顺序存入数组b中并输出。解法1:main()int a11,b11,i;for(i=0;i11;i+)scanf(%d,&ai);for(i=0;i11; i+)bi=a10-i;printf(%d,bi);printf(n);解法2:#define N 11main()int aN,bN,i;for(i=0;iN;i+)scanf(%d,&ai);for(i=0;iN;i+)bi=aN-1-i;printf(%d,bi);printf(n);8A、从键盘输入11个数存入一维数组中,将其中的值前后倒置后重新存入该数组中并输出。解法1:main()int a11,i,j,t;for(i=0;i=10;i+) /*用循环输入11个元素*/scanf(%d,&ai);i=0;j=10;while(ij)t=ai;ai=aj;aj=t; /*交换对应元素的值*/i+;j-;for(i=0;i=10;i+) /*用循环输出11个元素*/printf(%d,ai);printf(n);解法2:main() int a11,i,j,t;for(i=0;i=10;i+) /*用循环输入11个元素*/scanf(%d,&ai);for(i=0,j=10; ij; i+,j-)t=ai;ai=aj;aj=t; /*交换对应元素的值*/for(i=0;i=10;i+) /*用循环输出11个元素*/printf(%d,ai);printf(n);解法3:#define N 11main()int aN,i,t;for(i=0;iN;i+) /*用循环输入11个元素*/scanf(%d,&ai);for(i=0;iN/2; i+) /*N为奇数偶数均可*/t=ai;ai=aN-1-i;aN-1-i=t; /*交换对应元素的值*/for(i=0;iN;i+) /*用循环输出11个元素*/printf(%d,ai);printf(n);9、从键盘输入11个数存入一维数组中,将该数组中左半部分与右半部分的值平移交换后重新存入该数组中并输出。解法1:main()int a11,i,t;for(i=0;i11;i+) /*用循环输入11个元素*/scanf(%d,&ai);for(i=0;i=4; i+)t=ai;ai=ai+6;ai+6=t; /*交换对应元素的值*/for(i=0;i11;i+) /*用循环输出11个元素*/ printf(%d,ai);printf(n);解法2:#define N 11main()int aN,i,t;for(i=0;iN;i+) /*用循环输入11个元素*/scanf(%d,&ai);for(i=0;i=N/2-1; i+) /*N为奇数偶数均可*/t=ai;ai=ai+(N+1)/2;ai+(N+1)/2=t; /*交换对应元素的值*/for(i=0;iN;i+) /*用循环输出11个元素*/printf(%d,ai);printf(n);10、从键盘输入100个数存入一维数组中,求其和与平均值并输出。#define N 100main()float aN,s,p;int i;s=0;for(i=0;iN;i+)scanf(%f,&ai);s=s+ai;p=s/N;printf(s=%f,p=%fn,s,p);11、从键盘输入一批正数存入一维数组中(以-1为结束标记),求其和与平均值并输出。解法1:#define N 200main()float aN,s,p;int n=0;s=0;while(1)scanf(%f,&an); if(an=-1) break; s=s+an;n+;p=s/n;printf(s=%f,p=%fn,s,p);解法2:#define N 200main()float aN,s,p;int n=0;s=0;scanf(%f,&an);while(an!=-1)s=s+an;n+;scanf(%f,&an);p=s/n;printf(s=%f,p=%fn,s,p);12、从键盘输入10个数,用选择法按降序排序并输出。解法1:main()int a10,i,j,t;for(i=0;i=9;i+) scanf(%d,&ai);for(i=0;i=8;i+)for(j=i+1;j=9;j+) if(aiaj) t=ai;ai=aj;aj=t; for(i=0;i=9;i+) printf(%d,ai);printf(n);解法2:main()int a10,t,i,j,max,k;for(i=0;i=9;i+) scanf(%d,&ai);for(i=0;i=8;i+)max=ai;k=i; /*max保存本轮最大数,k保存其下标*/for(j=i+1;jmax) max=aj;k=j; t=ai;ai=ak;ak=t; /*将本轮最大数与ai互换*/for(i=0;i=9;i+) printf(%d,ai);printf(n);解法3:改进的选择法main()int a10,t,i,j,max;for(i=0;i=9;i+) scanf(%d,&ai);for(i=0;i=8;i+)max=i; /*max保存本轮最大数的下标*/for(j=i+1;jamax) max=j; t=ai;ai=amax;amax=t; /*将本轮最大数与ai互换*/for(i=0;i=9;i+) printf(%d,ai);printf(n);解法4:改进的选择法main()int a10,t,i,j,max;for(i=0;i=9;i+) scanf(%d,&ai);for(i=0;i=8;i+)max=i; /*max保存本轮最大数的下标*/for(j=i+1;jamax) max=j; if(max!=i) /*若本轮最大数不是ai*/ t=ai;ai=amax;amax=t; /*将本轮最大数与ai互换*/for(i=0;i=9;i+) printf(%d,ai);printf(n);12A、从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。main()int p10,i,j,t;char a1030,m30;for(i=0;i=9;i+) gets(ai); /*输入姓名存入数组a的第i行*/for(i=0;i=9;i+)scanf(%d,&pi); /*输入成绩*/for(i=0;i=8;i+)for(j=i+1;j=9;j+) if(pipj) t=pi;pi=pj;pj=t; /*交换成绩*/ strcpy(m,ai);strcpy(ai,aj);strcpy(aj,m); /*交换姓名*/ for(i=0;i=9;i+) printf(%s,ai); /*输出姓名*/ printf(%dn,pi); /*输出成绩*/13、从键盘输入一组数据按行优先次序存入数组a34中,再按列优先次序输出。main()int a34,i,j;for(i=0;i=2;i+) /*行优先次序,外循环控制行号*/ for(j=0;j=3;j+) /*内循环控制列号*/scanf(%d,&aij);for(j=0;j=3;j+) /*列优先次序,外循环控制列号*/ for(i=0;i=2;i+) /*内循环控制行号*/printf(%6d,aij); printf(n); 14、从键盘输入一组数据按行优先次序存入数组a34中,再按相反的次序输出。main()int a34,i,j;for(i=0;i=2;i+) /*外循环控制行号*/ for(j=0;j=0;i-) for(j=3;j=0;j-)printf(%6d,aij); printf(n); 15、从键盘输入一组数据存入数组a33中,再将主对角线及其下方元素值取倒数后重新存入该数组中,并输出所有元素。main()float a33;int i,j; for(i=0;i=2;i+) /*外循环控制行号*/ for(j=0;j=2;j+) /*内循环控制列号*/scanf(%f,&aij);for(i=0;i=2;i+)for(j=0;j=i;j+)aij=1/aij;/*因aij为float型,故不必写作1.0/aij*/ for(i=0;i=2;i+)for(j=0;j=2;j+)printf(%f,aij); printf(n); 15A、已知一个二维数组a23=1,2,3,4,5,6,将其转置后存入另一个二维数组b32中。main()int a23=1,2,3,4,5,6,b32,i,j;for(i=0;i3;i+) /*按行给数组b的元素赋值*/for(j=0;j2;j+) /*并分行显示数组b内容*/ bij=aji; printf(%6d,bij); printf(n); /*注意该语句的位置*/16A、已知一个34的矩阵a34=1,2,3,4,9,8,7,6,-9,10,-5,2,找出其中最大的元素值并输出。main()int i,j,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;for(i=0;i=2;i+) for(j=0;jmax) max=aij;printf(max=%dn,max);16B、已知一个34的矩阵a34=1,2,3,4,9,8,7,6,-9,10,-5,2,找出其中最大的元素值及其行列号并输出。main()int i,j,max,row,colum;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;row=0;colum=0;for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum);16、从键盘输入一组数据存入数组a33中,求其主对角线元素之和。main()float a33,s=0;int i,j; for(i=0;i=2;i+) /*外循环控制行号*/ for(j=0;j=2;j+) /*内循环控制列号*/scanf(%f,&aij); for(i=0;i=2;i+) s=s+aii; /*主对角线元素行列号相同*/printf(s=%fn,s);17、从键盘输入一组数据存入数组a33中,求其主对角线下方元素之和。main()float a33,s=0;int i,j; for(i=0;i=2;i+) /*外循环控制行号*/ for(j=0;j=2;j+) /*内循环控制列号*/ scanf(%f,&aij);for(i=0;i=2;i+)for(j=0;ji;j+)s=s+aij;printf(s=%fn,s);18、从键盘输入一组数据存入数组a44中,求其四周元素之和。main()float a44,s=0;int i,j; for(i=0;i=3;i+) /*外循环控制行号*/ for(j=0;j=3;j+) /*内循环控制列号*/ scanf(%f,&aij); for(i=0;i=3;i+)for(j=0;j=3;j+)if(i=0|i=3|j=0|j=3)/*行列号等于0或者等于3*/ s=s+aij; printf(s=%fn,s); 19、已知两个矩阵a32=1,3,5,2,4,6,b32=9,8,7,3,2,1,求其和矩阵c32并输出。main()int a32=1,3,5,2,4,6,b32=9,8,7,3,2,1,c32;int i,j; for(i=0;i3;i+) for(j=0;j2;j+) cij=aij+bij; printf(%6d,cij); printf(n);20、已知两个矩阵a32=1,3,5,2,4,6,b24=9,8,7,3,2,1,5,6,求其积矩阵c34并输出。main()int a32=1,3,5,2,4,6,b24=9,8,7,3,2,1,5,6,c32;int i,j,k; for(i=0;i3;i+)for(j=0;j4;j+) cij=0; for(k=0;k2;k+) cij=cij+aik*bkj; printf(%6d,cij); printf(n);21、从键盘输入6个学生5门课程的成绩,求每个人的总分与平均分。main()float g65,s6,a6;int i,j; for(i=0;i6;i+)si=0; /*si是第i个人的总分*/ for(j=0;j5;j+)scanf(%f,&gij); /*gij是第i个人第j门课的成绩*/ si=si+gij; ai=si/5; /*ai是第i个人的平均分*/ printf(%f,%fn,si,ai);22、从键盘输入6个学生5门课程的成绩,求每门课程的平均分。main()float g65,s6,a6;int i,j; for(i=0;i6;i+) for(j=0;j5;j+) scanf(%f,&gij); /*gij是第i个人第j门课的成绩*/ for(j=0;j5;j+) /*列优先次序,外循环控制列号,内循环控制行号*/sj=0; /*sj是第j门课的总分*/ for(i=0;i6;i+)sj=sj+gij; aj=sj/6; /*aj是第j门课的平均分*/ printf(%fn,aj);23、从键盘输入一个字符串存入数组a中,再将数组a的内容前后倒置后存入数组b中并输出。#include main()char a80,b80;int n,i;gets(a);n=strlen(a);for(i=0;i=n-1;i+) bi=an-1-i;bn=0; /*或bi=0;*/puts(b);24、从键盘输入一个字符串存入数组a中,再将a的内容前后倒置后重新存入数组a中并输出。解法1:#include main()char a80,t;int n,i,j;gets(a);n=strlen(a);i=0;j=n-1;while(ij)t=ai;ai=aj;aj=t; /*交换对应元素的值*/ i+;j-;puts(a);解法2:#include main()char a80,t;int n,i;gets(a);n=strlen(a);for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t; /*交换对应元素*/puts(a);25、从键盘输入10个字符串存入二维字符数组中,求出其中最大者并输出。#include main()char a1080,max80;int i;for(i=0;i10;i+) gets(ai); /*ai代表a的第i行*/strcpy(max,a0);for(i=1;i0) strcpy(max,ai);puts(max);26、从键盘输入一个字符串存入字符数组中,求出该字符串的长度并输出(不能调用strlen函数)。#include main()char a80;int n;gets(a);n=0;while(ai!=0) n+;printf(n=%dn,n);27、从键盘输入一个字符串存入数组a中,再将数组a的内容复制到数组b中并输出(不能调用strcpy函数)。解法1:#include main()char a80,b80;int i,n;gets(a);n=strlen(a);for(i=0;i=n;i+) /*包括0在内*/ bi=ai;puts(b);解法2:#include main()char a80,b80;int i,n;gets(a);for(i=0;ai!=0;i+) bi=ai; /*未复制0*/ai=0;puts(b);28、从键盘输入两个字符串分别存入字符数组a和b中,再将b中的字符串连接到a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全课件插图素材
- 小班学生安全教育课件
- 2025年招聘妇产科医护人员考试题库及答案1
- 2025年护师类之护师(初级)题库与答案
- 2025黑龙江省安全员B证考试题库附答案
- 咨询工程师继续教育节能试卷及答案
- 《煤矿地质工作规定》复习题版
- 专四08年完型与阅读部分真题及答案
- 党的基本理论知识试题含答案
- 建筑工地的安全培训课件
- 2025年安全员B证考试试题(必刷)附答案详解
- 广东省广州市广雅中学2025-2026学年高一上学期期中考试化学试卷(无答案)
- 2026中国金融电子化集团有限公司下属子公司招聘考试笔试参考题库附答案解析
- 2025年全国专利代理人考试《专利法》试题及答案
- 四季里的汗水与智慧课件
- 2025年青少年航天知识竞赛真题卷及答案
- 2025年大学《传播学-传播研究方法》考试备考题库及答案解析
- 2025年压疮护理指南
- 按摩行业服务礼仪培训
- 预应力管桩施工培训
- DB62T 3130-2017 公路沥青路面碎石封层设计与施工技术规范
评论
0/150
提交评论