Merhabalar.Bilgisayar Mühendisliği 1. Sınıf öğrencisiyim.c++ kullanarak Konsoldan bir algoritma yapmamız gerekiyor ödev için. Bu algoritma kullanıcıdan bir sayı alıyor bu sayının içindeki tek sayıları sıralı bir şekilde örneğin 123456 yazıldığı zaman 135 çıkartması gerekiyor. yaklaşık 3 saat bununla uğraşıyorum.Yaptığım şey aşağıda.Neyi yanlış yaptığımı söylerseniz sevinirim.(bu arada dizi,string yada fonksiyon kullanılmasına izin verilmiyor.)
#include <iostream>
using namespace std;
int main() { int number; int digit; int remainder; int staticnumber; cout<<"Enter The Number. \n"; cin>>staticnumber; number = staticnumber; cout<<"Odd numbers.....:"; while (number >= 10) { number=number / 10; digit++; } int staticdigit; staticdigit = digit; for(int i=1;i<staticdigit;i++) { digit = 10*digit;
Önce int i tersine cevir. Daha sonra tek while ile sürekli 10 a böl ve sayının tek olup olmadığını kontrol et, eğer tek ise printf ile yazdır fakat newline atma. While bittiği zaman ise newline atarsin.
Tersine çevirme algoritması:
quote:
long reverse(long n) { static long r = 0;
if (n == 0) return 0;
r = r * 10; r = r + n % 10; reverse(n/10); return r; }
#include <stdio.h> int main() { // içindeki tek sayıları sıralı bir şekilde //örneğin 123456 yazıldığı zaman 135 çıkartması gerekiyor. //dizi,string yada fonksiyon kullanılmasına izin verilmiyor.==>dizi yada string kullanılamayacagından tek sayılardan tekrar bi sayı olusturup (istenilen sırada yazabilmek için ) sadece tek sayılar dese rakamları tanımlamaya yada 2. while 'i kullanmaya gerek yoktu!!! int a; int rakamlar; printf("lutfen bir sayi giriniz?\n"); scanf("%d",&a);
Bu algoritma kullanıcıdan bir sayı alıyor bu sayının içindeki tek sayıları sıralı bir şekilde örneğin 123456 yazıldığı zaman 135 çıkartması gerekiyor.
yaklaşık 3 saat bununla uğraşıyorum.Yaptığım şey aşağıda.Neyi yanlış yaptığımı söylerseniz sevinirim.(bu arada dizi,string yada fonksiyon kullanılmasına izin verilmiyor.)
#include <iostream>
using namespace std;
int main()
{
int number;
int digit;
int remainder;
int staticnumber;
cout<<"Enter The Number. \n";
cin>>staticnumber;
number = staticnumber;
cout<<"Odd numbers.....:";
while (number >= 10)
{
number=number / 10;
digit++;
}
int staticdigit;
staticdigit = digit;
for(int i=1;i<staticdigit;i++)
{
digit = 10*digit;
}
digit/=staticdigit;
cout<<digit;
int finalnumber;
while(staticdigit > 0)
{
finalnumber=staticnumber / digit;
digit /=10;
if (finalnumber % 2 == 1)
{
cout<<finalnumber;
}
}
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.