Помощь - Поиск - Пользователи - Календарь
Полная версия: элемент с максимальным значение дробной части
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
BUG
Здравствуйте, помогите решить задачу! компилятор turbo C
Нужно найти элемент массива, имеющий максимальное значение дробной части. На экран вывести все элементы массива по 10 чисел на строку экрана, значение найденного элемента и его дробной части!

только начали учить, не могу разобраться...(
volvo
Ну, поскольку ты ничего не сказал, откуда берутся эти значения, то будем считать, что они генерируются случайно. То же самое - о размерности массива. Ты промолчал, значит, берем простейший случай: 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;
}
Гость
извиняюсь, я сначала подумал что это две задачи! а оказалось что это одна! разделили задания по странному!
но респект)) ты все правильно сделал! в том смысле, что все угадал)))) размерность 50, рандомно!
только массив одномерный! покажи плиз как сделать чтобы он вектор делил на строки по 10 чисел! спасибо)
volvo
Цитата
только массив одномерный!
blink.gif В заголовке темы написано немного другое... Сейчас исправлю...
Гость
я извиняюсь! подумал что это другая задача! а по второй части задачи я понял так, что массив двумерный! so sorry
klem4
Цитата
имеющий максимальное значение дробной части


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

1.2 V -1.3

?

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

Может я зря воду мучу, но нашим преподам в голову может что угодно залесть smile.gif)
Гость
числа положительные! от 5 до 50, ну эт я знаю как сделать)) написано найти элемент массива, имеющий максимальное значение дробной части
volvo
Цитата
как сделать чтобы он вектор делил на строки по 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;
}
Гость
ужс, как препод хочет чтобы мы лабы делали, если этого никто не объяснял!
чем отличается rand от random? для rand вроде нужна библиотека... а тут randomize просто пишешь и все?
и ещё вопросик, объясните в printf что там делается хоть!
Гость
все, разобрался-объяснили give_rose.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.