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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2015, 13:03   #1
axel__
Пользователь
 
Регистрация: 23.05.2015
Сообщений: 15
По умолчанию Ошибка в коде (С)

Нужно найти макс и мин элемент в каждом столбце в двумерном массиве и заменить их нулями.
Программа не правильно работает для отриц. значений(для полож. все верно), подскажите где допущена ошибка.
Код:
#include "stdio.h"
#include "conio.h"
#include "locale.h"
int main()
{
	setlocale(LC_ALL,"rus");
	int a[100][100],N,maxi,maxj,max,min,mini,minj;
	printf("Введите кол-во строк (кол-во столбцов) >");
	scanf("%d,",&N);
	printf("Введите элементы массива >");
	for (int i=0;i<N;i++)
	{
		for (int j=0;j<N;j++)
			scanf("%d",&a[i][j]);
	}
	for (int j=0;j<N;j++)
	{
		min =a[0][j];
		mini=0;
		minj=j;
		for (int i=0;i<N;i++)
		{
			if (a[i][j]<min)
			{
				min=a[i][j];
				mini=i;
				minj=j;
			}
		}
		a[mini][minj]=0;
    }
	for (int j=0;j<N;j++)
	{
		max =a[0][j];
		maxi=0;
		maxj=j;
		for (int i=0;i<N;i++)
		{
			if (a[i][j]>max)
			{
				max=a[i][j];
				maxi=i;
				maxj=j;
			}
		}
		a[maxi][maxj]=0;
	}
	printf("\n");
	for (int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
			printf("%d ",a[i][j]);
			printf("\n");
	}
	getch();

}
Изображения
Тип файла: jpg Конс.jpg (62.8 Кб, 10 просмотров)
axel__ вне форума Ответить с цитированием
Старый 01.06.2015, 14:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
#include "stdio.h"
#include "conio.h"
#include "locale.h"
int main()
{
	setlocale(LC_ALL,"rus");
	int a[100][100],max[100],min[100],N;
	printf("Введите кол-во строк (кол-во столбцов) >");
	scanf("%d,",&N);
	printf("Введите элементы массива >");
	for (int i=0;i<N;i++)
	{
		for (int j=0;j<N;j++) {
			scanf("%d",&a[i][j]);
                        max[j]=(i==0 || a[i][j]>max[j])?a[i][j]:max[j];
                        min[j]=(i==0 || a[i][j]<min[j])?a[i][j]:min[j];
               }
	}
	
	printf("\n");
	for (int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++){
                        if(a[i][j]==max[j] || a[i][j]==min[j]) a[i][j]=0;
			printf("%d ",a[i][j]);
                }
		printf("\n");
	}
	getch();

}
Годится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.06.2015, 16:24   #3
axel__
Пользователь
 
Регистрация: 23.05.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
#include "stdio.h"
#include "conio.h"
#include "locale.h"
int main()
{
	setlocale(LC_ALL,"rus");
	int a[100][100],max[100],min[100],N;
	printf("Введите кол-во строк (кол-во столбцов) >");
	scanf("%d,",&N);
	printf("Введите элементы массива >");
	for (int i=0;i<N;i++)
	{
		for (int j=0;j<N;j++) {
			scanf("%d",&a[i][j]);
                        max[j]=(i==0 || a[i][j]>max[j])?a[i][j]:max[j];
                        min[j]=(i==0 || a[i][j]<min[j])?a[i][j]:min[j];
               }
	}
	
	printf("\n");
	for (int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++){
                        if(a[i][j]==max[j] || a[i][j]==min[j]) a[i][j]=0;
			printf("%d ",a[i][j]);
                }
		printf("\n");
	}
	getch();

}
Годится?
Да, огромное спасибо!!!
axel__ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде mockk Общие вопросы C/C++ 0 25.09.2013 11:26
ошибка в коде fygas1991 C# (си шарп) 1 04.02.2013 23:56
Ошибка в коде! sokolik-117845 Общие вопросы Delphi 1 10.04.2012 14:17
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58