Шрифт:
/* ввод счета*/
main
{
int i, score[10];
for (i = 0; i <= 9; i++)
scanf(" %d", &a[i]); /* ввод десяти результатов*/
printf("Введены следующие результаты :\n" );
for (i = 0; i <= 9; i++)
printf(" %5d", a[i]); /* проверка правильности ввода*/
printf("\n");
}
В понятие хорошего стиля программирования входит эхо-печать только что введенных величин. Она даст уверенность, что в программе будут обрабатываться те данные, для которых она предназначена.
Применяемый здесь способ гораздо более удобен, чем использование 10 различных операторов scanf и 10 отдельных операторов printf для ввода и проверки десяти результатов, определяющих число набранных очков. Цикл for обеспечивает очень простои и удобный способ использования индексов массивов.
Какого типа операции могли бы мы выполнить над этими данными? Мы могли бы найти их среднее, величину стандартного отклонения (мы знаем даже, как это сделать) и максимальное значение счета, а также произвести их сортировку в некотором порядке. Займемся двумя простейшими задачами: нахождением среднего и максимального результатов.
Чтобы вычислить среднее, мы можем добавить к нашей программе приведенный ниже фрагмент:
int sum, average;
for(i = 0, sum = 0; i <= 9; i++) /* две инициализации*/
sum + = a[i]; /* суммирование элементов массива */
average = sum/10; /*классический метод усреднения */
printf(" Средний результат равен %d.\n", average);
Для нахождения максимального результата к программе можно добавить следующий фрагмент:
int highest;
for(highest = а[0], i = 1; i <= 9; i++)
if(a[i] > highest) highest = a[i];
printf ("Максимальный результат равен %d.\n", highest);
Здесь мы начинаем с того, что полагаем переменную highest равной величине а[0]. Затем производится сравнение значения highest с каждым элементом массива. Когда обнаруживается, что некоторая величина больше текущего значения переменной highest, ей присваивается эта новая большая величина.
Теперь объединим все части программы. На псевдокоде алгоритм ее работы можно записать следующим образом:
ввод результатов.
эхо-печать результатов.
вычисление и печать среднего значения.
вычисление и печать максимального значения.
Кроме того, мы несколько обобщим нашу программу:
/* результаты*/
#define NUM 10
main
{
int i, sum, average, highest, score [NUM];
printf(" Укажите10 результатов. \n");
for(i = 0; i < NUM; i++)
scanf(" %d" , &scorc[i]); /* ввод десяти результатов */
printf(" Введены следующие результаты:\n");
for(i = 0; i<NUM; i++)
printf("%5d", score[i]);/* проверка правильности ввода*/
printf("\n");
tor(i = 0, sum = 0; i < NUM; i++)
sum + = score[i]; /* суммирование элементов массива */
average = sum/NUM; /* классический метод усреднения */
printf(" Средний результат равен %d.\n", average);
for(highest = score[0], i = 1; i < NUM; i++)
if(score[i] > highest) /* какая из величин больше*/
highest = score[i];
printf(" Максимальный результат равен %d.\n", highest);