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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 00:06   #11
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию

нет( ей не нравится *(W+i*M+j) =\
PbIska вне форума Ответить с цитированием
Старый 05.05.2009, 00:11   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от PbIska
нет( ей не нравится *(W+i*M+j) =\
Ничего не понял. Так как вам надо-то в конечном итоге?
И почему не можете переделать сами?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 00:11   #13
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию

секундочку

слушай, а почему если матрица не симметричная (1х2,2х3 и тд), то минимальный элемент вообще не понятный?

Последний раз редактировалось PbIska; 05.05.2009 в 00:26.
PbIska вне форума Ответить с цитированием
Старый 05.05.2009, 00:37   #14
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
слушай, а почему если матрица не симметричная (1х2,2х3 и тд), то минимальный элемент вообще не понятный?
Там ошибка небольшая. M и N местами перепутаны.
Вот. Заодно добавил вывод исходной матрицы для наглядности.

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

int main()
{
int j,N,i,M,A,B,C,D,min;
float s,*W;

printf("vvod M,N:\n");
scanf("%d %d",&M,&N);
printf("vvod A, B, C, D:\n");
scanf("%d %d %d %d", &A, &B, &C, &D);
s = 0;
W = (float*)malloc(M*N*sizeof(float));

  for(i=0;i<M;i++)
   for(j=0;j<N;j++)
   {
    printf("d[%d,%d]= ",i,j);
    scanf("%f",&(*(W+i*M+j)));
    if (((*(W+i*M+j)>A) && (*(W+i*M+j)<=B)) || ((*(W+i*M+j)>=C) && (*(W+i*M+j)<D)))
      s += *(W+i*M+j);
   }

//--------------
printf("\n");
for(i=0;i<M;i++)
 {
  for(j=0;j<N;j++)
   printf("%5.2f",*(W+i*M+j));
  printf("\n");
 }
 printf("-------------\n\n");

printf("Summa = %7.2f\n",s);

min = 0;
for(i=1;i<M;i++)
 if(*(W+i*M+N-1)<*(W+min*M+N-1)) min = i;
printf("Minimum stolbca %d: W[%d][%d]= %f\n",N-1,min,N-1,*(W+min*M+N-1));

free(W);

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 17:13   #15
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию

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

int main()
{
int j,N,i,M,A,B,C,D,min, NM,r;
float s,*W;
clrscr();
printf("vvod M,N:\n");
scanf("%d %d",&M,&N);
printf("vvod A, B, C, D:\n");
scanf("%d %d %d %d", &A, &B, &C, &D);
NM=N*M;

if ((W = (float*)malloc(NM*sizeof(float)))==NULL);
s=0;
r=0;

  for(i=0;i<M;i++)
   for(j=0;j<N;j++)
   {
    printf("W[%d,%d]= ",i,j);
    r=M*i+j;
    scanf("%f",(W+r));
    if (((*(W+r)>A) && (*(W+r)<=B)) || ((*(W+r)>=C) && (*(W+r)<D)))
      s += *(W+r);
  }          

printf("Summa = %7.2f\n",s);

а как записать это не знаю=\
Код:
min = 0;
for(i=1;i<M;i++)
r=M*i+j;
 if(*(W+i*M+N-1)<*(W+min*M+N-1))  min = i;
printf("Minimum stolbca %d: W[%d][%d]= %f\n",N-1,min,N-1,*(W+min*M+N-1));

free(W);

getch();
return 0;
}
r - смещение элемента от начала
PbIska вне форума Ответить с цитированием
Старый 05.05.2009, 17:18   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

PbIska, я не понимаю, чем вас не устраивает вариант в посте #14?
Вам обязательно нужна переменная r? Ну так выдерите смещение и присвойте ему.
Такая строка:
Код:
 scanf("%f",&(*(W+i*M+j)));
станет такой:
Код:
r = +i*M+j;
scanf("%f",&(*(W+r)));
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 17:30   #17
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
PbIska, я не понимаю, чем вас не устраивает вариант в посте #14?
меня устраивает всем) а вот преподавателя...

Цитата:
Сообщение от Sazary Посмотреть сообщение
Вам обязательно нужна переменная r? Ну так выдерите смещение и присвойте ему.
Такая строка:
Код:
 scanf("%f",&(*(W+i*M+j)));
станет такой:
Код:
r = +i*M+j;
scanf("%f",&(*(W+r)));


это я понял) а как вот здесь будет?
Код:
 if(*(W+i*M+N-1)<*(W+min*M+N-1))  min = i;
printf("Minimum stolbca %d: W[%d][%d]= %f\n",N-1,min,N-1,*(W+min*M+N-1));

Последний раз редактировалось PbIska; 05.05.2009 в 17:32.
PbIska вне форума Ответить с цитированием
Старый 05.05.2009, 17:36   #18
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот из этого
Код:
 if(*(W+i*M+N-1)
берем все, кроме W:
Код:
r =i*M+N-1;
if(*(W+r);
С остальным по аналогии.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 17:38   #19
Парсифаль
Форумчанин
 
Аватар для Парсифаль
 
Регистрация: 28.04.2009
Сообщений: 186
По умолчанию

спппппааааааааааааасибоооо!))

блин(( а это (W+min*M+N-1)) как будет?
Ruft ihm es zu durch alle Land', Der durch dies Wunder Gnade fand!
Hoch uber aller Welt ist Gott, Und Sein Erbarmen ist kein Spott

Последний раз редактировалось Stilet; 06.05.2009 в 09:56.
Парсифаль вне форума Ответить с цитированием
Старый 06.05.2009, 01:21   #20
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
блин(( а это (W+min*M+N-1)) как будет?
А вы сами как думаете?
Я сказал, r = все, кроме W.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Легкий массив по СИ PbIska Помощь студентам 2 27.04.2009 23:20
очень легкий вопрос ♠STO♠ Общие вопросы Delphi 5 15.07.2007 00:14