Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно задать тип данных в массиве

Ответить
Настройки темы
C/C++ - Как правильно задать тип данных в массиве

Пользователь


Сообщения: 98
Благодарности: 1

Профиль | Отправить 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
Благодарности: 916

Профиль | Отправить PM | Цитировать


ShadowMas ерунда вывода?
Если тип задаётся как double или float в printf выводить его нужно используя %f вместо %i
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:50, 17-04-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 98
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо "Admiral" и правда всё работает

Отправлено: 13:48, 17-04-2009 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


ShadowMas, Да просто вместо функции printf() Сишного стиля можно ещё использовать такую конструкцию:
Код: Выделить весь код
...
cout<<setw(4)<<arr[i][j]<<setw(4);
...
И нужно будет добавить заголовочный файл:
Код: Выделить весь код
...
#include <iomanip>
using std::setw;
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 15:02, 17-04-2009 | #4


Пользователь


Сообщения: 98
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо попробую и так

Отправлено: 22:26, 18-04-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно задать тип данных в массиве

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход