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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2020, 02:04   #41
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

BDA вопрос почему при вводе матрицы в предыдущей программе приходится еше одну строку матрицы вводить ? потому что матрица задана уже 5 на 5? попробовал разные варианты.
Когда задается готовая матрица все четко работает.

Код:
	for (i = 0; i < 4; i++)
	{
		scanf("%4d ",& a[i][0]);
		for (j = 1; j < 4; j++)
			scanf("%4d ",& a[i][j]);
	}
Alexalex777 вне форума Ответить с цитированием
Старый 22.06.2020, 09:56   #42
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от Alexalex777 Посмотреть сообщение
приходится еше одну строку матрицы вводить
Не знаю. Не должно быть такого.
Код:
for (i = 0; i < 4; i++)
    for (j = 0; j < 4; j++)
        scanf("%4d ", &a[i][j]);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.06.2020, 14:10   #43
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Понял в чем дело ненужно пробела в scanf ставить в кавычках и тогда норм.scanf воспринимает пустоту как знак и в итоге за 4 строки набора собирается 5я)
Код:
 scanf("%4d", &a[i][j]);
Код:
"%4d"
Alexalex777 вне форума Ответить с цитированием
Старый 23.06.2020, 05:17   #44
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

задача со string в матрице.
Программа строит матрицу 5 на 5 и одномерный массив на 4 и ищет сколько раз содержится одномерный массив в матрице по вертикали и по горизонтали.Все работает с готовом массиве. aba 4 раза находится.Проблема с ручным вводом матрицы строк.Может должна быть другая какае-то функция для ввода матрицы строк ?
Код:
#include <stdio.h>
void main(void)
{
	char a[5][5],bb[4];
		/*/= {
		{'2','2','1','3','a'},
		{'a','b','a','z','b'},
		{'b','i','n','g','a'},
		{'a','b','r','a','v'},
		{'c','d','a','b','a'},
	}, bb[4];*/
	int i, j, c = 0, mi;
	printf(" Enter matrix 5X5:\n");
	for (i = 0; i < 5; i++)
	{
		for (j = 0; j < 5; j++)
			//gets(a);
					scanf ("%c",&a[i][j]);
		printf("\n");
    }
	printf("\n Enter text: \n");
	gets(bb);
	for (i = 0; i < 5; i++)
		for (j = 0; j < 5; j++)
			if(a[i][j]==bb[0])
			{
				for (mi = 0; bb[mi] != '\0'&&bb[mi] == a[i][j + mi]; mi++);
					if (bb[mi] == '\0')
						c++;
					for (mi = 0; bb[mi] != '\0'&&bb[mi] == a[i + mi][j]; mi++);
					if (bb[mi] == '\0')
						c++;
	}
	printf("\n count=%d", c);
}
Alexalex777 вне форума Ответить с цитированием
Старый 24.06.2020, 13:21   #45
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Просто ввести надо сразу всю матрицу по строкам, а потом нажать Enter. Иначе в матрицу попадает и перенос строки. Еще неплохо бы проверять, что j + mi и i + mi не вылезли за границу массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.06.2020, 17:19   #46
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Спасибо все получилось! Ато посимвольно с пробелом не вводилась матрица я уже думал что дело в
Код:
'\0'
в конце каждой строки и делал матрицу не 5Х5 а 5Х6. Матрицы со строками как вижу в материале по си редко используются.
Alexalex777 вне форума Ответить с цитированием
Старый 22.07.2020, 11:05   #47
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Всем привет!
Не получается одна программа.программа получает двухмерный массив 5Х5 Функция переписывает в одномерный массив элементы у которых соседи меньше чем само число.(соседи сверху и с низу не по диагонали) Поэму ошибка в передаче массива в функцию.
Код:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define s 5
void sort(int box[][s], int bb[10]);
int main(void)
{
	int box[][s]={{1,2,3,4,4},
	{1,9,4,1,1},
	{8,1,1,6,5},
	{1,9,1,4,3},
	{1,1,1,5,9},};
	int bb[10] ;
	//sort(box,bb);
	//printf("%d \n",bb);
			return 0;
}
void sort(int box[][s],int bb[10])
{
	int i, j, k=0;
	for (i = 1; i < 4; i++)
	{
		for (j = 0; j < 5; j++)
			if (box[i][j]>box[i - 1][j] && box[i][j]>box[i + 1][j])
				bb[k++] = box[i][j];
		for (i = 0; i <10;i++)
		//	for (j = 0; j <s; j++)
		printf("%d \n", bb[k]);
	}
}
Alexalex777 вне форума Ответить с цитированием
Старый 22.07.2020, 13:39   #48
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
void sort(int box[][s], int bb[10])
{
    int i, j, k = 0;
    for (i = 1; i < 4; i++)
        for (j = 0; j < 5; j++)
            if (box[i][j] > box[i - 1][j] && box[i][j] > box[i + 1][j])
                bb[k++] = box[i][j];
    for (i = 0; i < k; i++)
        printf("%d\n", bb[i]);
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.07.2020, 20:31   #49
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Спасибо!
Alexalex777 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двухмерные массивы yusef95 Помощь студентам 1 09.06.2013 22:12
ДВУХМЕРНЫЕ МАССИВЫ Pandemona18 Паскаль, Turbo Pascal, PascalABC.NET 1 31.03.2011 20:39
Двухмерные массивы lilia2121 Помощь студентам 0 25.05.2010 10:37
про двухмерные массивы alexov Общие вопросы C/C++ 7 07.12.2008 21:03
Двухмерные массивы (С++) Nattka Помощь студентам 2 04.12.2008 21:15