1、程序调试,按照“分析结果、设置断点、使用单步执行并观察变量、分析变量结果、修改程序”五个阶段调试和改正程序;
#include <stdio.h> #define MAX_N 100 //最大总人数 void main() { int n; //总人数 int i; //循环变量 float Mark[MAX_N]; //各人成绩 float MaxMark,MinMark,AvgMark; //最高分 最低分 平均分 float sum; //分数总和 int Num90=0,Num80=0,Num70=0,Num60=0,Num0=0; //分数段 printf("请输入总人数n="); scanf_s("%d",&n); for(i = 0; i < n; i++) { printf("Mark[%d]=", i); scanf_s("%f", &Mark[i]); } sum=MaxMark=MinMark=0; for(i = 0; i < n; i++) { sum = sum + Mark[i]; if(Mark[i] > MaxMark) MaxMark = Mark[i]; if(Mark[i] < MinMark) MinMark = Mark[i]; if(Mark[i] >= 90) Num90++; else if(Mark[i]>=80) Num80++; else if(Mark[i] >= 70) Num70++; else if(Mark[i] >= 60) Num60++; else Num0++; } AvgMark = sum / n; printf("最高分为%f ", MaxMark); //输出 printf("最低分为%f ", MinMark); printf("平均分为%f ", AvgMark); printf("90-100的人数为%d ", Num90); printf("80-89的人数为%d ", Num80); printf("70-79的人数为%d ", Num70); printf("60-69的人数为%d ", Num60); printf("60分以下人数为%d ", Num0); }
出现的问题:1.最大值,最小值,以及总和没有赋初值
2.设置的分数为浮点型,输出的时候格式为%d,整型
编写程序,输出一张九九乘法口诀表。要求必须将乘积放入一个二维数组中,再输出该数组
#include <stdio.h> int main(void) { int i,j; //定义整型变量i,j int a[10][10]; //定义数组,其中由于从a[0]开始,所以a[10]实际不存在 for(i=1;i<=9;i++) for(j=1;j<=i;j++) a[i][j]=i*j; //两数相乘 for(i=1;i<=9;i++){ for(j=1;j<=i;j++){ printf("%d*%d=%d ",i,j,a[i][j]); //输出结果 } printf(" "); } return 0; }
第一次代码及运算结果为:
#include <stdio.h> int main(void) { int i,j; //定义整型变量i,j int a[10][10]; //定义数组,其中由于从a[0]开始,所以a[10]实际不存在 for(i=1;i<=9;i++) for(j=1;j<=9;j++) a[i][j]=i*j; //两数相乘 for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ printf("%d*%d=%d ",i,j,a[i][j]); //输出结果 } printf(" "); } return 0; }