Çözüldü C++ Kodundaki Hata ne?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

KAANYTD

Femtopat
Katılım
28 Mart 2021
Mesajlar
66
Daha fazla  
Cinsiyet
Erkek
C++:
#include<iostream>


Using namespace std;


İnt main(){

Setlocale(LC_ALL,"Turkish");


İnt satir, sutun, matris[satir][sutun],enb;


Cout<<"Matris için satır sayısı giriniz = ";

Cin>>satir;

Cout<<"Matris için sütun sayısı giriniz = ";

Cin>>sutun;


For(int i = 0; i<satir; i++){

For(int j = 0; j<sutun; j++){

Cout<<i<<".satır "<<j<<". Sütun için değer giriniz = ";

Cin>>matris[j];

}

}

Cout<<endl;

For(int i = 0; i<satir; i++){

For(int j = 0; j<sutun; j++){

Cout<<" "<<matris[j];

}

Cout<<endl;

}

Cout<<endl;

Enb = matris[0][0];

For(int i = 0; i<satir; i++){

For(int j = 0; j<sutun; j++){

İf(enb<matris[j]){

Enb = matris[j];

Break;

}

}

}

Cout<<"Matris içerisindeki en büyük değer = "<<enb;

}
 
Çözüm
Dinamik olarak yer alman gerekiyor. Veya matris boyutlarını bilmen gerekiyor. C++'ta std::array kullanılması tavsiye edilir. Boyutunu biliyorsan onu kullanmanı tavsiye ederim. İlk yorumlu olan o.
İkinci olan ise senin yapmaya çalıştığın ki olmaz.
Üçüncü olan ise vector. Onlar dinamik olarak alınıyor. push_back metodu ile eleman eklersin istersen.
Benim yaptığım ise el ile yer almak. En sonda bıraktığımı unutma.

Bu arada koda çok bakmadım ama en büyüğü bulmuyor gibi.
Ve son olarak matrislerde eleman erişmeyi öğrenmen lazım.

Kod:
#include<iostream>
#include <vector>

using namespace std;

int main() {
    setlocale(LC_ALL, "Turkish");

    auto satir{ 0 };
    auto sutun{ 0 };
    auto enb{ 0 };
    //array<array<int, satir>, sutun> matris;
    //int matris[satir][sutun];
    //vector<vector<int>> matris;

    cout << "Matris için satır sayısı giriniz: ";
    cin >> satir;

    cout << "Matris için sütun sayısı giriniz: ";
    cin >> sutun;
   
    int** matris = new int*[satir];
    for (auto i{ 0 }; i < satir; ++i) {
        matris[i] = new int[sutun];
    }

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << i << ".satır " << j << ". Sütun için değer giriniz = ";
            cin >> matris[i][j];
        }
    }

    cout << endl;

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << " " << matris[i][j];
        }
        cout << endl;
    }

    cout << endl;
    enb = matris[0][0];

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            if (enb < matris[i][j]) {
                enb = matris[i][j];
                break;
            }
        }
    }

    cout << "Matris içerisindeki en büyük değer = " << enb;

    for (auto i{ 0 }; i < satir; ++i) {
        delete[] matris[i];
    }
    delete[] matris;

    return 0;
}
Dostlar düzeltmeden dolayı ilk harfler büyük, anlarsınız diye düşünmüştüm. Tekrar atayım kodu.
Kod:
#include<iostream>


using namespace std;


int main(){

setlocale(LC_ALL,"Turkish");


int satir,sutun,matris[satir][sutun],enb;


cout<<"Matris için satır sayısı giriniz = ";

cin>>satir;

cout<<"Matris için sütun sayısı giriniz = ";

cin>>sutun;


for(int i=0;i<satir;i++){

for(int j=0;j<sutun;j++){

cout<<i<<".satır "<<j<<". sütun için değer giriniz = ";

cin>>matris[j];

}

}

cout<<endl;

/for(int i=0;i<satir;i++){

for(int j=0;j<sutun;j++){

cout<<" "<<matris[j];

}

cout<<endl;

}/

cout<<endl;

enb=matris[0][0];

for(int i=0;i<satir;i++){

for(int j=0;j<sutun;j++){

if(enb<matris[j]){

enb=matris[j];

break;

}

}

}

cout<<"Matris içerisindeki en büyük değer = "<<enb;

}
 
Dinamik olarak yer alman gerekiyor. Veya matris boyutlarını bilmen gerekiyor. C++'ta std::array kullanılması tavsiye edilir. Boyutunu biliyorsan onu kullanmanı tavsiye ederim. İlk yorumlu olan o.
İkinci olan ise senin yapmaya çalıştığın ki olmaz.
Üçüncü olan ise vector. Onlar dinamik olarak alınıyor. push_back metodu ile eleman eklersin istersen.
Benim yaptığım ise el ile yer almak. En sonda bıraktığımı unutma.

Bu arada koda çok bakmadım ama en büyüğü bulmuyor gibi.
Ve son olarak matrislerde eleman erişmeyi öğrenmen lazım.

Kod:
#include<iostream>
#include <vector>

using namespace std;

int main() {
    setlocale(LC_ALL, "Turkish");

    auto satir{ 0 };
    auto sutun{ 0 };
    auto enb{ 0 };
    //array<array<int, satir>, sutun> matris;
    //int matris[satir][sutun];
    //vector<vector<int>> matris;

    cout << "Matris için satır sayısı giriniz: ";
    cin >> satir;

    cout << "Matris için sütun sayısı giriniz: ";
    cin >> sutun;
   
    int** matris = new int*[satir];
    for (auto i{ 0 }; i < satir; ++i) {
        matris[i] = new int[sutun];
    }

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << i << ".satır " << j << ". Sütun için değer giriniz = ";
            cin >> matris[i][j];
        }
    }

    cout << endl;

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << " " << matris[i][j];
        }
        cout << endl;
    }

    cout << endl;
    enb = matris[0][0];

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            if (enb < matris[i][j]) {
                enb = matris[i][j];
                break;
            }
        }
    }

    cout << "Matris içerisindeki en büyük değer = " << enb;

    for (auto i{ 0 }; i < satir; ++i) {
        delete[] matris[i];
    }
    delete[] matris;

    return 0;
}
 
Çözüm
Dinamik olarak yer alman gerekiyor. Veya matris boyutlarını bilmen gerekiyor. C++'ta std::array kullanılması tavsiye edilir. Boyutunu biliyorsan onu kullanmanı tavsiye ederim. İlk yorumlu olan o.
İkinci olan ise senin yapmaya çalıştığın ki olmaz.
Üçüncü olan ise vector. Onlar dinamik olarak alınıyor. push_back metodu ile eleman eklersin istersen.
Benim yaptığım ise el ile yer almak. En sonda bıraktığımı unutma.

Bu arada koda çok bakmadım ama en büyüğü bulmuyor gibi.
Ve son olarak matrislerde eleman erişmeyi öğrenmen lazım.

Kod:
#include<iostream>
#include <vector>

using namespace std;

int main() {
    setlocale(LC_ALL, "Turkish");

    auto satir{ 0 };
    auto sutun{ 0 };
    auto enb{ 0 };
    //array<array<int, satir>, sutun> matris;
    //int matris[satir][sutun];
    //vector<vector<int>> matris;

    cout << "Matris için satır sayısı giriniz: ";
    cin >> satir;

    cout << "Matris için sütun sayısı giriniz: ";
    cin >> sutun;

    int** matris = new int*[satir];
    for (auto i{ 0 }; i < satir; ++i) {
        matris[i] = new int[sutun];
    }

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << i << ".satır " << j << ". Sütun için değer giriniz = ";
            cin >> matris[i][j];
        }
    }

    cout << endl;

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            cout << " " << matris[i][j];
        }
        cout << endl;
    }

    cout << endl;
    enb = matris[0][0];

    for (auto i{ 0 }; i < satir; i++) {
        for (auto j{ 0 }; j < sutun; j++) {
            if (enb < matris[i][j]) {
                enb = matris[i][j];
                break;
            }
        }
    }

    cout << "Matris içerisindeki en büyük değer = " << enb;

    for (auto i{ 0 }; i < satir; ++i) {
        delete[] matris[i];
    }
    delete[] matris;

    return 0;
}
Evet, en büyüğü bulmuyor. Son atadığım değeri yazdırıyor. Yardımcı olduğun için teşekkürler. Yaşım daha 16, öğrenecek çok şey var yazdıklarını araştırayım.
 

Geri
Yukarı