Şimdi Ara

c++ sorusu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
8
Cevap
0
Favori
588
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba. bir c++ problemi var kodları yazdım ancak istediğim çıktıyı bir türlü alamadım sıralama yapmıyor ve tek karakter girişi yaptırıyor sadece. nerede hatam var acaba?

    problem: a(i) dizisi öğrencilerin numaralarının son rakamını b(i) dizisi de öğrenci isimlerinin ilk harflerini taşımaktadır. öğrenci numaralarını sıralayacağız ve o numaraya ait harf de yeniden siralanacak.

    örn: 2 4 5 3 6 1 öğrenci noları
    t a e f g i isimlerin ilk harfleri



    yeni sıralamada çıktı

    1 2 3 4 5 6
    i t f a e g

    olacak.


    #include<stdlib.h> 
    #include<stdio.h>

    int i,j;

    void f(int a[],char b[]){
    int pass,n,k,i,sakla;
    int x,y,sakla1;

    for(pass=0;pass>n-1;pass++){
    for(i=0;i<n-1;i++){
    if(a[i]>a[k]){
    sakla=a[i];
    a[i]=a[k];
    a[k]=sakla;
    }
    }
    if(b[x]>b[y]){
    sakla1=b[x];
    b[x]=b[y];
    b[y]=sakla1;
    }
    }
    }
    int main() {
    int p;
    int a[i];
    char b[i];

    printf("kac ogrenci var : \n");
    scanf("%d",&p);

    printf("ogrencilerin numaralarinin son rakamlarini giriniz : \n");
    for(i=1;i<=p;i++) {
    scanf("%d",&a[i]);
    }
    printf("ogrencilerin isimlerinin ilk harflerini giriniz : \n");
    for(i=1;i<=p;i++){
    scanf("%c",&b[i]);
    }
    f(a,b);


    printf("numara ve isim siralamasi\n");

    for(i=1;i<=p;i++){
    printf("%d ",a[i]);
    }

    printf("\n");

    for(i=1;i<=p;i++){
    printf("%c ",b[i]);
    }

    system("pause");
    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi zubizarettaa -- 26 Aralık 2011; 19:47:11 >







  • #include<stdlib.h> 
    #include<stdio.h>


    void f(int a[],char b[], int max)
    {
    int i, j, itmp;
    char ctmp;

    for(i=0;i<max-2;i++)
    for(j=0; j < max -1; j++)
    if(a[j]>a[j+1])
    {
    itmp=a[j];
    a[j] = a[j+1];
    a[j+1] = itmp;
    ctmp=b[j];
    b[j] = b[j+1];
    b[j+1] = ctmp;
    }
    }

    int main()
    {
    int p;
    int a[100];
    char b[100];

    int i,j;
    printf("kac ogrenci var : \n");
    scanf("%d",&p);

    printf("ogrencilerin numaralarinin son rakamlarini giriniz : \n");
    for(i=0;i<p;i++)
    scanf("%d",&a[i]);

    printf("ogrencilerin isimlerinin ilk harflerini giriniz : \n");
    fflush(stdin);
    for(i=0;i<p;i++)
    {
    scanf("%c",&b[i]);
    fflush(stdin);
    }

    f(a, b, p);

    printf("numara ve isim siralamasi\n");

    for(i=0;i<p;i++)
    printf("%d\t",a[i]);
    printf("\n");

    for(i=0;i<p;i++)
    printf("%c\t",b[i]);

    system("pause");
    return 0;
    }




  • quote:

    Orijinalden alıntı: zubizarettaa

    merhaba. bir c++ problemi var ...


    C++ olduğuna emin misin acaba? Yazdığın kodta C++'a dair tek bir satır kod göremiyorum da.
  • teşekkürler öncelikle yalniz anlamadığım 2 kısım var. ilk olarak neden dizileri 100er elemanlı tanımladık. ikincisi de fflush fonksiyonu ne işe yarıyor acaba? daha öğrenmediğim bir fonksiyon çünkü.
  • quote:

    Orijinalden alıntı: qamyoncu

    quote:

    Orijinalden alıntı: zubizarettaa

    merhaba. bir c++ problemi var ...


    C++ olduğuna emin misin acaba? Yazdığın kodta C++'a dair tek bir satır kod göremiyorum da.

    evet orada bir yanlış olmuş kusura bakmayın c sorusu demem gerekirdi.
  • bu arada bir soru daha soracağım. ctmp ve itmp değişkenlerinin bir özelliği var mı çünkü değişkenleri sakla ve sakla1 yaptığımda sıralama hatası oluyor programda?
  • yok hayır, yazdığın kodu gönderirsen hatan nerede görebiliriz, muhtemelen bir yerlerde değişkenlerin yerlerini karıştırmışsındır.
  • ctmp char tipinden, itmp integer tipinden olması dışında bişey yok

    dizileri 100 elemanlı statik tanımladık çünkü dinamik tanımlamayı öğrenmediğini düşünüyorum (malloc, calloc, free tarzı fonksiyonlar?)

    fflush(stdin) girişi temizliyo, ard arda scanf lerle characterler okumaya çalışırsak enter karakterini okuyacaktır mesela. Durum bundan ibaret. onları temizliyoruz
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.