Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
482
Tıklama
0
Öne Çıkarma
Ödev Algoritma Yardım!
N
9 yıl
Çavuş
Konu Sahibi

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;

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

Üye Ol Şimdi Değil



D
9 yıl
Yüzbaşı

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




< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
O
9 yıl
Teğmen

 
#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);

while(a!=0)
{
if(a%10==1||a%10==3||a%10==5||a%10==7||a%10==9)
{
rakamlar+=a%10;
rakamlar*=10;
}

a/=10;
}

printf("\n");
rakamlar/=10;

while(rakamlar!=0)
{
printf("%d",rakamlar%10);
rakamlar/=10;
}

}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.