Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
1
Cevap
1264
Tıklama
0
Öne Çıkarma
C++ Matriste en büyük değeri bulmada sorun.
K
16 yıl
Binbaşı
Konu Sahibi

Arkadaşlar yapmakta olduğum bir çalışma için boyutları girilen bir matrisi data dosyasından okuyacak ve her bir sütündaki mutlak değerce en büyük sayıyı bulup ekrana yazdıracak bir program gerekiyordu. Ben de bunu C++'da yazdım. Fakat gel gör ki program 3x3, 5x5 gibi küçük matrislerde sorunsuz çalışırken, bana asıl lazım olan 4000x6, 2000x6 gibi matrislerde son 10-15 değerden en büyüğünü yazmaya başladı. Yani hatalı çalışıyor. Programın kodu aşağıdaki gibi. Yardımcı olursanız işim çok kolaylaşacak:

 

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>


using namespace std;

int main(int argc, char *argv[])
{
cout << "MAX ABSOLUTE VALUE FINDER\n\n";
cout << "======================================================\n";
cout << "\n";
cout << "BU PROGRAM BOYUTLARI GIRILEN BIR MATRISIN\n";
cout << "HER BIR SUTUNUNDAKI MAX MUTLAK DEGERI VERIR\n\n";
cout << "\n";
cout << "======================================================\n\n\n";


float u[4000][25];
float absu[4000][25];

int n;
int m;
float max=0;

cout << "Satir sayisini giriniz\n" << endl;
cout << "El Centro icin = 4000" << endl;
cout << "Northridge icin = 2000\n" << endl;
cin >> n;

n=n+1;

cout << "\n";
cout << "\n";

cout << "Sutun sayisini giriniz\n" << endl;
cin >> m;
cout << "\n";
cout << "\n";

ifstream ifile;
ifile.open ("data.txt");

absu[1][2]=0;



for (int i=2; i<=n+1; i++)
{
for (int j=2; j<=m+1; j++)
{

ifile >> u[i][j];
cout << u[i][j] << "\t";
absu[i][j]=abs(u[i][j]);

}



cout << endl;

}

cout << "\n";
cout << "max degerler:\n";



for (int j=2; j<=m+1; j++)
{
for (int i=2; i<=n+1; i++)
{

if (absu[i-1][j] < absu[i][j])
{
max=absu[i][j];
}


}

cout << max << endl;

}



ifile.close ();



system("PAUSE");
return EXIT_SUCCESS;
}