Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2012, 22:23   #1
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию Двумерный динамический массив. С.

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

Не могу понять почему он не хочет заполнять массив(всегда нули выводит), где я накосячил??

Код:
# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
# include<Dos.h>
# include<Alloc.h>
# include<Malloc.h>


main ()
{    
  float **d2;
  int i,STR,COL,n;
  printf("Введите количество строк и столбцов \n");
  scanf("%i %i", &STR, &COL);
  d2 = (float**)malloc(STR * sizeof(float*));  
  for (i = 0; i < STR; i++)
    d2[i] = (float*)malloc(COL*sizeof(float));
    
      
   for (n=0; n<STR; n++)
     for ( i=0; i<COL; i++)
       d2[n][i]=i+n*5+1;

 int x;
 printf(" Введите число для замены значения четных строк\n");
 scanf("%i",&x);
 
for (n=0; n<STR ; n++)
  { if ((n+1)%2==0)
      d2[n][i]=x;
   }   
   
printf("\n");
for (n=0; n<STR; n++)
{
   for ( i=0; i<COL ;i++)
     printf(" %i",d2[n][i]);
     printf("\n");
  }  
        
for(i = 0; i < STR; i++) 
  free(d2[i]);

free(d2);  
    
     
getch();
}
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 13.05.2012, 22:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так:
Код:
for (n=0; n<STR ; n+=2) for (i=0; i<COL ; i++) d2[n][i]=x;
Цитата:
строки матрицы заменить на какое нибудь число
Сама трактовка не смущает? Это все равно что траншею заменить на выбоину
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2012, 22:37   #3
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Stilet, да согласен, немного глуповато звучит, тоже самое происходит, т.е. он мне массив заполняет выводит на экран но в самом массиве одни нули, ни четные строки не меняет, а здесь
Код:
for (n=0; n<STR; n++)
     for ( i=0; i<COL; i++)
       d2[n][i]=i+n*5+1;
например, я присваиваю значение ну порядковый номер просто, и если любое число просто присвоить, то все равно 0-ли выводит.
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 14.05.2012, 09:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не сразу увидел еще один прикол: Это все Сишные заморочки - не предупреждает о неверных типах
Ты массив обьявил вещественным, а на экран пытаешься вывести как целый.
Не хорошо. Меняй модификатор в printf на другой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.05.2012, 17:15   #5
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Stilet, огромнейшее спасибо, да вот из за одной буквы казалось бы оплошность(...разобрался)...осознал )
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический двумерный массив dart_nick Помощь студентам 0 11.12.2011 13:44
динамический двумерный массив Ilya_L Помощь студентам 3 28.09.2011 04:29
Двумерный динамический массив Markuss Помощь студентам 6 07.12.2010 09:29
Двумерный динамический массив IceExecutioner Общие вопросы Delphi 1 04.06.2009 08:41