Şimdi Ara

c programım için yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
281
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bir A dizisindeki 100 elemanın asallığını kontrol edip asal olarlar ile yani bir B dizisi oluşturan bir program yazmam gerekiyor ama biyerde hata yapıyorum. Yardımcı
    olursanız sevinirimç
    yazdığım programın kodları şu şekilde:



    #include<stdio.h>
    #include<math.h>
    int function(int A[][10], int B[]){
    int i,j,k,size=0;
    double m;
    for (i=0 ;i<10; i++){
    for(j=0; j<10; j++){
    m=(float)sqrt(A[j]);
    for(k=2;k<=m;k++){
    if(A[j]%k!=0)
    B[size++]=A[j];
    else
    break;
    }
    }
    }

    return size;
    }
    int main()
    {
    int A[10][10],i,j,m;
    int B[100];
    for (i=0 ;i<10;i++){
    for(j=0;j<10;j++){
    A[j]=(10*i+1+j);
    }
    }
    for (i=0;i<10;i++){
    for(j=0;j<10;j++){
    printf("%5d\n",A[j]);
    printf("\n");
    }
    }
    m=function(A,B);
    for(i=0 ;i<m; i++)
    printf("%8d",B);
    getchar ();
    getchar ();
    return 0;
    }







  • yardım edebilcek kimse yokmu acaba:/ hatamı bulamadım birtürlü sonuç olarak B dizisi asal bi dizi oluyor ama 100 elemanlı oluyor size ı return etmeme rahmen
  • Kodunu okumak çok zahmetli. Sanırım asal bulma algoritmanda sorun vardı. Biraz değiştirdim oldu. Artık hataları kendin bulursun.

     
    #include<stdio.h>
    #include<stdbool.h>
    #include<math.h>

    bool isPrime(int num)
    {
    int k = 2, m = sqrt(num);

    for(; k <= m; k++) {
    if(num % k == 0)
    return false;
    }
    return true;
    }

    int function(int A[][10], int B[]){
    int i,j,size=0;

    for (i=0 ;i<10; i++){
    for(j=0; j<10; j++){
    if(isPrime(A[i][j]))
    B[size++]=A[i][j];
    }
    }

    return size;
    }

    int main()
    {
    int A[10][10],i,j,m;
    int B[100];

    for (i=0 ;i<10;i++){
    for(j=0;j<10;j++)
    A[i][j]=(10*i+1+j);
    }

    for (i=0;i<10;i++){
    for(j=0;j<10;j++){
    printf("%d\t",A[i][j]);
    printf("\n");
    }
    }

    m=function(A,B);
    for(i=0 ;i<m; i++)
    printf("%d\t",B[i]);

    return 0;
    }




  • teşekkür ederim eline sağlık
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.