1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
1 | |
Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов.07.05.2012, 15:00. Показов 3348. Ответов 5
Метки нет (Все метки)
Программа должна:
1)генерировать случайным образом элементы исходных массивов; 2)выполнять действия в соответствии с условием задачи; 3)выводить: - исходные массивы, - сформированный массив, если он был сформирован. В противном случае – соответствующее сообщение. Вот я сделала 2 исходных массива случайных чисел, а как выполнить дальнейшее условие задания совсем не понимаю, если можете набросайте пожалуйста дальнейший код желательно с комментариями. Заранее спасибо. #include <stdio.h> #include <stdlib.h> int main(void){ int a[20],b[20],i,n,j,s; printf("Введите исходное число n:"); scanf("%d",&n); srand(n); for (i=0; i<20; i++) a[i]=rand(); for (i=0; i<20; i++) printf("a[%d]=%d\n", i,a[i]); printf("Введите исходное число s:"); scanf("%d",&s); srand(s); for (j=0; j<20; j++) b[j]=rand(); for (j=0; j<20; j++) printf("b[%d]=%d\n", i,b[j]); return 0; } Добавлено через 3 часа 26 минут нужна помощь Добавлено через 3 часа 15 минут help Добавлено через 15 часов 44 минуты набросала на паре программу, к сожалению не очень верно, help #include <stdio.h> #include <stdlib.h> int main(void){ int a[10],b[10],z[15],i,n,s,k,m; printf("Введите исходное число n:"); scanf("%d",&n); srand(n); for (i=0; i<10; i++) a[i]=rand(); for (i=0; i<10; i++) printf("a[%d]=%d\n", i,a[i]); printf("Введите исходное число s:"); scanf("%d",&s); srand(s); for (i=0; i<10; i++) b[i]=rand(); for (i=0; i<10; i++) printf("b[%d]=%d\n", i,b[i]); k=0; for (i=0; i<n; i++){ if (a[i]<a[9]*b[9]){ z[k]=a[i]; k++;} } for (i=0; i<m; i++){ if (b[i]<a[9]*b[9]){ z[k]=b[i]; k++;} } printf("massiv a:"); for (i=0; i<n; i++) printf("a[%d]=%d\n",i,a[i]); printf("massiv b:"); for (i=0; i<m; i++) printf("b[%d]=%d\n",i,b[i]); if (k==0) printf("massiv ne sformirovan\n"); else { printf("massiv z:"); for (i=0; i<k; i++) printf("z[%d]=%d\n",i,z[k]); } return 0; }
0
|
07.05.2012, 15:00 | |
Ответы с готовыми решениями:
5
Сформировать третий массив из положительных элементов исходных массивов, меньших 10 Сформировать третий массив из элементов исходных массивов, большиз 3, но меньших 10 Сформировать третий массив из меньших - 3 элементов исходных массивов, стоящих на четных местах. Сформировать массив S, состоящий из одинаковых элементов исходных массивов |
07.05.2012, 15:49 | 2 | ||||||||||
Сначала вопрос по поводу кода:
Зачем нужна переменная m и что она делает в цикле неинициализированная:
1. Переменная t - нужна для формирования случайного числа. Сильно расписывать как это работает не буду - просто посмотрите, что происходит без неё (прогоните программу пару раз вводя одинаковые значения). 2. Константы MAS и MASZ - просто для удобства редактирования программы. 3. В последнем цикле должна выводиться z[i], а не z[k]. Листинг:
1
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
07.05.2012, 18:28 [ТС] | 3 |
Спасибо большое за пояснение, да действительно переменную потеряла и в конце z[i].
Извините а где можно прочитать про srand((unsigned) time(&t)+n) ? не совсем понятно как это работает Добавлено через 26 минут кажется поняла всё кроме: почему +n ?
0
|
07.05.2012, 18:31 | 4 | |||||
Честно говоря, лень ползти в поиск, так что попробую объяснить как помню.
Функция srand() определяет последующие значения функции rand() в зависимости от переданного ей аргумента. То есть если передавать ей в качестве аргумента переменную со значением 2, то она выдаст определённый результат. Однако, если снова запустить программу и передать в качестве аргумента то же значение 2, то эта функция выдаст тот же самый результат. Поэтому полученные значения элементов массива являются не случайными, а псевдослучайными (зависят от аргумента). Насколько я помню, функция time() возвращает время в секундах от какого-то момента до переменной, переданной ей в качестве параметра. Переменная t содержит время на момент своего объявления (~время запуска программы). Поэтому элементы массива зависят не только от введённого пользователем значения переменной, но и от времени запуска программы. Вот наглядный пример кода (попробуй запустить пару раз и сравни результаты):
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
07.05.2012, 18:35 [ТС] | 5 |
спасибки сейчас буду пробовать!
0
|
07.05.2012, 18:36 | 6 |
0
|
07.05.2012, 18:36 | |
07.05.2012, 18:36 | |
Помогаю со студенческими работами здесь
6
Сформировать массив, состоящий из одинаковых элементов исходных массивов Сформировать массив из отрицательных элементов исходных массивов, больших -5 Сформировать массив из элементов исходных массивов, образующих возрастающую последовательность Сформировать новый массив из элементов, входящих только в один из исходных массивов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |