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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 23:40   #1
PbIska
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 17
Восклицание +1 легкий массив по СИ)

Задана матрица W размера M x N. Вычислить сумму элементов, значения которых принадлежат интервалу (A,B] или [C,D). Определить минимальный элемент последнего столбца.

мб кому нибудь будет не лень или в удовольвие) напишите пожалуйста, буду очень признателен!
PbIska вне форума Ответить с цитированием
Старый 28.04.2009, 00:12   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Может, все-таки сами напишете? А что будет не получаться, спросите.
Задачка-то простая.
Проходите в двух вложенных циклах по матрице и сравниваете элементы с границами интервалов.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

да что-то вообще никак не идет, опять с этим маллоком надо
PbIska вне форума Ответить с цитированием
Старый 28.04.2009, 01:02   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну первую же написали как-то.
Здесь вычислений будет не больше, чем там.
Цитата:
да что-то вообще никак не идет
Покажите, что там у вас не идет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

не знаю как интервал написать((
PbIska вне форума Ответить с цитированием
Старый 29.04.2009, 00:03   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Проверка числа Num на принадлежность интервалу:
Код:
if ((Num>A) and (Num<=B)) or ((num>=C) and (num<D)) then
 .............
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

Код:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
main()
{int j,N,i,M,A,B,C,D,NM,r;
float s,*W;
double *ptr=NULL;
clrscr();
printf("vvod M,N:\n");
scanf("%d,%d",&M,&N);
NM=N*M;
if ((W=(float*)malloc(NM*sizeof(float)))==NULL)
printf("net svobodnoy pamyti!\n");
else
 {for(i=0;i<N;i++)
   for(j=0;j<M;j++)
   {printf("d[%d,%d]=",i,j);
     r=M*i+j;
    scanf("%f",(W+r));
   }

  getch();
  free(W);
   }
=(
PbIska вне форума Ответить с цитированием
Старый 29.04.2009, 01:05   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#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++)
 W[i] = (float*)malloc(N*sizeof(float));

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

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

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

for(i=0; i<M; i++)
 free(W[i]);
free(W);

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

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

блин( сказали сделать через переменную r, r=n*i+j, *(W+r) и тд. heeeeeeeeeeeeeeeeeeeeeeeeeelp:confu sed:

Код:
int j,N,i,M,A,B,C,D,min, r, NM;
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);
NM=N*M;
s = 0;
W = (float**)malloc(NM*sizeof(float*));
for(i=0;i<M;i++)
 W[i] = (float*)malloc(N*sizeof(float));
  r=0;
  for(i=0;i<N;i++)
   for(j=0;j<M;j++)
   {
    printf("d[%d,%d]= ",i,j);
    r=N*i+j
    scanf("%f",(W+r));
PbIska вне форума Ответить с цитированием
Старый 04.05.2009, 23:45   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так?
Код:
#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<N;i++)
   for(j=0;j<M;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("Summa = %5.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 вне форума Ответить с цитированием
Ответ


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



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