Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
656
Tıklama
0
Öne Çıkarma
C++ Matrix Problemi ?
K
12 yıl (103 mesaj)
Çavuş
Konu Sahibi

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;
}



T
12 yıl (555 mesaj)
Çavuş

kardes dusundum de aklima gelen en iyi algoritma sanirim O(N^2 * logN) ile calisiyor. seninki O(N^3) mu? yazdigin koda bakmadim.


Bu mesaja 1 cevap geldi.
E
12 yıl (2632 mesaj)
Yüzbaşı

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];
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.