Informatică, întrebare adresată de cosmaandra2000, 9 ani în urmă

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.

Anexe:

blindseeker90: ca sa stii cum evoluez
cosmaandra2000: ok, multumesc
cosmaandra2000: deci ? intreb pentru ca am nevoie de ele pana la ora 13
blindseeker90: am terminat intrebarile
blindseeker90: acum le testez pe fiecare in parte
cosmaandra2000: nu trebuie, lasa-le asa te rog. Trebuie doar sa le am scrise pe caiet
cosmaandra2000: poti face poza la ex ? Nu e nevoie sa le testezi. Trebuie doar sa le am, sa le transcriu
cosmaandra2000: nu mai am timp sa le scriu...
blindseeker90: imi pare rau, nu am citit mesajele tale
cosmaandra2000: multumesc. pana la urma am scris

Răspunsuri la întrebare

Răspuns de blindseeker90
1
#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;
}
Alte întrebări interesante