Informatică, întrebare adresată de razvan1292, 8 ani în urmă

sa se faca suma elementelor din matrice fara primele n cele mai mici elemente. n fiind citit de la tastatura ​


andrei750238: Acestea sunt toate datele problemei ? Nu se specifica nimic despre pozitia celor n elemente ?
andrei750238: Ce limbaj de programare doresti ?
razvan1292: c++
razvan1292: sortarea mateicei o am eu
razvan1292: daca te ajuta
andrei750238: Ai invatat sa lucrezi cu functii ? Sau cu pointeri ?
razvan1292: nu
andrei750238: Minunat. O sa am ceva de munca la el atunci.
razvan1292: aștept cu drag răspunsul

Răspunsuri la întrebare

Răspuns de andrei750238
5

#include <iostream>

using namespace std;

float a[100][100]; //Matricea principala

bool x[100][100]; //Matricea caracteristica

int main(){

unsigned ncol, nlin,i,j,n;

//Citire dimensiuni

cout << "Introduceti dimensiuni : ";

cin >> nlin >> ncol;

//Citire matrice

cout << "Introduceti matricea : \n";

for(i=0;i<nlin;i++){

 for(j=0;j<ncol;j++) cin >> a[i][j];

}

//Citire n

cout << "Introduceti n:";

cin >> n;

//Marcarea celor n elemente pentru ignorare

while(n){

 int poz=-1;

 //Determinarea pozitiei primului element nemarcat

 for(i=0;i<nlin*ncol;i++){

  if(x[i/nlin][i%nlin]==0){

   poz=i;

   break;

  }

 }

 //Determinarea pozitiei minimului

 for(i=0;i<nlin*ncol;i++){

  if(x[i/nlin][i%nlin]==0 && a[i/nlin][i%nlin] < a[poz/nlin][poz%nlin]){

   poz=i;

  }

 }

 //Marcare element minim

 x[poz/nlin][poz%nlin] = 1;

 //Decrementare numar de elemente ignorate

 n--;

}

//Determinare suma pentru elemente neingnorate

float s=0;

for(i=0;i<nlin;i++){

 for(j=0;j<ncol;j++){

  if(!x[i][j])s+=a[i][j];

 }

}

//Afisare rezultat

cout << "Suma : " <<  s;

}

Anexe:

andrei750238: Nu merge. Mai bine lipeste codul pe pastebin si pune link aici.
razvan1292: sunt plecat și am doar o poza cu codul
andrei750238: imgur atunci. Sau pui intrebare nouă.
razvan1292: http://imgur.com/a/5DV0nGZ
razvan1292: si daca de la codul asta ai cum sa faci sa mi ia cele mai mici n elemente
andrei750238: Pai ai matricea ordonata crescator, incepi sa faci suma elementelor incepand de la al n-lea element. Stii ca asta se afla pe linia n/l si pe coloana n%i.
andrei750238: https://pastebin.com/fgML33cE
andrei750238: Partea de sus e programul tau (am folosit swap() in loc de interschimbarea cu aux dar e aceasi chestie).
andrei750238: Si de acum copiaza codul undeva daca poti, nu mai trimite poza.
razvan1292: salut, ai disocrd? as avea niste intrebari legate de alte probleme
Alte întrebări interesante