Ş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
872
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
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 >



    _____________________________
    Yvonne Strahovski

    Fan Club
  • 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
    _____________________________
    Kanseri yenme yolunda emin adımlar ve son adımıda attım -Seni yendim kanser-
    Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği
    Hedef Japonca öğrenmek, Bisiklet ile Japonya'ya gitmek.
    Happy with what you have to be happy with, you have to be happy with what you have, to be happy with what you have, you have to be happy with what you have to be happy with what you have to be happy with...
  • #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 ??
    _____________________________
    Yvonne Strahovski

    Fan Club




  • 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 >
    _____________________________
    353.Dönem Kısa Dönem Er
    İSKENDERUN DZ.ÜS K. DENİZ ER EĞİTİM ALAY K. / İSKENDERUN / HATAY




  • 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 >
    _____________________________
    353.Dönem Kısa Dönem Er
    İSKENDERUN DZ.ÜS K. DENİZ ER EĞİTİM ALAY K. / İSKENDERUN / HATAY




  • Yapay Zeka’dan İlgili Konular
    Ekol es 66 ile ilgili yardım
    11 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.