Şimdi Ara

Ödev Algoritma Yardım!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
3
Cevap
0
Favori
463
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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;
    }
    }
    }







  • Ö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ı >
  •  
    #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;
    }

    }




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.