Răspuns :
#include <iostream>
#include <fstream>
#include <climits>
#include <string>
using namespace std;
//functie pentru a verifica daca element dat
//este maximum pe coloana
//functia are 4 argumente: matricea,dimensiunea matricei,pozitia testata
//si numarul coloanei
int este_maxim_coloana(int a[100][100],int dim,int poz,int col){
int i;
for(i=0;i<dim;i++){
//daca indicele este egal cu pozitia, sari peste pozitie
if(i==poz){
continue;
}
//daca exista cel putin un element mai mare decat cel de pe pozitie
//atunci nu poate fi maxim
if(a[i][col]>a[poz][col]){
return 0;
}
}
return 1;
}
int main(){
ifstream fim("matrice.in");
int i,j,n,a[100][100];
int pozitii_min[10],nr_pozitii_min,min;
fim>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fim>>a[i][j];
}
}
//ne apucam sa gasim valoarea minima pentru fiecare linie,
//determinam pozitiile minime, si apoi verificam daca sunt si maxime
//pe coloana
for(i=0;i<n;i++){
min=INT_MAX;
nr_pozitii_min=0;
for(j=0;j<n;j++){
//daca este mai mic decat minim
if(a[i][j]<min){
//minimul devine acea valoare
min=a[i][j];
//lungimea de pozitii de minim resetata la 1
nr_pozitii_min=1;
//prima valaore resetata la pozitia actuala
pozitii_min[0]=j;
}
//daca sunt egale, adauga la vectorul de pozitii
else if(a[i][j]==min){
pozitii_min[nr_pozitii_min]=j;
nr_pozitii_min++;
}
}
for(j=0;j<nr_pozitii_min;j++){
if(este_maxim_coloana(a,n,i,pozitii_min[j])==1){
cout<<"Element sa pe pozitiile: "<<i+1<<" "<<pozitii_min[j]+1<<" este "<<a[i][pozitii_min[j]]<<endl;
}
}
}
return 0;
}
#include <fstream>
#include <climits>
#include <string>
using namespace std;
//functie pentru a verifica daca element dat
//este maximum pe coloana
//functia are 4 argumente: matricea,dimensiunea matricei,pozitia testata
//si numarul coloanei
int este_maxim_coloana(int a[100][100],int dim,int poz,int col){
int i;
for(i=0;i<dim;i++){
//daca indicele este egal cu pozitia, sari peste pozitie
if(i==poz){
continue;
}
//daca exista cel putin un element mai mare decat cel de pe pozitie
//atunci nu poate fi maxim
if(a[i][col]>a[poz][col]){
return 0;
}
}
return 1;
}
int main(){
ifstream fim("matrice.in");
int i,j,n,a[100][100];
int pozitii_min[10],nr_pozitii_min,min;
fim>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fim>>a[i][j];
}
}
//ne apucam sa gasim valoarea minima pentru fiecare linie,
//determinam pozitiile minime, si apoi verificam daca sunt si maxime
//pe coloana
for(i=0;i<n;i++){
min=INT_MAX;
nr_pozitii_min=0;
for(j=0;j<n;j++){
//daca este mai mic decat minim
if(a[i][j]<min){
//minimul devine acea valoare
min=a[i][j];
//lungimea de pozitii de minim resetata la 1
nr_pozitii_min=1;
//prima valaore resetata la pozitia actuala
pozitii_min[0]=j;
}
//daca sunt egale, adauga la vectorul de pozitii
else if(a[i][j]==min){
pozitii_min[nr_pozitii_min]=j;
nr_pozitii_min++;
}
}
for(j=0;j<nr_pozitii_min;j++){
if(este_maxim_coloana(a,n,i,pozitii_min[j])==1){
cout<<"Element sa pe pozitiile: "<<i+1<<" "<<pozitii_min[j]+1<<" este "<<a[i][pozitii_min[j]]<<endl;
}
}
}
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!