İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C++ Basamak Seçimi Yardım

berklann26.02.20163 cevap2.585 görüntüleme
2012'den beri179 mesaj
#1
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.
Cevaplar
2012'den beri3.287 mesaj
#2
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
2011'den beri505 mesaj
#3
Arkadaşın dediği gibi yapabilirsin ama 11 rakamlı sayılarda değişkenin alabileceği maksimum değerden dolayı sorunla karşılaşabilirsin.
#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;
}
2011'den beri505 mesaj
#4
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.
#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;
}

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.