Цитата(Dov @ 13.10.2006, 22:31 ) | проще нуна на вещи смотреть, проще. |
А, говорил же я, говорил, не верили.  А алгоритмик-то мой передрали 1 : 1. Цитата(Dov @ 14.10.2006, 00:53 ) | Ну есть у нас матрица. Задаём ей размер, заполняем значениями, находим то, что требуется найти, выводим на экран... |
Но всё равно, код на С++ смотрится красивше.  Да и вобще, как вы там ориентируетесь в этом паскале, вместо имён переменных - весь английский алфавит, там что, запрещено давать переменным осмысленные имена.  Кошмар просто. Хорошо хоть, что у Kuvaldis`а, код отформатирован, а то бы вабще нифуя не понял бы.  А С++, ИМХО, всё-таки лучше. З.Ы. А я говорю, что код на С++ смотрится красивше. И не спорьте.  А код-то, вот он. Код | #include <stdio.h> #include <stdlib.h> #include <time.h>
const int row = 4; // количество строк матрицы const int col = 6; // количество столбцов матрицы
// дробь "и её компоненты" struct fraction { int numer; // числитель int denom; // знаменатель double value; // значение дроби };
int main(int argc, char *argv[] ) { srand((unsigned)time(NULL)); // "запускаем" генератор случайных чисел fraction matr[row][col]; // матрица дробных чисел fraction low_denom; // число с наименьшим знаменателем fraction max_fract = {0, 1, 0}; // наибольшее число среди чисел с наименьшим знаменателем puts("Source matrix:"); // инициализируем матрицу и выводим её значения на экран в виде: ЧИСЛИТЕЛЬ/ЗНАМЕНАТЕЛЬ for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) { matr[i][j].numer = rand() % 10 + 1; matr[i][j].denom = rand() % 1000 + 2; // знаменатель не должен быть равен 0 matr[i][j].value = (double)matr[i][j].numer / matr[i][j].denom; printf("%3d/%-5d", matr[i][j].numer, matr[i][j].denom); } putchar('\n'); } puts("\nNumbers with lowest denominator:"); // в каждой строке матрицы... for(i = 0; i < row; i++) { // ...начиная с нулевого элемента... low_denom.numer = matr[i][0].numer; low_denom.denom = matr[i][0].denom; low_denom.value = matr[i][0].value; // ...ищем число с наименьшим знаменателем... for(int j = 1; j < col; j++) { // ...и если находим, ... if(low_denom.denom > matr[i][j].denom) { // ...то "запоминаем" его low_denom.numer = matr[i][j].numer; low_denom.denom = matr[i][j].denom; low_denom.value = matr[i][j].value; } } // сравнивая найденные числа, находим самое большое из них if(max_fract.value < low_denom.value) { max_fract.numer = low_denom.numer; max_fract.denom = low_denom.denom; max_fract.value = low_denom.value; } // выводим числа с наименьшим знаменателем в виде: № СТРОКИ. ЧИСЛИТЕЛЬ/ЗНАМЕНАТЕЛЬ = ЗНАЧЕНИЕ printf("%3d.%3d/%-3d = %g\n", i + 1, low_denom.numer, low_denom.denom, low_denom.value); } // выводим наибольшее среди найденных чисел в виде: ЧИСЛИТЕЛЬ/ЗНАМЕНАТЕЛЬ = ЗНАЧЕНИЕ printf("\nMax value:\n%7d/%-3d = %g\n\n", max_fract.numer, max_fract.denom, max_fract.value); return 0; } |
Это сообщение отредактировал(а) Dov - 12.1.2007, 01:33
--------------------
Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман.
|