⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch3-3.c

📁 单片机接口技术(C51版)例程源代码
💻 C
字号:
#define NUM_std  5		/*定义符号常量人数为5*/
#define NUM_course  4		/*定义符号常量课程为4*/


#include <stdio.h>
#include <reg51.h>
void main(void)
{ int i,j;
   static xdata float score[NUM_std+1][NUM_course+1]={{78,85,83,65},
     				 {88,91,89,93}, {72,65,54,75},
				{86,88,75,60}, {69,60,50,72}}; 
				
    #ifndef MONITOR51               /* 需要从串口1输出时请作如下设置*/
    SCON  = 0x50;		        /* 方式 1, 允许接收  */
    TMOD |= 0x20;               /* TMOD:定时器1方式2 */
    TH1   = 221;                /* 1200bps @ 16MHz   */
    TR1   = 1;                  /* 启动定时器1   */
    TI    = 1;                  /*Keil C自带的puchar()函数需要设置TI=1*/
    #endif
    for(i=0;i<NUM_std;i++)
        {for(j=0;j<NUM_course;j++)
	        { score[i][NUM_course] += score[i][j];/*求第i个人的总成绩*/
	          score[NUM_std][j] += score[i][j];	/*求第j门课的总成绩*/
	        }
          score[i][NUM_course] /= NUM_course;/*求第i个人的平均成绩*/
        }
     for(j=0;j<NUM_course;j++)
     score[NUM_std][j] /= NUM_std;	 /*求第j门课的平均成绩*/
     /*输出表头*/
     printf("学生编号  课程1   课程2   课程3   课程4   个人平均\n");
     /*输出每个学生的各科成绩和平均成绩*/
    for(i=0;i<NUM_std;i++)
        { printf("学生%d\t",i+1);
           for(j=0;j<NUM_course+1;j++)
                 printf("%6.1f\t",score[i][j]);
           printf("\n");
        }
    /*输出1条短划线*/
    for(j=0;j<8*(NUM_course+2);j++)
         printf("-");
    printf("\n课程平均");
    /*输出每门课程的平均成绩*/
    for(j=0;j<NUM_course;j++)
       printf("%6.1f\t",score[NUM_std][j]);
    printf("\n");
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -