Вот код:
http://pastebin.com/JhcqtLve
Жду критики: что неправильно, как лучше реализовать, хромает ли оформление кода (если да, где)
Спасибо.
Другие языки программирования и технологии
Критика программы, написанной на языке C
старайтесь как можно реже использовать константы
#include <stdio.h>
int main()
{
float sum,numbers[]={2.5, 4.6, 2.6, 12.5, 34.34, 65.7, 21.3, 6.7, 45.3, 3.5};
int i,s=sizeof numbers/sizeof(float);
for(sum=i=0;i < s;sum+=numbers[i++]);
printf( "%f\n",sum/=s);
return 0;
}
заметьте, что в этом случае Вы можете добавлять в массив ещё данные, но остальную часть программы при этом переделывать не потребуется
#include <stdio.h>
int main()
{
float sum,numbers[]={2.5, 4.6, 2.6, 12.5, 34.34, 65.7, 21.3, 6.7, 45.3, 3.5};
int i,s=sizeof numbers/sizeof(float);
for(sum=i=0;i < s;sum+=numbers[i++]);
printf( "%f\n",sum/=s);
return 0;
}
заметьте, что в этом случае Вы можете добавлять в массив ещё данные, но остальную часть программы при этом переделывать не потребуется
я предпочитаю задавать начальным первое из массива - чуть меньше цикла получится крутить: доли процента скорости, но иногда критично.
выносить границы массивов ( и вообще циклов и подобного) в отдельные переменные, а не влоб прописывать их в алгоритме -критично для многого, добавить одно в массив и жесткий алгоритм грохнется.
стараюсь использовать не float, а double. обычно важнее точность, а не экономия памяти, но тут уж от задачи зависит.
и можно писать в стиле "одна строка - одно действие"(тут уж просто личная привычка побольше логики в один экран, чтоб не прокручивать - и кому как - хоть большинство учебников требуют каждую скобку в отдельную строку выносить, но это удобно только на мелких учебных прогах. а как система из сотни файлов по тысяче строк, то мешает)
я бы писала примерно так:
if( n){for ( sredn= numbers[ 0], i = 1; i < n; i++ ) sredn += numbers[ i]; sredn /= n;};
А в целом вроде ляпов не видно и всё хорошо.
выносить границы массивов ( и вообще циклов и подобного) в отдельные переменные, а не влоб прописывать их в алгоритме -критично для многого, добавить одно в массив и жесткий алгоритм грохнется.
стараюсь использовать не float, а double. обычно важнее точность, а не экономия памяти, но тут уж от задачи зависит.
и можно писать в стиле "одна строка - одно действие"(тут уж просто личная привычка побольше логики в один экран, чтоб не прокручивать - и кому как - хоть большинство учебников требуют каждую скобку в отдельную строку выносить, но это удобно только на мелких учебных прогах. а как система из сотни файлов по тысяче строк, то мешает)
я бы писала примерно так:
if( n){for ( sredn= numbers[ 0], i = 1; i < n; i++ ) sredn += numbers[ i]; sredn /= n;};
А в целом вроде ляпов не видно и всё хорошо.
переменные лучше вводить самому, а не в коде.
и вывод хотя бы какого нибудь сообщения об ошибках
и вывод хотя бы какого нибудь сообщения об ошибках
Похожие вопросы
- Возможно ли любую программу написать на языке C++ при помощи только структурного программирования, без ООП?
- Причиной появления 99% дыр в программах, всех вирусов и троянов, является то, что эти программы написаны на языке Cи ?
- На какой программе писать на языке C++?
- почему процессор компьютера не может исполнять программы написанные на языке программирования Basic или Pascal
- Какие программы написаны на языках программирования?
- приведите примеры программ написанных на языке делфи или игр
- Разработать компьютерную программу, написанную на языке программирования PascalABC, используя тип данных «запись»,
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- Подскажите пожалуйста, на каком языке написана программа, на С или C++
- А почему программы написанные на C/C#/C++ имеют больший вес чем на tasm/masm?