文档详情

C语言7-完.doc

发布:2017-01-05约1.25万字共27页下载文档
文本预览下载声明
第七章?数组 习题7.3 从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩。 #include?stdio.h #define?N?10 int?main() { int?i; int?mark[N]; int?min=0;? ?? for(i=0;iN;i++) { printf(请输入第%d个人的成绩:,i+1); scanf(%d,mark[i]); /*?保存最大元素的序号?*/ if(mark[i]mark[min])?min=i;? } ?? printf(\n序号:%d”,min+1); printf(“\n最高分:%d,mark[min]);? return?0; } 习题7.4 计算和存储0°~?90°的正弦值和0°~?45°的正切值,每隔1度计算一个值。 #include?stdio.h #include?math.h #define?PI?3.14159 int?main() { ????int?i; ????float?n_sin[90],n_tan[90]; ????for(i=0;i=90;i++) ????{ ????????n_sin[i]=sin(i*PI/180.0); ????????/*?角度制转弧度制?*/ ????????if(i=45)?n_tan[i]=tan(i*PI/180.0); ????} ????for(i=0;i=90;i++) ????{ ????????printf(“sin(%d)=%lf?“,i,n_sin[i]); ????????if(i=45) ????????printf(“tan(%d)=%lf\n”,i,n_tan[i]); ????} ????return?0; } 习题7.5 将整型数组中的所有元素镜像对调,第一个与最后一个对调,第二个与倒数第二个对调,按对调后的结果输出。 #include?stdio.h #define?N?10 int?main() { int?i,t,num[N]; for(i=0;iN;i++) { ????????printf(“请输入第%d个数:”,i+1); ????????scanf(“%d”,num[i]); ????????} ????for(i=0;iN/2;i++) ????{ ????????t=num[i]; ????????num[i]=num[N-1-i]; ????????num[N-1-i]=t; } ????for(i=0;iN;i++) ????{ ????????printf(“%d??”,num[i]); ????} ????return?0; } 习题7.6 在有序数列中插入若干个数,使数列在插入的过程中始终保持有序。 #include?stdio.h #define?N?10??//原数组中元素个数? int?num[100]={3,6,9,12,13,15,23,45,54,57}; int?main() { int?n,i,j,k; int?x,count;? ???? count=N;? ?? printf(插入n个数,n=); scanf(%d,n);? ?? for(i=0;in;i++) { printf(请输入第%d个数,i+1); scanf(%d,x); ???????? /*?数组元素的插入?*/? /*?从最后一个元素开始,往后移动?*/ for(j=0;j=count;j++) { if(xnum[j]||j==count) ????????????{ for(k=count+1;kj;k--) num[k]=num[k-1];? num[j]=x; ????????????????break;? ????????????} ???????????? ????????} ????????count++;? ????}? ???? ????for(i=0;icount;i++)?printf(%d?,num[i]); return?0; } 习题7.7 将两个按升序排列的数列,仍按照升序合并存到另一个数组中,要求每个数都一次到位,不得在新数组中重新排序。 #include?stdio.h #define?M?10 #define?N?10 int?a[M]={3,5,6,9,10,23,34,36,38,50}; int?b[N]={1,2,5,9,51,55,59,63,65,68}; int?c[M+N]; int?main() { ??????int?i=0,j=0; ????int?k=0; ????int?min;? ???? ????/*?合并?*/ ????while(iM|
显示全部
相似文档