Şimdi Ara

C++ Matrix Problemi ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
545
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaslar bir odevde takili kaldim cozemiyorum yardim ederseniz sevinirim.

    1)Kullanicidan boyutlari ve elementleri girilmek uzere bir matrix yapiniz. Program matrix elemanlarinin herhangi birinin her sirada var olup olmadigini kontrol edecek. Eger oyle bir sayi varsa bunu yazdirin.

    buna uygun algoritma bulmadaim bir seyler yazmaya calistim ama aklima gelmiyor. Mesela sira sonuna kadar okutup sonra diger sirada olup olmadigini nasil bakicaz.
    aklimdaki yontem olk siradaki elementleri okuyup onlarin diger siralarda oldugunu kontrol etmek ama cok efektif yontem degil bide sira sonlarina gelince diger siraya nasil atliyacagimi bulamadim.

    #include <iostream> 
    #include <cstring>
    using namespace std;

    int main()
    {
    int n,m,i,j,a[10][10],element,flag=true,b[10];
    cin>>n>>m;
    for(i=0; i<n; i++)
    for(j=0; j<m; j++)
    cin>>a[i][j];


    for(i=0; i<n; i++)
    {
    for(j=0; j<m; j++)
    {
    if(j<=m-1){
    if(a[0][j]!=a[i+1][j])
    {flag=false;
    break;
    }
    else
    i++;

    }
    }
    }

    if(!flag)
    cout<<"WRONG"<<endl;
    if(flag)
    cout<<"ELEMENT: "<<a[0][j]<<endl;

    for(i=0; i<n; i++)
    {
    for(j=0; j<m; j++)
    cout<<" "<<a[i][j];
    cout<<endl;
    }


    return 0;
    }







  • kardes dusundum de aklima gelen en iyi algoritma sanirim O(N^2 * logN) ile calisiyor. seninki O(N^3) mu? yazdigin koda bakmadim.
  • Derste yazdığım bir program.


    #include<stdio.h>

    int Sirala(int *);

    int main()
    {
    int C[9];
    int A[256][256],B[253][253],n,m;
    printf("Matrisinizin kaca kaclik olacagini giriniz : \nSatir : ");
    scanf("%d",&n);
    printf("Sutun : ");
    scanf("%d",&m);
    printf("%d adet sayi gireceksiniz :\n",n*m);
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
    {
    printf("A[%d][%d] elemanini giriniz : ",i+1,j+1);
    scanf("%d",&A[j]);
    }
    }

    for(int i=0;i<n-2;i++)
    {
    for(int j=0;j<m-2;j++)
    {
    int u=0;
    for(int k=0;k<3;k++)
    {
    for(int l=0;l<3;l++)
    {
    C = A[i+k][j+l];
    u++;
    }
    }

    B[j] = Sirala(C);
    }
    }

    printf("\nA matrisi :\n\n");
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
    {
    printf("%d\t",A[j]);
    }
    printf("\n\n");
    }

    printf("\nB matrisi :\n\n");
    for(int i=0;i<n-2;i++)
    {
    for(int j=0;j<m-2;j++)
    {
    printf("%d\t",B[j]);
    }
    printf("\n\n");
    }
    }

    int Sirala(int *matris)
    {
    int k = 9,b;
    for(int i=0;i<9;i++)
    {
    k--;
    for(int j=0;j<k;j++)
    {
    if(matris[j+1]<matris[j])
    {
    b = matris[j];
    matris[j] = matris[j+1];
    matris[j+1] = b;
    }
    }
    }
    return matris[4];
    }




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.