c programlama ödev sorusu

theusefull
27-12-2017, 01:10   |  #1  
theusefull avatarı
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Ara 2017

çok acil c programlama ödevi için yardımınıza ihtiyacım var. ilgilenenler lütfen özelden mesaj atsın

Sistem Bilgilerim
White-Fox
27-12-2017, 01:29   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

İstediğin programın linki ; http://s3.dosya.tc/server13/wuy9am/yardim2.rar.html


#include
#include
int basamakSayisi(int sayi);
void artiYaz(int sayi);
void farkliYaz(int sayi);
char toArray(int number);

int main()
{
        int a; //girilen sayı
        printf("Bir tamsayı giriniz");
        scanf("%d",&a);
        printf("Basamak sayisi metodu Çalışıyor \n");
        printf("%d",basamakSayisi(a));
        printf("\nartiYaz metodu çalışıyor\n");
        artiYaz(a);
       
       
       
        printf("\nFarkli Yaz metodu Çalışıyor \n");
     farkliYaz(a);
       

       
       
       
       
}
int basamakSayisi(int sayi)
{
        return floor(log10(abs(sayi))) + 1;
}
void artiYaz(int sayi)
{
        int sayac=0;
        for(;sayac<=sayi;sayac++)
        {
                printf("+");
        }
       
       
       
       
       
/*        int sayac =0;
        int dur = basamakSayisi(sayi);
        for(;sayac<=dur;sayac++)
        {
                printf("+");
        }*/
}


void farkliYaz(int sayi)
{
        int basamaksayisi=basamakSayisi(sayi);
       
        char array[basamaksayisi];//basamak sayisi kadar alan açtık

      sprintf( array, "%d", sayi ); //integer to char
      
    int say[basamaksayisi]; //kaç basamak sayisi varsa okadar dizi alanı açtık
         int sayac=0; //sayac oluşturduk
         
         for(;sayac<=basamaksayisi;sayac++)
         {
                 say[sayac]=(sayi-(sayi%(int)(pow(10,sayac))))%(int)(pow(10,sayac+1));
                }   
               
               
               
               
        int sayac2=0;
               
         for(;sayac2<basamaksayisi;sayac2++)
         {
                   printf( "%c => %d tane + \n", array[sayac2],say[sayac2]);
                 }       
   


}

Basamaklarına ayıran , sayı değeri kadar artı yazan , sayının basamak sayısını döndüren ,  ve basamak değeri kadar artı yazan program. 

Kolay gelsin...

Son Düzenleme: White-Fox ~ 27 Aralık 2017 02:30
bahri_1989
27-12-2017, 13:23   |  #3  
Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Eyl 2009

Hocam Merhaba, Bu ödev bir arkadaşım içinde istenmiş biraz yapmaya çalıştım ama beceremedim. ödevin ekran çıktısının aşağıda yolladığım resimdeki gibi olması isteniyor. Nasıl bir düzeltme yaparsak aşağıdaki resimdeki sonucu alabiliriz. Teşekkür ederim.

White-Fox
27-12-2017, 13:49   |  #4  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

programda kaç tane + olacağını doğru şekilde yazıyor siz oradaki tek printf ' i ikiye ayırıp önce sayıyı sonra bir for döngüsü yada fonksiyon kullanarak kaç + olması gerektiğini yazdırabilirsiniz.

bahri_1989
27-12-2017, 14:07   |  #5  
Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Eyl 2009

Nereyi değiştirmem gerektiğini biraz açık yazabilir misiniz? Bu konularda biraz acemiyim de kusura bakmayın. Teşekkür ederim şimdiden değerli vaktinizi aldığım için

White-Fox
27-12-2017, 14:15   |  #6  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010
Alıntı: bahri_1989  
Nereyi değiştirmem gerektiğini biraz açık yazabilir misiniz? Bu konularda biraz acemiyim de kusura bakmayın. Teşekkür ederim şimdiden değerli vaktinizi aldığım iç
 

 for(;sayac2<basamaksayisi;sayac2++)
         {
                   printf( "%c => %d tane + \n", array[sayac2],say[sayac2]);
                 }   

burada ki printf'i değiştirmelisiniz %d tane dedği say[sayac2] den gelir say[sayac2] kadar + yazdıracaksınız.

bahri_1989
27-12-2017, 16:10   |  #7  
Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Eyl 2009

olmadı beceremedim yine de teşekkür ederim. Sağolun.