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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2017, 23:56   #1
DEXTER322
Пользователь
 
Регистрация: 07.12.2016
Сообщений: 20
По умолчанию Переделать программу на использование операторов new и delete. Помогите пожалуйста

Код:
#include <stdio.h>
#include <malloc.h>
#include <windows.h>

char* Rus(const char*);
int *create_array(int *, int);
void show_array(int *, int );
void solution(int *, int);
void main(void);

char bufRus[256];

void main(void)
{
 int count_massiv;
 int *parray;
 do
  {
   printf(Rus("Введите порядок матрицы (минимум-3, максимум-10)="));
   scanf("%d",&count_massiv);
   if (count_massiv < 3 || count_massiv > 10)
      printf(Rus("\nОшибка! Требуемый порядок матрицы (минимум-3, максимум-10). Будьте внимательны!!!\n"));
  }
 while (count_massiv < 3 || count_massiv > 10);
 parray = (int*)calloc(1,sizeof(int));
 if (parray)
	{
	 parray=create_array(parray, count_massiv);
     printf(Rus("Введенная матрица:\n"));
	 show_array(parray, count_massiv);
	 solution(parray, count_massiv);
	 free(parray);
	}
 else
    printf(Rus("Нет возможности выделить память под первый элемент матрицы\n"));
}

int *create_array(int *array_1,int count_massiv)
{
 int i=0;
 int j=0;
 printf(Rus("Элемент матрицы[%d][%d]="),i,j);
 scanf("%d",array_1);
 array_1=(int*)realloc(array_1, count_massiv*count_massiv*sizeof(int));
 if (array_1)
	{
 	 for (i=0;i<count_massiv;i++)
	     {
	      for (j=0;j<count_massiv;j++)
	          {
	           if(i==0 && j==0)
				 continue;
			   else
			      {
				   printf(Rus("Элемент матрицы[%d][%d]="),i,j);
	               scanf("%d",array_1+j+(count_massiv*i));
			      }
	          }
	     }
	 return array_1;
	}
 else
	printf(Rus("Нет возможности выделить память под оставшиеся элементы матрицы\n"));
    return 0;
}

void show_array(int *array_1,int count_massiv)
{
 int i;
 int j;
 for (i=0;i<count_massiv;i++)
     {
      for (j=0;j<count_massiv;j++)
          {
           printf("%8d", *(array_1+j+(count_massiv*i)));
           if((j+1)%count_massiv==0)
	         printf("\n");
          }
     }
}

void solution(int *array_1,int count_massiv)
{
 int i;
 int j;
 int count = 0;
 for (i=0;i<count_massiv;i++)
     {
	  for (j=0;j<count_massiv;j++)
	      {   
           if (*(array_1+j+(count_massiv*i))>=0 && i==j)
	          count++;
           else
	          continue;
	      }
     }
 if(count)
   printf(Rus("\nКоличество положительных элементов в матрице, лежащих на главной диагонали=%d\n"),count);
 else
	printf(Rus("\nВведенная матрица не содержит положительных элементов, лежащих на главной диагонали.\n"));
}

 char* Rus(const char* text)
{
	CharToOemA(text, bufRus);
	return bufRus;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 24.01.2017 в 10:01.
DEXTER322 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование операторов SELECT, DELETE и UPDATE в одном запросе в PDO Dante5 SQL, базы данных 4 19.09.2015 11:41
Подскажите пожалуйста как переделать даную программу под указатели? Ramesses Общие вопросы C/C++ 1 24.12.2014 07:50
Всем доброго времени суток!Если можете помогите пожалуйста переделать программу под сдвиг единицы по синусойде Ddradok Помощь студентам 0 14.12.2014 21:13
помогите пожалуйста переделать программу)срочно нужно) Кристя777 Помощь студентам 1 06.12.2013 14:24
Помогите,пожалуйста,переделать программу. vep Общие вопросы C/C++ 5 19.10.2009 00:35