Çözüldü C++'ta girilen sayıyı basamaklarına ayırma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

DreTech

Hectopat
Katılım
14 Temmuz 2019
Mesajlar
33
Merhabalar. Girilen sayıyı 1. basamaktan 9. basamağa kadar (basamakta sayı olmasa da yerine 0 yazacak) ayırabilecek kodu döngüler veya farklı özellikler kullanarak nasıl yapabilirim? Ben aşağıda bir tane hazırladım ancak loops kullanmam gerekiyor.
Örnek: Sayı 1234.
1. basamak: 4
2. basamak: 3
7. basamak: 0 gibi.

[CODE title="Yaptığım"]#include <iostream>
using namespace std;

int main()
{
int sayi,yuzler,onlar,birler,binler,onbinler,yuzbinler,milyon,onmilyon,yuzmilyon;

cout<< "Lutfen bir sayi giriniz: " << endl;

cin>>sayi;

birler = sayi%10;
onlar = sayi/10%10;
yuzler = sayi/100%10;
binler = sayi/1000%10;
onbinler = sayi/10000%10;
yuzbinler = sayi/100000%10;
milyon = sayi/1000000%10;
onmilyon = sayi/10000000%10;
yuzmilyon = sayi/100000000%10;

cout<<"1. basamagi"<<" "<<birler<<endl;
cout<<"2. basamagi"<<" "<<onlar<<endl;
cout<<"3. basamagi"<<" "<<yuzler<<endl;
cout<<"4. basamagi"<<" "<<binler<<endl;
cout<<"5. basamagi"<<" "<<onbinler<<endl;
cout<<"6. basamagi"<<" "<<yuzbinler<<endl;
cout<<"7. basamagi"<<" "<<milyon<<endl;
cout<<"8. basamagi"<<" "<<onmilyon<<endl;
cout<<"9. basamagi"<<" "<<yuzmilyon<<endl;

return 0;
}[/CODE]
 
Çözüm
Kimse sizi bir IDE veya derleyici kullanmak zorunda bırakacak bir programlama dersi vermez.
Tavsiyem C++ için Visual Studio 2019 kullanmanız. 2021 yılında varsayılan olarak GCC 3.4.2 gibi 2004'te yayınlanmış bir derleyiciyi kullanan IDE kullanmanın hiçbir anlamı yok. Uğraşıp durup güncel, kullanılabilir bir hale getirebilirsiniz ama değmez.

Hata verirse i değişkenini döngü dışında tanımlamayı deneyin.

Gül gibi bir C kodumuz oldu. 1999 standardında. Hayırlı uğurlu olsun. Siz doğmadan önce insanların çektikleri acıları çekmeye devam edin.
Kullandığım IDE bunlar C kodu deyip çalıştırmadığı için bir site üzerinden yazdım. Orada bile bazı şeyleri kabul etmedi.

Kod:
#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

void reverseStr(char* str, int size) {
    char tempStr[BUFSIZ];
    
    for (int i = 0, j = size - 1; i < size; ++i, --j) {
        tempStr[i] = str[j];
    }
    
    tempStr[size] = 0;
    strcpy(str, tempStr);
}

int main() {
    char str[BUFSIZ];

    cout << "Sayi gir: ";
    cin >> str;

    int size = strlen(str);

    reverseStr(str, size);

    for (int i = 0; i < size; ++i) {
        cout << i + 1 << ". basamak: " << str[i] << endl;
    }

    return 0;
}
Bu iş böyle yapılmaz dostum 50 tane basamak olsa hepsinin basamak değerini mi yazacaksın?
 
Bu iş böyle yapılmaz dostum 50 tane basamak olsa hepsinin basamak değerini mi yazacaksın?

Hayır sadece 9 basamağa kadar. Fark etmez 6 basamakta olur. Benim derdim 5 basamaklı sayı yazdığımda 6. basamağa 0'ı getirebilmek döngü kullanarak nasıl yaparım bunu?
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı