Tablica C++

0

Witam chcę napisać program który tworzy tablicę dwuwymiarową maksymalnie 10x10 później podaje numer wiersza oraz kolumny którą chcę tak jakby usunąć z tablicy i uzyskać nową tablicę taką jak poprzednia tylko bez tego wiersza i kolumny. Przykładowo mam tablicę 4x4 po wykonaniu programu ma powstać 3x3.
Taki kod udało mi się napisać ale niestety coś jest źle:
ad oraz bd są to te wiersze i kolumny które chcę usunąć.

#include <iostream>
using namespace std;
int main (){
	int tab[10][10],tab1[10][10];
	int n=4,ad=2,bd=2,i=0,j=0,c=0; // wielkosc tablicy
	
	for (int a=0;a<n;a++){                   //wypelnienie tablicy
		for (int b=0; b<n; b++){
			tab[a][b]=c;
			c++;
		}
	}
	
	for (int a=0;a<n;a++){                  //wyswietlenie niezmienionej tablicy
		for (int b=0; b<n; b++){
			cout<<tab[a][b]<<" ";
		}
		cout<< endl;
	}
	
	
	for (int a=0;a<n;a++){                                              //usuniecie wiersza & kolumny
		for (int b=0;b<n;b++){
			if (ad!=a){	
				if (bd!=b){
					tab1[i][j]=tab[a][b];	
					j++;	
				}
				i++;
			}	
		}
	}


	cout<<endl<<endl;                                  //wyswietlenie zmienionej tablicy
	for (int a=0;a<n-1;a++){
		for (int b=0; b<n-1; b++){
			cout<<tab1[a][b]<<" ";
		}
		cout<< endl;
	}
} 
0
	for (int a = 0; a < n ; a++){
		if(a == ad) {
			continue;
		}
		for (int b = 0 ; b < n ; b++) {
			if(b == bd) {
				continue;
			}
			tab1[i][j] = tab[a][b];
			++j;
		}
		j = 0;
		++i;
	}
0

Dzięki Działa wszystko.

0

Robię większy program który ma liczyć macierz odwrotną brakowało mi tylko tego elementu. Tak wiem dlaczego.

2
for(int y=0;y<n;++y) for(int x=0;x<n;++x) tab1[y-(y>ad)][x-(x>bd)]=tab[y][x];
0

_13th_Dragon twój algorytm okazał się lepszy ponieważ jeśli tamten wyżej wrzuciłem do funkcji i wywołałem funkcję więcej niż raz źle liczył.

0

Możesz mi wytłumaczyć jak działa :

 tab1[y-(y>ad)][x-(x>bd)]

bo nie bardzo rozumiem

0

wartości logiczne są niejawnie (lecz szybko, szybciej niż skok) w C/C++ konwertowane do int na zasadzie:

false -> 0
true -> 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1