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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2021, 21:22   #1
Lovskiy
Пользователь
 
Регистрация: 16.10.2021
Сообщений: 27
По умолчанию Почему-то не работает код. Задание в описании

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

//int min(int, int);
//int max(int, int);
void fill(int**, int);

main() {
	int** Ar;
	int i, j;
	int S;
	printf_s("Enter S>");
	scanf_s("%d", &S);
	Ar = (int**)malloc(sizeof(int*) * S);
	putchar('\n');
	fill(Ar, S);
	for (i = 0; i < S; i++) {
		for (j = 0; j < S; j++)
			printf_s("%4d", Ar[i][j]);
		putchar('\n');
	}
	for (i = 0; i < S; free(Ar[i++]));
		free(Ar);
		_getch();
		return 0;
}
 
void fill(int** spiral, int s) {
	int r, l, k, edge, num = s*s;
	for (k = 0; k < s / 2; k++) //слои
	{
		edge = s - 1 - k;
		for (l = k; l < edge; l++, num--)
			spiral[k][l] = num;
		for (r = k; r < edge; r++, num--)
			spiral[r][edge] = num;
		for (l = edge; l > k; l--, num--)
			spiral[edge][l] = num;
		for (r = edge; r > k; r--, num--)
			spiral[r][k] = num;
	}
}
Заполнить матрицу ЛП, от центра по спирали: влево – вниз – вправо – вверх
Lovskiy вне форума Ответить с цитированием
Старый 04.12.2021, 00:17   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не хватает:
Код:
    for (i = 0; i < S; i++)
        Ar[i] = (int*)malloc(sizeof(int) * S);
И, вроде, порядок циклов в fill не соответствует схеме "влево – вниз – вправо – вверх".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 04.12.2021, 10:58   #3
Lovskiy
Пользователь
 
Регистрация: 16.10.2021
Сообщений: 27
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
for (i = 0; i < S; i++)
Ar[i] = (int*)malloc(sizeof(int) * S);
Да, вчера уже нашел ошибку. спасибо
Lovskiy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает gets вообще, ни один код не работает с gets, почему? Мaкс Общие вопросы C/C++ 4 26.07.2018 11:49
Delphi. Задание значения по умолчанию при описании переменной Artsiom Помощь студентам 1 15.11.2016 22:35
Почему не работает код? иванлеон БД в Delphi 11 11.02.2013 14:49
почему не работает код? Tolian92 Помощь студентам 1 21.05.2012 23:16
Почему не работает код? Asdprom Общие вопросы C/C++ 20 09.04.2012 12:27