Şimdi Ara

c ile yazılması gereken bir problem

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
477
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar bu aleme yeni girdim.
    elimde bir input dosyası var. içeriği en fazla 6 karakterden oluşan hepsi büyük harf olan iki tane string içeriyor bu dosya. iki satır halinde veriliyor.
    örneğin şu:

    KONYA
    ANKARA

    benden şu isteniyor:

    ingiliz alfabesi kullanmak şartıyla her harfin alfabedeki sırası alınıp çarpılacak. iki satır için ayrı ayrı yapılcak. ondan sonra bulunan sayılar mod 47 ye göre yazılcak.

    A*N*K*A*R*A : 1*14*10*1*18*1=2520 MOD47 ye göre 29

    K*O*N*Y*A : 11*15*14*25*1=57750 MOD47 ye göre 34
    eğer ikiside eşitse

    GO

    değilse

    STAY yazdırılacak. Çözümü yapabilirseniz en kısa zamanda bekliyorum.



  • Kodunu şu an yazamam ama mantığını söyleyeyim. Fakat bu çözüm girilen sözcükler Türkçe karakter içermiyorsa geçerli.

    int carpim1=1,carpim2=1; //elimizde olsun

    Şimdi dosyayı aç. Okuma işlemini karakter karakter yap. Karakteri okudun Ascii kodunu bul ve bundan 64 çıkar sonra elde edilen sayı * carpim1 sonra bu işlem satır sonuna kadar devam. Aynısını 2. si için de yap. Sonra;

    if ((carpim1%47)==(carpim2%47))
    write "go";

    else
    wirte "stay";

  • işte bende karakterleri tek tek okutamadım:) tam eksik kaldığım nokta buydu.mümkünse kodu yazabilir misiniz acaba?
  • karakter'i teker teker almak dışında aldığın sözcüğün bir string yani karakter dizisi olduğunu göz önünde bulunabilirisn. Yani aldığın sozcuk[]="ANKARA" dizisini bir dögü içinde kullanabilirisn yani;

    for i=0 to harf_sayisi;

    carpim=carpim*('sozcuk[ i ]-64')

    gibi... Yazımı artık kullandığın dile göre uyarlarsın.



    < Bu mesaj bu kişi tarafından değiştirildi Lord of the Shadows -- 10 Mart 2009; 17:00:10 >
  • eyw hocam teşekkür ederim.deneyeceğim.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.