C öğrenmeye çalışan bir kardeşiniz olarak yardımınıza ihtiyacım var. Değerleri dışardan atanacak bir kare matrisin( 2 veya 3 boyutlu) toplamı en büyük olan satırının ve sütünün
değerini hesaplayan bir kod yazmaya çalışıyorum.Örnek vermek gerekirse 1 0 1 matrisi satırları için (1+0+1, 2+3+4, 0+8+3)=max(2,9,11)=11 gibi. 2 3 4 0 8 3
#include<stdio.h> int main(void)
{ int i,j,n; int array_matris[ı][j];
printf("Kare Matrisin Boyutunu Belirtiniz(2 veya 3):\n"); scanf("%d",&n);
Matrise değer atanması için yukardaki kodu yazdım ama exe dosyasını çalıştırdığım zaman program çalışmayı durdurdu şeklinde hata alıyorum.Hatam nerde ve yukarda bahsettiğim hesabı yapmak için nasıl devam etmeliyim?
< Bu mesaj bu kişi tarafından değiştirildi TechNopaT -- 9 Mayıs 2013; 23:50:57 >
Matrisi dantımlı olmayan değerlerle tenımlamaya çalışıyosun int i,j,n; int array_matris[ı][j]; burda i ve j nin ilk değeri yok, ayrıca array_matris[ı][j] bırdaki ı, i olacak
else printf("HATA: Girilen matris boyutu tanimli degildir ! 2 veya 3 boyutlu matris seciniz\n\a");
getchar( ); getchar( ); return 0;
}
Hocam sağolasın ilk dediğin hatayı düzelttim. Parantez içindeki "i" leri mecburen "ı" olarak yazdım yoksa gözükmüyor forumda.
Satırları ve sütunları (kendi aralarında) toplatıp ,büyük olanı yazdırmak için nasıl devam etmem lazım ??
örnek olarak 3 e 3 bir matrisin olduğunu varsayıyorum.
i:Satır Sayısı j:Sütun Sayısı
toplam = 0;
for i =1:3 ( sen bunu i < 4 ;i++ şeklinde ifade edeblrsn ) ya da parametrik olması için 4 yerine kullanıcının klavyeden girdiği sayınının (N) bir fazlası dersin.
for j=1:3
toplam = toplam + matris[ı][j];
end
x[ı] = toplam; toplam = 0; end
kod sırasyla (1,1) (1,2) (1,3) ü toplayıp 3 elemanlı x matrisine 1.indeks olarak atar. daha sonra (2,1) (2,2) (2,3) toplayıp x2 (3,1)(3,2)(3,3) toplayıp x3 e atar.
daha sonra elindeki 3 elemanı maximum işlemine sokup en büyüğü elde edebilirsin.
bu işlem satırlar için yapılabilir.Sütünlar için de for döngülerinin yerini değiştirirsin.ozmn da (1,1) (2,1) (3,1) e bakar...
format attığım için program yüklü değil pek kod yazıp derleyemiyorum ama bu vb mantı işini görür diye düşünüyorum
eclipse kurup yazdım.Java ile yazdım ama sen buradan mantığını çok rahat anlarsın diye düşünüyorum... max bulma javada hazır fonksiyonlarla yapıldığı için çok basit c de bu var mıydı yok muydu tam hatrlamıyorm ama max bulma ile ilgili arkadaşların dediği gibi algoritmalar google da mevcut.
import java.util.Scanner; public class dnme {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub
int i = 3; int j = 3; int toplam=0; int max = 0; int [] x_dizi = new int[ı]; int [] y_dizi = new int[ı]; int [][] dizi = new int[ı][j]; Scanner input = new Scanner(System.in);
değerini hesaplayan bir kod yazmaya çalışıyorum.Örnek vermek gerekirse 1 0 1 matrisi satırları için (1+0+1, 2+3+4, 0+8+3)=max(2,9,11)=11 gibi.
2 3 4
0 8 3
#include<stdio.h>
int main(void)
{
int i,j,n;
int array_matris[ı][j];
printf("Kare Matrisin Boyutunu Belirtiniz(2 veya 3):\n");
scanf("%d",&n);
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++){
printf( "%d. satır %d sütünün değerini giriniz \n",i,j );
scanf( "%d", &array_matris [ı][j] );
}
getchar( );
return 0;
}
Matrise değer atanması için yukardaki kodu yazdım ama exe dosyasını çalıştırdığım zaman program çalışmayı durdurdu şeklinde hata alıyorum.Hatam nerde ve yukarda bahsettiğim hesabı yapmak için nasıl devam etmeliyim?
< Bu mesaj bu kişi tarafından değiştirildi TechNopaT -- 9 Mayıs 2013; 23:50:57 >