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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2020, 21:51   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

А если пользователь нажмет удаление символа?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.06.2020 в 23:38.
BDA вне форума Ответить с цитированием
Старый 05.06.2020, 23:06   #12
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Не выходит, условие срабатывает после Enter в процессе ввода не работает((

Последний раз редактировалось Alexalex777; 05.06.2020 в 23:36.
Alexalex777 вне форума Ответить с цитированием
Старый 05.06.2020, 23:09   #13
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Вот такая задача
Программа строит матрицу чисел 5Х5.Программа выводит на монитор числа из матрицы которые больше среднеарифметического числа в массиве. Нужно написать три функции.
1.Функция строит матрицу
2.Функция ищет среднеарифметическое в матрице
3.Функция печатает матрицу чисел больших среднеарифметического числа в матрице.

Не получается передать среднеарифметическое число матрицы с одной функции в другую.
Первая и вторая функция нормально работают

Код:
#include<stdio.h>
void insert(int a[][5])
{
	int i, j;
	printf("\n Enter matrix 5X5 :\n");
		for (i = 0; i < 5; i++)
				for (j = 0; j < 5; j++)
				scanf("%d ", &a[i][j]);
}
double avg(int a[][5])
{
	int i, j;
	double sum = 0.0;
	for (i = 0; i < 5; i++)
		for (j = 0; j < 5; j++)
			sum +=a[i][j];
	return sum / (i*j);
}
void print(int a[][5],int avg)
{
	int i, j;
		for (i = 0; i < 5; i++)
	{
		printf("\n");
		for (j = 0; j < 5; j++)
			if(a[i][j]>avg)
			printf("%2d ",a[i][j]);
	}
	printf("\n");
}
void main(void)
{
	int a[5][5];
	insert(a);
	double avg(a);
	printf("%3.2f",avg(a));
	print(a,avg);
	//printf("%d %f",a,avg);
}

Последний раз редактировалось Alexalex777; 05.06.2020 в 23:13.
Alexalex777 вне форума Ответить с цитированием
Старый 05.06.2020, 23:23   #14
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Сложность еще что avg находим в double а матрицу распечатать надо в int
Alexalex777 вне форума Ответить с цитированием
Старый 06.06.2020, 01:13   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
void print(int a[][5], double avg)
...
void main(void)
{
	int a[5][5];
	insert(a);
	double avg_val = avg(a);
	printf("%3.2f", avg_val);
	print(a, avg_val);
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.06.2020, 10:19   #16
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
Радость

Спасибо!
Alexalex777 вне форума Ответить с цитированием
Старый 06.06.2020, 23:20   #17
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Возник вопрос какая разница между двумя программами ниже?
1-
Код:
#include<stdio.h>
#define row 4
#define col 4
void myscanf(int box[][col]);
void myprintf(int box[][col]);
int main(void)
{
	int box[row][col];
	myscanf(box);
	myprintf(box);
	return 0;
}
/////////////////////////////////////////////
void myprintf(int box[][col])
{
	int i, j;
	for (i = 0; i<row; i++)
	{
		for (j = 0; j<col; j++)
			printf("%d ", box[i][j]);
		printf("\n");
	}
}
////////////////////////////////////////////////
void myscanf(int box[][col])
{
	int i, j;
	printf("enter numbers");
	for (i = 0; i<row; i++)
		for (j = 0; j<col; j++)
			scanf("%d=a", &box[i][j]);
}
2-
Код:
#include<stdio.h>
#define row 4
#define col 4
void myscanf(int box[][col], int rows, int cols);
void myprintf(int box[][col], int rows, int cols);
int main(void)
{
	int box[row][col];
	myscanf(box, row, col);
	myprintf(box, row, col);
	return 0;
}
/////////////////////////////////////////////
void myprintf(int box[][col], int rows, int cols)
{
	int i, j;
	for (i = 0; i<rows; i++)
	{
		for (j = 0; j<cols; j++)
			printf("%d/a", box[i][j]);
		printf("\n");
	}
}
////////////////////////////////////////////////
void myscanf(int box[][col], int rows, int cols)
{
	int i, j;
	printf("enter numbers");
	for (i = 0; i<rows; i++)
		for (j = 0; j<cols; j++)
			scanf("%d/a", &box[i][j]);
}
Есть ли необходимость в int rows, int cols если #define row 4
#define col 4 уже сохраняют длину и ширину матрицы??
Alexalex777 вне форума Ответить с цитированием
Старый 07.06.2020, 03:20   #18
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Да, наверное, нет необходимости в rows, cols, раз размер фиксирован.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.06.2020, 10:58   #19
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Ок .Разные примеры были и не понял зачем лишние переменные
Alexalex777 вне форума Ответить с цитированием
Старый 08.06.2020, 03:09   #20
Alexalex777
Пользователь
 
Регистрация: 02.04.2020
Сообщений: 97
По умолчанию

Еше задачка надо найти сумму диагонали главного треугольника матрицы и второстепенного. Главный нашел второстепенный с ошибкой.
1- 62 2-78 вместо 58
treug.png
Код:
#include<stdio.h>
#define ROW 5
#define COL 5
void sum_triangl(int box[][COL]);
int main(void)
{
	int box[][COL] = { { 1,1,4,3,1 },
	{ 1,9,2,4,3 },
	{ 8,1,9,1,4 },
	{ 1,1,8,1,7 },
	{ 3,7,1,3,8 } };
	sum_triangl(box, ROW, COL);
	return 0;
}
////////////////////////////////////////
void sum_triangl(int box[][COL])
{
	int i, j, sum = 0;
	for (i = 0; i<5; i++)
		for (j = 0; j <=i; j++)
			sum = sum + box[i][j];
	printf("Sum(1)=%d\n", sum);
	sum = 0;
	for (i = 0; i<5; i++)
		for (j = 1; j <5; j++)
				sum = sum + box[i][j];
	printf("Sum(2)=%d\n", sum);
}
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