Şimdi Ara

dev C de çarpmada hata veriyor, yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
719
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • #include <stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include <time.h>

    int a,i=0,j=0,k=0;
    int c[1000][1000], d[1000][1000], e[1000][1000];
    int matris_top (int c[1000][1000]);
    int matris_fark (int d[1000][1000]);
    int matris_carp (int e[1000][1000]);
    int matris1 [1000][1000], matris2 [1000][1000];

    int main()
    {

    printf ("Matrisin satir ve sutun sayisini giriniz: \n");
    scanf("%d", &a);
    srand (time(NULL));
    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    {
    matris1 [j] = rand()% 100 -50;
    matris2 [j] = rand()% 100;
    }
    printf ("1. Matris\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    {printf (" %d ", matris1[j]); }
    printf ("\n");}
    printf ("\n");

    printf ("2. Matris\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    {printf (" %d ", matris2[j]);}
    printf ("\n");
    }
    printf ("\n");
    matris_top (c);
    printf ("Matrislerin toplami\n");
    for (i=0;i<a;i++)
    { for (j=0;j<a;j++)
    {printf (" %d ", c[j]);}
    printf ("\n");
    }
    matris_fark (d);
    printf ("Matrislerin farki\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    { printf (" %d ", d[j]);
    }
    printf ("\n");
    }

    matris_carp(e);
    printf ("Matrislerin carpimi\n");
    for (i=0;i<a;i++)
    {
    for (j=0;i<a;j++)
    { printf (" %d ", e[j]);}
    printf ("\n");}

    system ("PAUSE");
    return 0;
    }

    int matris_top (int c[1000][1000])
    {
    int i=0, j=0;

    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    c[j] = matris1[j] + matris2[j];
    }
    int matris_fark (int d[1000][1000])
    {
    int i=0, j=0;
    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    d[j] = matris1[j] - matris2[j];
    }
    int matris_carp (int e[1000][1000])
    {
    int i=0;j=0,k=0;
    e[j]=0;
    for (i=0;i<a;i++)
    for (j=0;i<a;j++)
    for (k=0;k<a;k++)
    e[j] = e[j] + matris1[k] * matris2[k][j];
    }







  • arkadaşlar, konu: kare matrisin boyutunu kullanıcı girecek, matriste toplama çıkarma ve çarpma yapılacak ama çarpma işlemini yapmıyor program kapanıyor??
  •  
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <time.h>

    int a, i=0, j=0, k=0;
    int c[1000][1000], d[1000][1000], e[1000][1000];
    void matris_top (int c[1000][1000]);
    void matris_fark (int d[1000][1000]);
    void matris_carp (int e[1000][1000]);
    int matris1 [1000][1000], matris2 [1000][1000];

    int main()
    {
    printf("Matrisin satir ve sutun sayisini giriniz: \n");
    scanf("%d", &a);

    srand(time(NULL));

    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    {
    matris1[i][j] = rand()% 100 - 50;
    matris2[i][j] = rand()% 100;
    }
    }

    printf ("1. Matris\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    printf (" %d ", matris1[i][j]);
    printf ("\n");
    }

    printf ("\n");

    printf ("2. Matris\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    printf (" %d ", matris2[i][j]);
    printf ("\n");
    }

    printf ("\n");

    matris_top (c);
    printf ("Matrislerin toplami\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    printf (" %d ", c[i][j]);
    printf ("\n");
    }

    matris_fark (d);
    printf ("Matrislerin farki\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    printf (" %d ", d[i][j]);
    printf ("\n");
    }

    matris_carp(e);
    printf ("Matrislerin carpimi\n");
    for (i=0;i<a;i++)
    {
    for (j=0;j<a;j++)
    printf (" %d ", e[i][j]);
    printf ("\n");
    }

    system ("PAUSE");
    return 0;
    }

    void matris_top (int c[1000][1000])
    {
    i=0;
    j=0;
    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    c[i][j] = matris1[i][j] + matris2[i][j];
    }
    void matris_fark (int d[1000][1000])
    {
    i=0;
    j=0;
    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    d[i][j] = matris1[i][j] - matris2[i][j];
    }
    void matris_carp (int e[1000][1000])
    {
    i=0;
    j=0;
    k=0;
    for (i=0;i<a;i++)
    for (j=0;j<a;j++)
    for (k=0;k<a;k++)
    e[i][j] = e[i][j] + matris1[i][k] * matris2[k][j];
    }



    Düzenli yazarsan okuması daha kolay olur böylece hataları daha çabuk bulursun. Hatadan çok görünümü düzelttim
    Bu arada foruma koyarken [code][/code] tagı içine al kodu yoksa yanlış görünüyor fark ettiysen. Ancak alıntı yapınca doğrusu okunabiliyor.

    Birkaç yerde for (j=0;j<a;j++) yerine for (j=0;i<a;j++) yazmıştın sanırım sorun ondanmış. Ayrıca fonksiyonlar birşey dönmüyor o yüzden return türünü void yapmalısın.



    < Bu mesaj bu kişi tarafından değiştirildi crshr -- 25 Mayıs 2012; 0:04:51 >




  • çok çoook teşekkürlerr
    doğru, ben farketmedim j yerine i yazdığımı.. haklısın void i kullacaktım ama bir türlü ısınamadım bu void'e ondan bulaşmıyorum pek

    ya bi de sana zahmet, ben aralığı öylesine %100 -50 girdim ama aslında yapmak istediğim 100 ile -100 arasında random sayılar atamaktı,
    rand()%100 -100 yapınca baktım hep negatif sayılar çıkıyor, onu nasıl yapacağız?



    < Bu mesaj bu kişi tarafından değiştirildi Life&Death -- 25 Mayıs 2012; 2:30:37 >
  • Eğer %100 yaparsan 0 ile 99 arası sayı üretir (0 ve 99 dahil). Bundan 50 çıkarırsan [-50, 49] arası sayı üretir. [-100, 100] yapmak için rand() %201 - 100 kullanmalısın.
  • quote:

    Orijinalden alıntı: crshr

    Eğer %100 yaparsan 0 ile 99 arası sayı üretir (0 ve 99 dahil). Bundan 50 çıkarırsan [-50, 49] arası sayı üretir. [-100, 100] yapmak için rand() %201 - 100 kullanmalısın.

    çok sağol ya crshr, çok yardımı oldu:), sınava bi hafta var biraz daha çalışmam lazım bu sayı aralığı konusuna
  • Yapay Zeka’dan İlgili Konular
    c'de yardım
    14 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.