C语言7-完.doc
文本预览下载声明
第七章?数组习题7.3从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩。
#include?stdio.h#define?N?10int?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.14159int?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?10int?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?10int?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|
显示全部