习题7

1、任意输入10个整数存入数组x中,并统计输出正数和负数的个数。

#include <stdio.h>

void main()

{

       int x[10];

       int a=0,b=0,i;//a计数正数,b计数负数,i循环变量。

       printf("请输入10个整数:");

       for(i=0;i<10;i++)

       {

              scanf("%d",&x[i]);

              if(x[i]>0)

                     a++;

              if(x[i]<0)

                     b++;

       }

       printf("正数有%d个\n负数有%d个\n",a,b);

}

 

 

 

 

 

2、编程实现评分统计程序,共有8个评委打分,满分10分,统计时去掉一个最高分和最低分,其余6个分数的平均分就是最后的分数,保留2位小数。

#include <stdio.h>

void main()

{

       int i;

       float max,min,x[8],s=0,aver;

       printf("请输入8个评委的分数:");

       for(i=0;i<8;i++)

              scanf("%f",&x[i]);

       s=max=min=x[0];

       for(i=1;i<8;i++)

       {

              if(x[i]>max)

                     max=x[i];

              else if(x[i]<min)

                     min=x[i];

              s=s+x[i];

       }

       aver=(s-max-min)/6;

       printf("最后得分为:%.2f\n",aver);

 

}


3、编程实现任意输入10个整数,将这10个数字升序排列输出,并且奇数在前,偶数在后。(用比较排序算法排序)

#include <stdio.h>

void main()

{

       int x[10],i,j,t;

       printf("请输入任意10个整数:");

       for(i=0;i<10;i++)

                     scanf("%d",&x[i]);

       for(i=0;i<10;i++)

       {

              for(j=i+1;j<=10;j++)

              {

                     if(x[i]>x[j])

                     {

                            t=x[i];

                            x[i]=x[j];

                            x[j]=t;

                     }

              }

              if(x[i]%2==1 || x[i]%2==-1)

                     printf("%4d",x[i]);

       }

 

       for(i=0;i<10;i++)

       {

              for(j=i+1;j<=10;j++)

              {

                     if(x[i]>x[j])

                     {

                            t=x[i];

                            x[i]=x[j];

                            x[j]=t;

                     }

              }

                     if(x[i]%2==0)

                     printf("%4d",x[i]);

       }

       printf("\n");

}

 

 

4、编程实现把下列矩阵第一行和第二行换位置存放并输出.

 

#include <stdio.h>

void main()

{

       int a[2][3]={{22,58,3},{10,9,16}};

       int i,j;

       printf("the sort:\n");

       for(i=0;i<=1;i++)

       {

              for(j=0;j<3;j++)

                     printf("%3d",a[i][j]);

              printf("\n");

       }

       printf("the new sort:\n");

       for(i=1;i>=0;i--)

       {

                     for(j=0;j<3;j++)

                            printf("%3d",a[i][j]);

                     printf("\n");    

       }

 

}


5、编程实现求任意3*3矩阵的两条对角线上的元素之和。要求先输出这个矩阵,再输出两个对角线上的元素之和。

#include <stdio.h>

void main()

{

       int x[3][3];

       int i,j,a=0,b=0;

       printf("请输入9个数组元素的值:");

       for(i=0;i<3;i++)

              {

                     for(j=0;j<3;j++)

                     scanf("%d",&x[i][j]);

              }

              printf("3*3矩形如下:\n");

       for(i=0;i<=2;i++)

              {

             

                     for(j=0;j<=2;j++)

                            printf("%5d",x[i][j]);

                     printf("\n");

                     a=a+x[i][i];

                     b=x[0][2]+x[1][1]+x[2][0];

              }

              printf("两个对角线分别为:%d和%d\n",a,b);

}

posted @ 2021-12-14 20:13  小耿想努力呀  阅读(127)  评论(0编辑  收藏  举报