👤

Puteti sa imi rezolvati problemele de pe aceasta fisa ? Nu am nevoie de tot programul, doar de la primul "for" incolo. Va rog frumos, am mare nevoie.

Puteti Sa Imi Rezolvati Problemele De Pe Aceasta Fisa Nu Am Nevoie De Tot Programul Doar De La Primul For Incolo Va Rog Frumos Am Mare Nevoie class=

Răspuns :

#include <iostream>
#include <fstream>
#include <limits.h>
#include <cmath>
using namespace std;

int main(){
int a[100][100],i,j,m,n,min=INT_MAX,max=INT_MIN,p=1,s;
ifstream f("matrice.txt");
f>>n>>m;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
f>>a[i][j];
}
}

//4
//determin mai intai min si max
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<min){
min=a[i][j];

}
if(a[i][j]>max){
max=a[i][j];
}
}
}
cout<<"Matrice cu valori minime inlocuite cu max:\n";
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]==min){
cout<<max<<" ";
}
else{
cout<<a[i][j]<<" ";
}
}
cout<<endl;
}
//5
for(i=0;i<n;i++){
for(j=1;j<m;j=j+2){
if(a[i][j]%2!=0){
p*=a[i][j];
}
}
}
while(abs(p)>10){
p/=10;
}
cout<<"Prima cifra a produsului cerut:"<<abs(p)<<endl;
//6
cout<<"Matricea cu liniile pare inversate:\n";
for(i=0;i<n;i++){
if((i+1)%2==1){
for(j=0;j<m;j++){
cout<<a[i][j]<<" ";
}

    }
    else{
     for(j=m-1;j>=0;j--){
     cout<<a[i][j]<<" ";
}
}
     cout<<endl;
}
//7
cout<<"Elemente cu suma indicilor egala cu valoarea sunt:\n";

for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(i+1+j+1==a[i][j]){
cout<<"("<<i+1<<","<<j+1<<") ";
}
}
}
cout<<endl;
//8
cout<<"Sume componente fiecare coloana:\n";
for(j=0;j<m;j++){
s=0;
for(i=0;i<n;i++){
s+=a[i][j];
}
cout<<"Col "<<j+1<<":"<<s<<" ";
}
cout<<endl;
//9
int ord_linie=0;
max=INT_MIN;
for(i=0;i<n;i++){
s=0;
for(j=0;j<m;j++){
s+=a[i][j];
}
if(s>max){
max=s;
ord_linie=i+1;
}
}
cout<<"Linia cu suma comp maxima este:"<<ord_linie<<endl;
//10
int ord_col=0;
min=INT_MAX;
for(j=0;j<m;j++){
p=1;
for(i=0;i<n;i++){
p*=a[i][j];
}
if(p<min){
min=p;
ord_col=j+1;
}
}
cout<<"coloana cu produsul comp minima este:"<<ord_col<<endl;
//11
int X,Y,t;

cout<<"Introduceti liniile ce trebuie interschimbate:";
cin>>X>>Y;
cout<<"Matricea cu liniile interschimbate: ";
for(i=0;i<n;i++){
if(i==X-1){
t=Y-1;
}
else if(i==Y-1){
t=X-1;
}
else{
t=i;
}
for(j=0;j<m;j++){
cout<<a[t][j]<<" ";
}
cout<<endl;
}
//12
for(i=0;i<n;i++){

for(j=0;j<m;j++){
if(j==0){
t=m-1;
}
else if(j==m-1){
t=0;
}
else{
t=j;
}
cout<<a[i][t]<<" ";
}
cout<<endl;
}
//13
int nr,k,este_prim;
cout<<"Coloane cu nr de numere prime:\n";
for(j=0;j<m;j++){
nr=0;
for(i=0;i<n;i++){
este_prim=1;
if(abs(a[i][j])==1||a[i][j]==0){
este_prim=0;
}
else{

for(k=2;k<=sqrt(a[i][j]);k++){
if(a[i][j]%k==0){
este_prim=0;
}
}
}
if(este_prim==1){
nr++;
}
}
cout<<"Coloana: "<<j+1<<":"<<nr<<" ";
}
cout<<endl;
//14
int multiple_linii[100],multiple_coloane[100],nr_linii,nr_coloane;
max=INT_MIN;

for(i=0;i<n;i++){
nr=0;
for(j=0;j<m;j++){
if(((int)a[i][j]-sqrt(a[i][j]))==0){
nr++;
}
}
if(nr>max){
max=nr;
nr_linii=0;
multiple_linii[nr_linii]=i+1;
}
else if(nr==max){
nr_linii++;
multiple_linii[nr_linii]=i+1;
}

}
if(nr_linii==0){
cout<<"Linia cu cele mai multe patrate perfecte sunt: "<<multiple_linii[0]<<" cu "<<max<<" patrate perfecte\n";
}
else{
cout<<"Liniile cu cele mai multe patrate perfecte sunt:";
for(i=0;i<=nr_linii;i++){
cout<<multiple_linii[i]<<" ";
}
}
//15
int sume_coloane[100],nr_sume;
for(j=0;j<m;j++){
sume_coloane[j]=0;
for(i=0;i<n;i++){
sume_coloane[j]+=a[i][j];
}
}
cout<<"Linii cu sume identice: ";
for(i=0;i<m-1;i++){
for(j=i+1;j<m;j++){
if(sume_coloane[j]==sume_coloane[i]){
cout<<"Suma "<<sume_coloane[i]<<" coloanele "<<i+1<<" si "<<j+1<<endl;
}
}
}

//16
double medie;
//aflam media aritmetica a numerelor
s=0;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
s+=a[i][j];
}
}
medie=(double)s/(n*m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(a[i][j]<medie){
cout<<"a["<<i+1<<"]["<<j+1<<"]="<<a[i][j]<<" ";
}
}
}
//17
cout<<"Introduceti linia care sa fie eliminata:";
cin>>X;
for(i=0;i<n;i++){
if(i==X-1){
continue;
}
for(j=0;j<m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}

return 0;
}