Şimdi Ara

C ile ilgili yardım !

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
0
Favori
652
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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);

    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 >







  • 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
  • #include<stdio.h>
    int main(void)

    {
    int i,j,n;
    int array_matris[n][n];


    printf("Kare matrisin boyutunu belirtiniz (2 veya 3):\n");
    scanf("%d",&n);


    if( n == 2 || n == 3)

    for(i=0;i<n;i++){
    for(j=0;j<n;j++){


    printf( "%d. satir %d sutunun degerini giriniz \n",(i+1),(j+1) );
    scanf( "%d", &array_matris[ı][j] );


    getchar( );

    }
    }

    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 ??




  • Bunu google'da, "en büyük sayı bulma algoritması" gibi anahtar kelimelerle ararsanız karşınıza bir sürü sıralama algoritması örneği gelecektir.
  • quote:

    Orijinalden alıntı: TechNopaT

    #include<stdio.h>
    int main(void)

    {
    int i,j,n;
    int array_matris[n][n];


    printf("Kare matrisin boyutunu belirtiniz (2 veya 3):\n");
    scanf("%d",&n);


    if( n == 2 || n == 3)

    for(i=0;i<n;i++){
    for(j=0;j<n;j++){


    printf( "%d. satir %d sutunun degerini giriniz \n",(i+1),(j+1) );
    scanf( "%d", &array_matris[ı][j] );


    getchar( );

    }
    }

    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



    < Bu mesaj bu kişi tarafından değiştirildi hayfans89 -- 12 Mayıs 2013; 17:15:02 >




  • 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);

    //Diziyi doldurma
    for(i=0; i<3 ; i++){
    for( j=0 ; j<3 ; j++){

    System.out.printf("Dizi[%d][%d] :",i,j);
    dizi[ı][j] = input.nextInt();

    }
    }
    //Satir islemi
    for (i=0;i<3;i++){
    for (j=0;j<3;j++){
    toplam = toplam + dizi[ı][j];
    }
    x_dizi[ı] = toplam;
    toplam = 0;
    }

    max = Math.max(x_dizi[0], x_dizi[1]);
    max= Math.max(max, x_dizi[2]);

    System.out.println(max);

    //Sutun islemi
    for (i=0;i<3;i++){
    for (j=0;j<3;j++){
    toplam = toplam + dizi[j][ı];
    }
    y_dizi[ı] = toplam;
    toplam = 0;
    }

    max = Math.max(y_dizi[0], y_dizi[1]);
    max= Math.max(max, y_dizi[2]);

    System.out.println(max);


    }

    }




    < Bu mesaj bu kişi tarafından değiştirildi hayfans89 -- 12 Mayıs 2013; 18:37:19 >




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