Форум программистов, компьютерный форум CyberForum.ru

динамический массив (помогите разобраться с условием и решением программы) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение бинарного дерева из двумерного массива http://www.cyberforum.ru/cpp-beginners/thread36331.html
Стыдно, если честно, об этом просить, но "возник стопор" и путных идей не приходит. Суть задачи: Есть массив n*n состоящий из целых чисел. Надо создать бинарное дерево по следующему принципу: значение индексного поля корня - всегда равно 0. В 0 ряде выбирается два минимальных элемента (за исключением 0;0), меньший из которых становится левым (одно поле структуры будет равно номеру строки,...
C++ Построения графика на С Помогите очень нужно создать прогу yf C построения графика функции.Чтоб вводить любую ф-цию и строился ее график.Типа елементарние sin,cos,квадратична и т.п. Добавлено через 2 часа 49 минут 26 секунд ну врахувать крок, поч. и кон. значения.... http://www.cyberforum.ru/cpp-beginners/thread36316.html
Люди помогите с Оборотной матрицей C++
Вот написал , а не пашет. #include<stdio.h> #include<math.h> #include<conio.h> float a,x,e,c,d; int i,j,k,n,h; main() { m2: Printf("\n vvedit n \n"); scanf("\n %d",&n);
Задача на файловые функции C++
Собственно задача вот в чем: Дан файл вещественных чисел с именем Name1. Создать два новых файла с именами Name2 и Name3, первый из которых будет содержатьэлементы исходного файла с четными номерами(0,2,4...), а второй - с нечетными (1,3,5...) Я написал приблизительно код, но где-то в алгоритме похоже ошибка, помогите пожалуйста.. #include <stdio.h> #include <stdlib.h> #include <conio.h>...
C++ Dev C http://www.cyberforum.ru/cpp-beginners/thread36301.html
как и где тут использовать "malloc" ??? #include <stdio.h> int main () { int n, a, i; scanf ("%d", &n);
C++ Структура в MVSC++ прога с помощью структуры . Надо создать программу которая выводит инфу на экран о жителях заданного дома на заданной улице. В проге должны быть имя , фамилия , отчество,( жильца) номер дома, номер квартиры и название улицы. Поиск осуществляется по номеру дома и названию улицы.если данные введены не верно то должно выводить сообщение о ошибке. подробнее

Показать сообщение отдельно
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12

динамический массив (помогите разобраться с условием и решением программы) - C++

26.05.2009, 13:32. Просмотров 752. Ответов 0
Метки (Все метки)

Доброе время суток, уважаемые программисты!)) Помогите разобраться со страной трактовкой задания.

Вот задание:
A<B<(C & A[B[2]])
M[K]-возвращает номер столбца матрицы с суммой элементов, большей К.
M&K-все элементы, сумма индексов которых не равна К, умножаются на отрицательное значение максимального элемента матрицы М.
M3=M1<M2-M3=M1, если матрица М1 содержит больше положительных элементов, чем М2 и наоборот.
*М-матрица;
А,В,С-массивы;
К-числовое значение

А вот требования:
1.Разработать:
а)функцию, в которой определяется размер матрицы. На основании заданных размеров выделяется место в «куче» и вызывается функция формирования элементов матрицы с помощью генератора случайных чисел. Указатель на выделенный участок памяти возвращается через параметр функции;
б) функции формирования элементов матрицы и вывода матрицы на печать;
в) функции обработки.
2. Стандартные алгоритмы (определение максимума, суммы, сортировка ит.п.) оформить отдельными функциями и вызвать при необходимости.
3. Функции должны содержать проверку соответствия размеров массивов, участвующих в операции (если необходимо). В случае различия доопределять массивы до максимального размера нулями (либо усекать до минимального размера).
4. В функции main описывается необходимое количество указателей на массивы и вычисляется выражение. На экран выводятся все промежуточные результаты (т.е. результаты работы каждой функции).

А вот то, до чего я додумалась:
Код
#include <stdio.h>
#include <alloc.h>
#include <conio.h>
#include<stdlib.h>

//формируем матрицу
float **Form_Matrix(int M, int N)
{
int i,j;
float **M1;
M1= (float**)malloc(M*sizeof(float*));
for(i=0;i<M; i++)
 {
 M1[i] = (float*)malloc(N*sizeof(float));
 for(j=0; j<N; j++)
  M1[i][j] = random(10);
 }
return M1;
}

//печатаем матрицу
void Print_Matrix(int M, int N, float **M1)
{
  int i,j;  
    for(i=0;i<M;i++,printf("\n"))
      for(j=0;j<N;j++)
      printf(" %3.1f ",M1[i][j]);
}

//находим максимальный элемент матрицы
float Max_Matrix(float **M1, int n) 
{
int i,j;
float max=-1000;
for(i=0; i<n; i++)
 for(j=0; j<n; j++)
   {
	if (M1[i][j]>M1[i][j]) max=M1[i][j];
        }
printf("%3.1f", max);
      return max;
}

float Kol(int M, int N,float **M1)
{
   int i,j,g=0;
   for (i=0; i<M; i++)
      for (j=0; j<N; j++)
      {
	if (M1[i][j]>0) g++;
        }
printf("%3.1f",g);
      return g;
 }

//находим номер столбца матрицы с суммой элементов, большей К
float Sum_Matrix(int M, int N,float **M1)
{
 float summa;
 int i,j,num_j; 
  for(j=0;j<N;j++)
   { summa=0;
    for(i=0;i<M;i++)
      summa+=M1[i][j];
     }if (summa>N) num_j=j;
  
printf("%3.1f", num_j);
 return num_j;
}

//находим M3=M1<M2-M3=M1, если матрица М1 содержит больше положительных элементов, чем М2 и наоборот
float **Form_M3(int M, int N, float **M1, float **M2)
{
int i,j;
float **M3;
M3= (float**)malloc(M*sizeof(float*));
for(i=0;i<M; i++)
 {
 M3[i] = (float*)malloc(N*sizeof(float));
 for(j=0; j<N; j++)
  M3[i][j] = M1[i][j]-M2[i][j];
 }
return M3;
}

void main ()
{float **M1, **M2, **M3;
int i,j,n=3;
float num_j,max;
M1 = Form_Matrix(n,n);
Print_Matrix(n,n,M1);
M2 = Form_Matrix(n,n);
Print_Matrix(n,n,M2);
  for (i=0; i<n; i++)
      for (j=0; j<n; j++)
      {
	if (num_j=Sum_Matrix(M1,n)!=n) M1[i][j]=M1[i][j]*(-(max=Max_Matrix));
      }
  if (Kol(n,n,M1)>Kol(n,n,M2)) M3=Form_M3(n,n,M1,M2);
  printf("matriza M3\n");
  Print_Matrix(n,n,M3);
  getch();}
Но я не очень уверена в правильности хода решения.
Очень надеюсь на вашу помощь))

Добавлено через 14 часов 44 минуты 27 секунд
И как всегда на более сложную программу никто даже не попробывал что-то посоветовать. Вот, если бы какая-нибудь линейная программка, то все такие умные и добрые, все спешат помочь...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru