第十次做業

1、實驗內容      編程

 1.有5名學生,每名學生有語文、數學和外語3門課的考試成績。編程統計各學生的總分和平均分以及全部學生各科的平均分。要求成績在程序中初始化,結果以表格的形式輸出。     函數

# include<stdio.h>
# define N 6
# define M 6
void readscore(int score[M][N]);
void aveforstud(int score[M][N],double ave[]);
void aveforcourse(int score[M][N],double ave[]);
void sum(int score[M][N],int isum[]);
int main()
{
    int i,j,score[M][N],isum[M]={0};
    double ave[M-1]={0};
    readscore(score);//輸入成績
    sum(score,isum); //輸出每位學生的總分
    aveforstud(score,ave);//輸出每一個學生的平均值
    printf("  語文  數學  英語  總分  平均分\n");
    for(i=0;i<M-1;i++)
     {
        printf("%d",i+1);
        for(j=0;j<N-3;j++)
        {
        printf("%4d",score[i][j]);
        }
        printf("\t\t%d\n",isum[i]);
        printf("\t\t\t\t%lf\n",ave[i]);
        printf("\n");
    }
  aveforcourse(score,ave);//輸出每科的平均值
  printf("平均值");
  for(i=1;i<N-2;i++)
  {
    printf("%.2lf",ave[i]);
  }
  return 0;
}
void readscore(int score[M][N])//輸入函數
{
  int i,j;
  printf("輸入五位學生的成績:\n");
  for(i=0;i<M-1;i++)
  {
      printf("輸入第%d個學生的成績:\n",i+1);
      for(j=0;j<N-3;j++)
      {
         scanf("%d",&score[i][j]);
      }
  }
}
void sum(int score[M][N],int isum[])//每位學生的總分的函數
{
  int i,j,sum;
  for(i=0;i<M-1;i++)
  {
    sum=0;
    for(j=0;j<N-3;j++)
    {
      sum+=score[i][j];
    }
    isum[i]=sum;
  }
}
void aveforstud(int score[M][N],double ave[])//每位學生的平均分的函數
{
  int i,j,sum;
  for(i=0;i<M-1;i++)
  {
    sum=0;
    for(j=0;j<N-3;j++)
    {
      sum+=score[i][j];
    }
    ave[i]=(double)sum/3.0;
  }
}
void aveforcourse(int score[M][N],double ave[])//每科的平均分的函數
{
 int i,j,sum;
 for(j=0;j<N-3;j++)
 {
   sum=0;
   for(i=0;i<M-1;i++)
    {
    sum+=score[i][j];
    }
 } 
 ave[i]=(double)sum/5.0;
}

 

                      

 2.求任意方陣每行、每列、兩對角線上元素之和。spa

# include <stdio.h>
# define N 100
# define M 100
int main()
{
    int i,j,m,sum[M][N],sum1,sum2,sum3,sum4;
    printf("請輸入行列數m\n");
    scanf("%d",&m);
    for(i=0;i<m;i++)
    {
       printf("請輸入第%d行的數字:\n",i+1);
       for(j=0;j<m;j++)
       {
           scanf("%d",&sum[i][j]);
       }
    }
    for(i=0;i<m;i++)
    {
      sum1=0;
      for(j=0;j<m;j++)
      {
        sum1+=sum[i][j]; 
      }
      printf("第%d行的和爲:%d\n",i+1,sum1);
    }
    for(j=0;j<m;j++)
    {
      sum2=0;
      for(i=0;i<m;i++)
      {
        sum2+=sum[i][j]; 
      }
      printf("第%d列的和爲:%d\n",j+1,sum2);
    }
    sum3=0;
    sum4=0;
    for(i=0;i<m;i++)
    {
       sum3+=sum[i][i];
       sum4+=sum[i][m-1-i];
    }
    printf("對角線之和爲%d %d\n",sum3,sum4);
    return 0;
}

二.實驗總結:code

1.記住加‘&’blog

2.注意賦初值數學

3.在第一題主函數要將所需輸出的值嵌套在for循環中io

4.注意變量名和地址名不能相同for循環

5..表格的輸出使用\t,表示水平製表位。class

相關文章
相關標籤/搜索