编写程序,从键盘上输入N个学生的考试成绩存入一维数组中,求该数组中成绩的最高分、最低分及平均分并输出到屏幕。
(1)定义常量N值; (2)建立用于存放数据的一维数组; (3)接收用户输入; (4)查询 / 计算特定值; (5)输出结果;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int N = 10;
float[] array = new float[N];
float Max, Min, Average = 0;
System.out.println("please enter the " + N + " students test results in order:");
for (int i = 0; i < N; i++) {
array[i] = input.nextFloat();
}
Max = Min = array[0];
for (int i = 0; i < N; i++) {
if (array[i] > Max)
Max = array[i];
if (array[i] < Min)
Min = array[i];
Average += array[i];
}
Average /= N;
System.out.format("highest score:%.1f,lowest score:%.1f,the average score:%.2f",Max,Min,Average);
}
}
注意Java中接收用户输入的方法,同时考虑对一维数组“动态赋值”的操作。
#include <stdio.h>
#define N 10
int main()
{
float array[N], Max,Min,Average;
printf("please enter the N students test results in order:");
for (int i = 0; i < N; i++)
{
scanf("%f", &array[i]);
}
Max =Min=array[0];
for (int i = 0; i < N; i++)
{
if (array[i] > Max)
Max = array[i];
else if (array[i] < Min)
Min = array[i];
Average += array[i];
}
Average /= N;
printf("highest score:%.1f,lowest score:%.1f,the average score:%.3f", Max, Min, Average);
return 0;
}
scanf()
中别丢弃&
取地址符 (异常:输入数据后无输出)。求平均值无需增加变量Sum
,可将变量Average
放入循环体内求总和,在循环体外进行平均值求算。