Çö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
29
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;
}
Dev-C++ derleyici değil, IDE'dir.
O rezil şeyi kullandığınız için sizin adınıza üzüldüm. Hemen iğrenç bir kod yazıyorum. O leş şey anca birazdan yazacağım gibi taş devrinden kalma kodları çalıştırır zaten.

Derste bu kullanılıyor maalesef bununla yapmak zorunda kalıyorum.
Yoruyorum sizi ama gerçekten çok sağ olun destekleriniz için.
 
Son düzenleyen: Moderatör:
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;
}
 
Çö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;
}

Oldu hocam hatasız. Emeğine sağlık tekrar.
 

Yeni konular

Geri
Yukarı