Şimdi Ara

C++ String problemi yardım lütfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
363
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar ödev olarak şöyle bir soru aldım. İki sayı veriliyor ama sayılar string şeklinde veriliyor çünki soruda sayıların 10^9 kadar olma ihtimali var yani int, float gibi olmaz. Bu sayıları karşılaştırmam ve hangisi büyük onu bulmam lazım. Stringi atoi() ile integere dönüştürüp yazıyorum site kabul etmiyor. Var mı başka bir yolu?
    İsteyen burdan baka bilir soruya:

    http://www.e-olimp.com/en/problems/266

    < Bu ileti tablet sürüm kullanılarak atıldı >



  • quote:

    Orijinalden alıntı: seyfi84

    o soruda sayılar 10^10000'e kadar. yani 10000 basamaklı.
    aslında çok basit. string olarak compare yapacaksın.
    okuduğun satırlar aynı boyda değilse, kısa olanı uzan olanla aynı boya getirene kadar soldan 0 ekle ve sonra string compare yap. bu kadar.

    Hocam şöyle bir algoritma kurdum. Gereken > ve < işaretlerini alıyorum ama = işaretini bir türlü alamadım. Nerde hata yapıyorum?

    #include <cstdlib>
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    int main (){
    int k,temp;
    string a,b;
    cin>>a>>b;

    if (a.length()>b.length())
    cout<<">"<<endl;
    if (a.length()<b.length())
    cout<<"<"<<endl;
    if (a.length()==b.length ()){
    for (int i=0;i<a.length();i++){
    if (a>b){
    cout<<"<"<<endl;
    break;}
    else if (a<b){
    cout<<"<"<<endl;
    break;}

    else
    if(a==b)

    k++;

    }
    if(k==a.length()-1
    cout<<"="<<endl;


    return 0;



    }
    }

    < Bu ileti tablet sürüm kullanılarak atıldı >




  • soruyu tam anlamadım.

    eğer stringdeki sayı bir sayı değişkene atanacaksa:
    string'in kendi fonksiyonları var ama C++11 için C++11'i derleyiciniz desteklemiyorsa normal atoi var önce string'den gelen veriyi katar haline getireceksin .copy fonskiyonu ile katar içine string'i kopyalayabilrsin sonra atoi ile sayıya çevirirsin haa sayı değikenine atanmayacaksa uzunluklar ile işi halledersin:

    if( a.lenght() > b.lenght() )
    cout << ">\n";
    else if( a.lenght() < b.lenght() )
    cout << "<\n";
    else
    cout << "=\n";

    < Bu ileti mini sürüm kullanılarak atıldı >
  • lavara123 kullanıcısına yanıt
    O zaman bu programa göre 5 ve 3 eşit oluyor, uzunlukları eşit
  • quote:

    Orijinalden alıntı: 4kalan

    O zaman bu programa göre 5 ve 3 eşit oluyor, uzunlukları eşit

    hassk.. benim akıl basamaklara kaymış .d neyse

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 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.