Şimdi Ara

Structure sorunu (C'de)...

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
333
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba, C de structure konusu için bir program yazıyorum.. Program konusu şu:

    Write a program that holds the information about a marathon race in an array of structures. Each structure contains information about one runner (the surname, country, and minutes it took to finish race). Find the runner who received the gold medal. Note that there were 10 runners.

    Benim yazdığım kod aşağıda... Koşucu bilgilerini alabiliyorum fakat kazanan yarışmacıyı bulduramıyorum.. Bir de o kısma kadar yaptığım kısım program için yeterli mi bakarsanız sevinirim..
    Benim yazdığım kod kısmı:

    #include <stdio.h>
    struct runners
    {
    char name[30];
    char country[30];
    int minutes[10];
    };

    int main(void)
    {
    struct runners list[3];
    int i;
    int count=0;

    for (i=0; i<3; i++)
    {
    printf("Enter the runner's surname: ");
    gets(list[ i ].name);
    printf("Enter the %s's country: ",list[ i ].name);
    gets(list[ i ].country);
    printf("Enter %s's finish time: ",list[ i ].name);
    scanf("%d",&list[ i ].minutes);
    printf("\n");
    getchar();
    }
    for (i=0; i<3; i++) // Bu kisim hatali... Kazanan kosucuyu hesaplatamiyorum...
    {
    count=list[ i ].minutes;
    if (list[ i ].minutes<count)
    count++;
    }
    printf("The winner is: %s \n",list[count].name);

    return 0;
    }







  • tam bilemiyorum da ...

    ilk kısımda
     struct runners list[3]; 
    doğru mu. yani structa gerek var mı?. ilk for da denemişindir gerçi içeriğini görmek için

    ilk for'un sonunda neden getchar() koydun ?

    minutesu neden array;
    ya da bunların hepsi doğruysa :)
    alt kısım bu şekilde olur diye düşünüyorum
     
    count=list[ 0 ].minutes;
    int index=0,temp;
    for (i=1; i<3; i++) // Bu kisim hatali... Kazanan kosucuyu hesaplatamiyorum...
    {
    temp=list[ i ].minutes;
    if (count>temp) // en dusuk zamani olan eleman goldu almistir
    {
    index = i;
    count = temp; // en dusuk olani bir sonraki dongu icin ve indexini yakala
    }

    }
    printf("The winner is: %s \n",list[index].name);
  • soru structure konusu içinde.. o yüzden struct kullanmak zorundayız:) soruda 10 yarışmacı için kayıt tutmamızı istediği için minutes i 10 yaptım, her bir yarışmacıya tanımlamak için, mantıgım yanlışsa düzeltin.. o getchar ı da koymadığımda 2. soru bozuk geliyor orda bir boşluk bırakmak gerekiyor programa..
  •  

    #include <stdio.h>
    struct runners
    {
    char name[30];
    char country[30];
    int minutes; //burasi array olmayacak, array olan runners listesi.
    };

    int main(void)
    {
    struct runners list[3];
    int i;
    int count=0;

    for (i=0; i<3; i++)
    {
    printf("Enter the runner's surname: ");
    scanf("%s",list[ i ].name);
    printf("Enter the %s's country: ",list[ i ].name);
    scanf("%s",list[ i ].country);
    printf("Enter %s's finish time: ",list[ i ].name);
    scanf("%d",&list[ i ].minutes);
    printf("\n");
    }

    printf("For loop finished \n");
    printf("Now print structures to test if correctly read\n");

    for (i=0; i<3; i++)
    {
    printf("Runner's surname is %s: \n",list[ i ].name);
    printf("Runner's country is %s: \n",list[ i ].country);
    printf("Runner's time is %d: \n",list[ i ].minutes);
    }

    //end of print test

    //need bubble sort

    for (i=0; i<3; i++) // Bu kisim hatali... Kazanan kosucuyu hesaplatamiyorum...
    {
    count=list[ i ].minutes;
    if (list[ i ].minutes<count)
    count++;
    }
    printf("The winner is: %s \n",list[count].name);

    return 0;
    }



    en hizli runner'i hesaplamak icin de rukaplan'in gosterdigi gibi bir bubble sort algoritmasi yaz.




  • AAAA doğru yaa.. o minutes te array e gerek yok zaten runner a koyuyoruz.. Sağolun, kazananı da bulan kodu rukaplan ın dediği gibi yaptım... Teşekkürler
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.