Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ элемент с максимальным значение дробной части

Автор: BUG 26.10.2006 2:06

Здравствуйте, помогите решить задачу! компилятор turbo C
Нужно найти элемент массива, имеющий максимальное значение дробной части. На экран вывести все элементы массива по 10 чисел на строку экрана, значение найденного элемента и его дробной части!

только начали учить, не могу разобраться...(

Автор: volvo 26.10.2006 21:26

Ну, поскольку ты ничего не сказал, откуда берутся эти значения, то будем считать, что они генерируются случайно. То же самое - о размерности массива. Ты промолчал, значит, берем простейший случай: 5 строк Х 10 столбцов:

#include <stdlib.h>

int main() {

float a[5][10];
int ix_i = 0, ix_j = 0, i, j;
float max = 0.0;

randomize();
for(i = 0; i < 5; i++) {
for(j = 0; j < 10; j++) {
a[i][j] = (float)random(10000) / 1000;

if(max < (a[i][j] - (int)a[i][j]))
max = (a[i][j] - (int)a[i][j]), ix_i = i, ix_j = j;

printf("%6.3f ", a[i][j]);
}
printf("\n");
}
printf("\nmax frac = %6.3f (a[%2d][%2d])\n", max, ix_i, ix_j);
return 0;
}

Автор: Гость 26.10.2006 21:44

извиняюсь, я сначала подумал что это две задачи! а оказалось что это одна! разделили задания по странному!
но респект)) ты все правильно сделал! в том смысле, что все угадал)))) размерность 50, рандомно!
только массив одномерный! покажи плиз как сделать чтобы он вектор делил на строки по 10 чисел! спасибо)

Автор: volvo 26.10.2006 21:57

Цитата
только массив одномерный!
blink.gif В заголовке темы написано немного другое... Сейчас исправлю...

Автор: Гость 26.10.2006 22:00

я извиняюсь! подумал что это другая задача! а по второй части задачи я понял так, что массив двумерный! so sorry

Автор: klem4 26.10.2006 22:05

Цитата
имеющий максимальное значение дробной части


Просто максимальное или макимальное по абсолютной величене ? Отрицательные числа в массиве могут быть ? Если да, то какое из чисел является решением ?

1.2 V -1.3

?

Если второе, то надо сравнивать и присваивать max абсолютное значение (int)a[i][j] - a[i][j]

Может я зря воду мучу, но нашим преподам в голову может что угодно залесть smile.gif)

Автор: Гость 26.10.2006 22:09

числа положительные! от 5 до 50, ну эт я знаю как сделать)) написано найти элемент массива, имеющий максимальное значение дробной части

Автор: volvo 26.10.2006 22:22

Цитата
как сделать чтобы он вектор делил на строки по 10 чисел!
Вот так:
#include <stdlib.h>

int main() {

float a[5 * 10];
int ix = 0, i;
float max = 0.0;

randomize();
for(i = 0; i < 50; i++) {
a[i] = (float)(random(4600) + 500) / 100;

if(max < (a[i] - (int)a[i]))
max = (a[i] - (int)a[i]), ix = i;

printf("%6.3f%s", a[i], ((i + 1) % 10) ? " " : "\n"); // <--- Идея понятна ?
}
printf("\nmax frac = %6.3f (a[%2d])\n", max, ix);
return 0;
}

Автор: Гость 26.10.2006 22:42

ужс, как препод хочет чтобы мы лабы делали, если этого никто не объяснял!
чем отличается rand от random? для rand вроде нужна библиотека... а тут randomize просто пишешь и все?
и ещё вопросик, объясните в printf что там делается хоть!

Автор: Гость 27.10.2006 11:20

все, разобрался-объяснили give_rose.gif