当前位置:   article > 正文

头歌答案 14题(第五章数组作业1)_头歌c语言程序设计答案

头歌c语言程序设计答案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

 

第一关:求正数的个数及正数的平均值

  1. #include <stdio.h>
  2. void main(){
  3. int i,a[10],t=0;double sum=0;//t用来计数
  4. for(i=0;i<10;i++){
  5. scanf("%d",&a[i]);
  6. if(a[i]>0){
  7. t++;sum+=a[i];}//输出一个加一个
  8. }
  9. printf("正数的个数为%d、平均值为%.2lf",t,sum/t);
  10. }

第二关:求平均成绩和低于平均分的学生成绩

  1. #include <stdio.h>
  2. void main(){
  3. int a[10],i,t=0;double sum=0;
  4. for(i=0;i<6;i++){
  5. scanf("%d",&a[i]);
  6. if(a[i]<0)break;//遇到负数就退出循环,停止输出。
  7. sum+=a[i];t++; }
  8. printf("平均分为%.2lf\n",sum/t);
  9. printf("低于平均分的分数为\n");
  10. for(i=0;i<=t;i++){
  11. if(a[i]<(sum/t)&&a[i]>=0){ printf("%d\n",a[i]); }
  12. }
  13. }

第3关:求方差

  1. #include <stdio.h>
  2. #include <math.h>
  3. void main(){
  4. float a[10],ave=0,sum=0;
  5. for(int i=0;i<10;i++){ scanf("%f",&a[i]);ave+=a[i]*0.1; }
  6. for(int j=0;j<10;j++){ sum+=pow(a[j]-ave,2); }
  7. printf("方差为%.2f",sqrt(0.1*sum));
  8. }

第4关:求数组各行的平均值

  1. #include <stdio.h>
  2. #define M 3
  3. #define N 4
  4. void main(){
  5. float a[M][N]; int i,j;
  6. for(i=0;i<M;i++){
  7. float ave=0;
  8. for(j=0;j<N;j++){ scanf("%f",&a[i][j]);ave+=a[i][j]/4.0; }
  9. printf("%.2f ",ave);
  10. }
  11. }

第5关:求矩阵

  1. #include <stdio.h>
  2. #define N 3
  3. void main(){
  4. int i,j,a[N][N];
  5. for(i=0;i<N;i++)
  6. for(j=0;j<N;j++) { scanf("%d",&a[i][j]); }
  7. for(i=0;i<N;i++){
  8. for(j=0;j<N;j++){ printf("%7d",a[i][j]+a[j][i]); }
  9. printf("\n");
  10. }
  11. }

第6关:求方阵“右上三角”的元素之和

  1. #include <stdio.h>
  2. #define N 3//取巧了
  3. void main(){
  4. int n,a[N][N],i,j,sum=0;
  5. scanf("%d",&n);
  6. for(i=0;i<n;i++){
  7. for(j=0;j<N;j++){ scanf("%d",&a[i][j]); }
  8. printf("\n");
  9. }
  10. for(i=N-3;i<N;i++){
  11. for(j=i;j<N;j++){ sum+=a[i][j]; }
  12. }printf("%d",sum);
  13. }

第7关:逆序输出

  1. #include<stdio.h>
  2. int main(){
  3. char ch[1000]; int j= 0;
  4. scanf("%s",ch);
  5. for(int i=0;;i++){
  6. if(ch[i]!='\0') j++;//记录字符串长度
  7. else break;
  8. }
  9. for(int i=j-1;i>=0;i--){ printf("%c",ch[i]); }
  10. }

第8关:字符串连接

  1. #include <stdio.h>
  2. void main(){
  3. char a[100],b[100];int i,j=0,k=0;
  4. scanf("%s\n%s",a,b);
  5. for(i=0;;i++){
  6. if(a[i]!='\0')j++;
  7. else break; }//求字符串A的长度
  8. for(i=0;;i++){
  9. if(b[i]!='\0')k++;
  10. else break; }//求字符串B的长度
  11. printf("连接后的字符串为");
  12. for(i=0;i<k+j;i++){
  13. if(i<k)printf("%c",a[i]);
  14. else printf("%c",b[i-k]); }
  15. }

第9关:求数组中最外圈元素的平均值

  1. #include <stdio.h>
  2. #define M 3
  3. #define N 4
  4. void main(){
  5. int i,j,sum=0,a[M][N]; float t=0,ave;
  6. for(i=0;i<M;i++){
  7. for(j=0;j<N;j++){
  8. scanf("%d",&a[i][j]);
  9. if(i==0||i==M-1||j==0||j==N-1){ sum+=a[i][j];t++; }//t计数。
  10. }printf("\n");
  11. }
  12. printf("外围元素的平均值为%.2f",sum/t);
  13. }

第10关:冒泡法排序问题

  1. #include <stdio.h>
  2. void main(){
  3. char a[100]; int i,j,n=0,temp;
  4. scanf("%s",a);
  5. for(i=0;;i++){
  6. if(a[i]!='\0')n++;
  7. else break; }//计算字符个数
  8. for(i=0;i<n-1;i++){
  9. for(j=0;j<n-i;j++){
  10. if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp; }
  11. }
  12. }
  13. for(i=0;i<n;i++){ printf("%c",a[i]); }
  14. }

第11关:求方阵

  1. #include <stdio.h>
  2. int main(){
  3. int n,i,j;
  4. scanf("%d",&n);
  5. int a[n][n];
  6. for(i=0;i<n;i++){
  7. for(j=0;j<n;j++){
  8. if(i+j==n-1) a[i][j]=2;
  9. else a[i][j]=0;
  10. printf("%d ",a[i][j]);
  11. }printf("\n");
  12. }
  13. }

第12关:移字符串

  1. #include <stdio.h>
  2. void main(){
  3. char a[100]; int n,i,j,t=0;
  4. scanf("%s\n%d",a,&n);
  5. for(i=0;;i++){
  6. if(a[i]!='\0')t++;
  7. else break; }//计算长度
  8. printf("移动后的结果为");
  9. for(j=0;j<t;j++){
  10. if(j<=4) printf("%c",a[t+j-n-1]);
  11. else printf("%c",a[j-n-1]);
  12. }
  13. }

第13关:计算平均成绩

  1. #include <stdio.h>
  2. void main(){
  3. int n,i,j;
  4. scanf("%d",&n);
  5. float a[n][3];
  6. for(i=0;i<n;i++){float sum=0;
  7. for(j=0;j<3;j++){ scanf("%f",&a[i][j]); sum+=a[i][j]; }
  8. printf("%d %.1f %.1f %.1f %.1f\n",i+1,a[i][0],a[i][1],a[i][2],sum/3.0);
  9. }
  10. }

第14关:删除字符串中的前导空格

  1. #include<stdio.h>
  2. #include<string.h>
  3. main(){
  4. char a[100],b[100]; int i=0,j=0;
  5. gets(a);
  6. strcpy(b,a);//把字符串a复制到字符串b中
  7. while(b[i]==' '){ i++; }//类似指针右移
  8. while(b[i]!='\0'){ a[j++]=b[i++]; }
  9. a[j]='\0';
  10. puts(a);
  11. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/567408
推荐阅读
  

闽ICP备14008679号