|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно задать тип данных в массиве |
|
C/C++ - Как правильно задать тип данных в массиве
|
Пользователь Сообщения: 98 |
Профиль | Отправить PM | Цитировать Вот сталкнулся с такой вот непоняткой и чёт не как не пойму в чём дело вообщем есть вот такая задача:
Дана матрица 10:10. Элементы чётных столбцов разделить на максимальный элемент матрици,а не чётных умножить на минимальный. Сам алгоритм выполняется верно, только вот не пойму почему то работает только с "int — выражение целого типа", а если задаю к примеру "double- знач. с плавающей точкой" или "float" то получается просто ерунда кака ето Все значения сгенерируемой матрици заменяются "0" Где ошибка не пойму может нужно в проверке так же задавать тип не int а double или float ? #include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> int main() { int arr[10][10]; int i,j; randomize; for(i = 0; i < 10; i++) for(j = 0; j < 10; j++) { arr[i][j]=1+random(10); } printf("Massiv: n \n\n"); for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) printf("%3i ",arr[i][j]); if(j % 10 == 0) cout<<endl; printf("\n"); } //максимальный элемент int ZnachenieElementaMAX = arr[0][0]; for(i = 0; i < 10; i++) for(j = 0; j < 10; j++) { if(ZnachenieElementaMAX <= arr[i][j]) { ZnachenieElementaMAX = arr[i][j]; } } //Проверка cout<<"ZnachenieElementaMAX = "<<ZnachenieElementaMAX<<endl; //минимальный элемент int ZnachenieElementaMIN = arr[0][0]; for(i = 0; i < 10; i++) for(j = 0; j < 10; j++) { if(ZnachenieElementaMIN >= arr[i][j]) { ZnachenieElementaMIN = arr[i][j]; } } //Проверка cout<<"ZnachenieElementaMIN = "<<ZnachenieElementaMIN<<endl; for(j = 0; j < 10; j++) { //операция с четными столбцами if(j%2 == 0){ for(i = 0; i < 10; i++) arr[i][j] *= ZnachenieElementaMAX; } } for(j = 0; j < 10; j++){ //операция с не четными столбцами if(j % 2 != 0){ for(i = 0; i < 10; i++) arr[i][j] /= ZnachenieElementaMIN; } } printf("Massiv: n \n\n"); for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) printf("%3i ",arr[i][j]); if(j % 10 == 0) cout<<endl; printf("\n"); } getch(); } |
|
Отправлено: 11:45, 17-04-2009 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать ShadowMas ерунда вывода?
Если тип задаётся как double или float в printf выводить его нужно используя %f вместо %i |
Отправлено: 12:50, 17-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Спасибо "Admiral" и правда всё работает
|
Отправлено: 13:48, 17-04-2009 | #3 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 15:02, 17-04-2009 | #4 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Спасибо попробую и так
|
|
Отправлено: 22:26, 18-04-2009 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
export-reg2inf (как узнать тип данных в реестре) | semiono | AutoIt | 1 | 31-12-2009 00:34 | |
Как определить MIME тип расширения | firedevil | Хочу все знать | 1 | 17-05-2009 13:26 | |
Как сменить тип лицензирования | k0st1an | Microsoft Windows NT/2000/2003 | 1 | 12-10-2008 16:34 | |
Как менять тип файла? | Igor32123 | Программное обеспечение Windows | 10 | 19-05-2008 11:34 | |
Научите меня правильно строить сложные запросы к базе данных | vadimiron | Вебмастеру | 15 | 30-05-2004 22:21 |
|