C++ Basamak Seçimi Yardım

Bu konuyu okuyanlar

berklann

Asistan
Katılım
23 Temmuz 2012
Mesajlar
179
Reaksiyon puanı
3
Puanları
18
Selamlar c++ da okul ile ilgili bir ödevi yapıyorum ancak şöyle bir yerde takıldım;

11 haneli bir sayı giricem bu sayının ilk iki ve son iki basamağını almam gerek örn;

15032210008----> 15 ve 08 i elde etmem gerek ancak yapamadım daha yeniyim. Şimdiden teşekkürler.
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
Selamlar c++ da okul ile ilgili bir ödevi yapıyorum ancak şöyle bir yerde takıldım;

11 haneli bir sayı giricem bu sayının ilk iki ve son iki basamağını almam gerek örn;

15032210008----> 15 ve 08 i elde etmem gerek ancak yapamadım daha yeniyim. Şimdiden teşekkürler.
cout << diziadi[indexnumarası] şeklinde giriceksin indexe şu şekilde ayırırsın
1-5-0-3-2-2-1-0-0-0-8 in index numarası,
0-1-2-3-4-5-6-7-8-9-10
yani diziyi cinle aldıgını düşünürsek
cout << diziadi[0],[1],[9],[10]

cout kısmında bi hata olabilir uzun zamandır c++ yazmıyorum
 

algea

Doçent
Katılım
15 Temmuz 2011
Mesajlar
505
Reaksiyon puanı
22
Puanları
18
Arkadaşın dediği gibi yapabilirsin ama 11 rakamlı sayılarda değişkenin alabileceği maksimum değerden dolayı sorunla karşılaşabilirsin.
Kod:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char *buffer = new char[35];
    long number = 1234567890;
    itoa(number,buffer,10);
    printf("İlk iki rakam %c %c. Son iki rakam %c %c", buffer[0], buffer[1], buffer[strlen(buffer) - 1 -1], buffer[strlen(buffer) - 1]);
    getch();
    return 0;
}
 

algea

Doçent
Katılım
15 Temmuz 2011
Mesajlar
505
Reaksiyon puanı
22
Puanları
18
Sayıyı string’e çevirmeden şöyle de yapabilirsin. 11 basamaklı sayı olduğu için 64bit lik veri tipi kullanmak zorundasın. C++ ye pek hakim olmadığım için hatam olursa af ola.
Kod:
#include<conio.h>
#include<stdio.h>

int GetDigit(long long n, int k)
{
    switch (k)
    {
    case 0:return n % 10;
    case 1:return n / 10 % 10;
    case 2:return n / 100 % 10;
    case 3:return n / 1000 % 10;
    case 4:return n / 10000 % 10;
    case 5:return n / 100000 % 10;
    case 6:return n / 1000000 % 10;
    case 7:return n / 10000000 % 10;
    case 8:return n / 100000000 % 10;
    case 9:return n / 1000000000 % 10;
    case 10:return n / 10000000000 % 10;
    case 11:return n / 100000000000 % 10;
    }
    return 0;
}
int main()
{
    long long number = 15032210008;
    printf("%d %d %d %d", GetDigit(number, 10), GetDigit(number, 9), GetDigit(number, 1), GetDigit(number, 0));
   
    getch();
    return 0;
}
 

Son mesajlar

Üst