Войти

Показать полную графическую версию : Массивы


SarGon4eg
15-02-2011, 15:05
Доброго времени суток. Начал изучать Си, решаю задачки, попалась следующая:
"Дан одномерный массив из 1000 элементов, состоящий из случайных целых чисел в диапазоне от 0 до 50. Найти сумму элементов массива, с начала массива, до первого элемента равного нулю."
Написал банальнейший код, но вот знающие люди говорят, что он не годится для небольшого массива. Почему?
Код прилагается
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

void main(void)
{
int array[1000];
int i;
int sum=0;
srand((unsigned)time(NULL));
for (i = 0; i < 1000; i++)//random filling an array from 0 to 50
{
array[i] = 0.0 + 51.0 * rand() / RAND_MAX;
cout<<array[i]<<" ";
}

for (i = 0; i < 1000; i++)//finding the sum
{
if (array[i] ==0) break; //checking for 0 element
sum = sum + array[i];
}
cout<<"\nSum="<<sum<<"\n\nPress any key to continue...";
getch();
}

Beyound
15-02-2011, 19:17
эм.. а что за знающие люди и где тут массив переменной длинны??? я лично вижу тут только массив на 1000 элементов и все. задача решена вполне корректно.

Drongo
15-02-2011, 21:07
Мне не нравится эта строка, тип массива int а вычисления с точками.array[i] = 0.0 + 51.0 * rand() / RAND_MAX;
состоящий из случайных целых чисел в диапазоне от 0 до 50 »array[i] = rand() % 50 // RAND_MAX;Ну и инициализировать немного непомешает.int array[1000] = {0};

Beyound
16-02-2011, 17:49
ну если строго то rand()%51 - это от 0 до 50 включительно (http://www.cplusplus.com/reference/clibrary/cstdlib/rand/).

pva
16-02-2011, 18:39
К решению нет претензий. Даже показалось что "знающие люди" знают больше, чем есть на самом деле :) Я бы только к стилю придрался, но это сугубо индивидуальное.




© OSzone.net 2001-2012