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;
}
}
}