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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2011, 15:21   #1
Lanka1
Новичок
Джуниор
 
Регистрация: 10.02.2011
Сообщений: 9
По умолчанию MV C++.Задача на двумерный массив

Написать функцию для удаления строки из двумерного массива. Строки, оставшиеся должны быть расположены плотно, недостающие элементы заменяются 0. С помощью разработанных функций исключить из массива строки с номерами от А до В.

Написала код что б заменяло именно нулями,кто сможет по этому коду,как перенести эту строку вниз?
Код:
#include <iostream.h>
#include <math.h>
#include <windows.h>

void main()
{
	float A[200][200];
	int n,m,i,j,s;
	char str[30];

	CharToOem("Введите количество строк массива n=",str);
	cout<<str;
	cin>>n;

	CharToOem("Введите количество столбцов массива m=",str);
	cout<<str;
	cin>>m;

	CharToOem("Введите значения элементов массива",str);
	cout<<str<<'\n';
	for (i=0; i<n; i++)
		for (j=0; j<m; j++)
		{ 
			cout<<"A["<<i<<"]["<<j<<"]=";
			cin>>A[i][j];
		}
	cout<<"\n";
	for (i=0; i<n; i++)
	{
		for (j=0; j<m; j++)
		cout<<A[i][j]<<'\t';
		cout<<"\n";
	}
	cout<<"\n";


	CharToOem("Введите строку которую необходимо удалить:",str);
	cout<<str;
	cin>>s;
	s=s-1;

	for (i=0; i<n; i++)
	{
		for (j=0; j<m; j++)
		{
			if (i==s)
				A[s][j]=0;

		}
	}

	for (i=0; i<n; i++)
	{
		for (j=0; j<m; j++)
		cout<<A[i][j]<<'\t';
		cout<<"\n";
	}
	cout<<"\n";
}
Lanka1 вне форума Ответить с цитированием
Старый 12.02.2011, 18:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Даю подсказку:
Код:
// dfgfdg.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"

int a[5][5];
int i,j,k;

void Шринковка(int x){
	int e=0;
 	for(int i=0;i<5;i++){
		if (x!=i) {
		 for(int j=0;j<5;j++)a[e][j]=a[i][j];
		 e++;
		}
	}
	k=e;
}

int _tmain(int argc, _TCHAR* argv[])
{
	// Вводим массив
	for(i=0;i<5;i++){
		for(j=0;j<5;j++){
			a[i][j]=i*j;printf("%d\t",a[i][j]);
		}; printf("\n");
	}; printf("\n");
	k=5;
	Шринковка(2); //Удаляем третью строку

	// Выводим массив
	for(i=0;i<k;i++){
		for(j=0;j<5;j++){
			printf("%d\t",a[i][j]);
		}; printf("\n");
	}

	getchar();
	return 0;
}
Это удаление строки из массива с подтяжкой лица остальных строк
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2011, 14:14   #3
Lanka1
Новичок
Джуниор
 
Регистрация: 10.02.2011
Сообщений: 9
По умолчанию

а что за ошибку выдает?
d:\1234\main.cpp(4) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Lanka1 вне форума Ответить с цитированием
Старый 13.02.2011, 14:22   #4
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Код:
#include <stdio.h>
int a[5][5];
int i,j,k;

void Шринковка(int x){
	int e=0;
 	for(int i=0;i<5;i++){
		if (x!=i) {
		 for(int j=0;j<5;j++)a[e][j]=a[i][j];
		 e++;
		}
	}
	k=e;
}

int main()
{
	// Вводим массив
	for(i=0;i<5;i++){
		for(j=0;j<5;j++){
			a[i][j]=i*j;printf("%d\t",a[i][j]);
		}; printf("\n");
	}; printf("\n");
	k=5;
	Шринковка(2); //Удаляем третью строку

	// Выводим массив
	for(i=0;i<k;i++){
		for(j=0;j<5;j++){
			printf("%d\t",a[i][j]);
		}; printf("\n");
	}

	getchar();
	return 0;
}

Последний раз редактировалось CepbIu; 13.02.2011 в 14:24.
CepbIu вне форума Ответить с цитированием
Старый 13.02.2011, 14:45   #5
Lanka1
Новичок
Джуниор
 
Регистрация: 10.02.2011
Сообщений: 9
По умолчанию

а теперь появилось 20 ошибок типа
D:\1234\main.cpp(5) : error C2018: unknown character '0xd8' - напротив void Шринковка(int x)

и две D:\1234\main.cpp(5) : error C2199: syntax error : found 'void (' at global scope (was a declaration intended?)
D:\1234\main.cpp(6) : error C2447: missing function header (old-style formal list?)
Lanka1 вне форума Ответить с цитированием
Старый 13.02.2011, 14:58   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Lanka1
Дело в том что я это в VS писал, у него есть свои особенности. Переименуй Шринковка по аглицки это как минимум.
Может твой компиль не воспринимает русский язык
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2011, 15:05   #7
Lanka1
Новичок
Джуниор
 
Регистрация: 10.02.2011
Сообщений: 9
По умолчанию

это не совсем то,что надо.я писала сверху код,вот мне к ниму надо дописать,что б та строка которую мы там заменяем нулями перемещалась вниз самый ,а остальные были плотно расположены..тоесть поднялись на ее место.
вот как-то так.
Lanka1 вне форума Ответить с цитированием
Старый 13.02.2011, 15:59   #8
CepbIu
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Lanka1 Посмотреть сообщение
это не совсем то,что надо.я писала сверху код,вот мне к ниму надо дописать,что б та строка которую мы там заменяем нулями перемещалась вниз самый ,а остальные были плотно расположены..тоесть поднялись на ее место.
вот как-то так.
совсем думать не хочешь...
Код:
for ( ... ) {
 temp = A[i][m];
 A[i][m] = A[i][n];
 A[i][n] = temp;
}
m,n меняются местами
i - счётчик

или используй код который тебе не подошёл, и сама дописывай строку

Последний раз редактировалось CepbIu; 13.02.2011 в 16:03.
CepbIu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив. Задача. Elabrion Паскаль, Turbo Pascal, PascalABC.NET 8 15.01.2011 18:00
задача на двумерный массив ArchiS Помощь студентам 7 20.12.2010 22:54
Задача на двумерный массив. С++ synthetic rabbit Помощь студентам 1 11.01.2010 08:32
Задача на двумерный массив maliyusha Паскаль, Turbo Pascal, PascalABC.NET 5 30.12.2008 07:42