Arkadaşlar Yardım ! (N sayısının basamak değeri)

bulutx2

Yeni üye
22 Kas 2009
7
0
Merhaba arkadaşlar;

C++ dilinde diyelim ki 0 ile 32767 arasında (Öylesine uçuk verdim rakamı) bir sayı girmesini istiyorum.Sayıyı alıyorum basamaklarına ayırıyorum ama diyelim ki adam 23 sayısını girdiyse 23=2*10+1*2 şeklinde yazdıramıyorum ben standart 5 basamaklı olarak alabiliyorum. Yani bende sonuç 0*10000+0*1000+0*100+2*10+1*10 olarak alıyor baştaki sıfırları yazmamasını nasıl sağlayamadım.

Ekran Çıktısı

23=2*10+3*1

Şeklinde çıkmasını nasıl sağlayabilirim. Yani basamak sayına göre işlem yaptıramadım.Daha yeniyim bu dilde yardımınıza ihtiyacım var arkadaşlar.

Yukarıda ki gibi yapamadım.

Elimdeki Kodum=
Kod:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
 
int main()
 {
 int sayi,onbinler,binler,yuzler,onlar,birler;
 printf("0 ile 32767 Arasinda Sayi Giriniz...\n\n\n(Cikis icin Sifir( 0 )'a basin) :");
 scanf("%d",&sayi);
 while (sayi!=0)
 {
 if(sayi>=1 && sayi<=32766)
 {
 onbinler=(sayi/10000);   printf("%d*10000+",onbinler);
 binler=(sayi/1000);      printf("%d*1000+",binler);
 yuzler=(sayi/100);       printf("%d*100+",yuzler);
 onlar=(sayi%100)/10;     printf("%d*10+",onlar);
 birler=(sayi%10);        printf("%d*1",birler);
 }
 else
 {   printf("yanlis giris yaptiniz !.. /n");
 }
 scanf("%d",&sayi);
 }
 printf("program sonlaniyor !...");
 getch();
 }
 

samsunsüvarisi

Katılımcı Üye
19 Tem 2008
520
1
bize her yer trabzon
programın algoritmasında hatan vargibi biraz uğraştım kodu alta yapıştırıyorum üzerinde biraz oyna düzeltebilirsin sanırım.


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main()
{
int sayi,onbinler,binler,yuzler,onlar,birler;
printf("0 ile 32767 Arasinda Sayi Giriniz...\n\n\n(Cikis icin Sifir( 0 )'a basin) :");
scanf("%d",&sayi);
while (sayi!=0)
{
if(sayi>=1 && sayi<=32766)
{
onbinler=(sayi/10000);
if(onbinler!=0)
printf("%d*10000+",onbinler);
binler=(sayi/1000);
if(binler!=0)
printf("%d*1000+",binler);
yuzler=(sayi/100);
if(yuzler!=0)
printf("%d*100+",yuzler);
if(onlar!=0)
onlar=(sayi%100)/10;

printf("%d*10+",onlar);

birler=(sayi%10);
if(birler!=0)
printf("%d*1",birler);

else
break;
}
else
{ printf("yanlis giris yaptiniz !.. /n");
}
scanf("%d",&sayi);
}
printf("program sonlaniyor !...");
getch();
}
 

samsunsüvarisi

Katılımcı Üye
19 Tem 2008
520
1
bize her yer trabzon
çalışır kod aşağıda problem halloldu



#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main()
{
int sayi,onbinler,binler,yuzler,onlar,birler,a,b;
printf("0 ile 32767 Arasinda Sayi Giriniz...\n\n\n(Cikis icin Sifir( 0 )'a basin) :");
scanf("%d",&sayi);
while (sayi!=0)
{
if(sayi>=1 && sayi<=32766)
{
onbinler=(sayi/10000);
if(onbinler!=0)
printf("%d*10000+",onbinler);
binler=(sayi/1000);
if(binler!=0)
b=binler%10;
printf("%d*1000+",b);
yuzler=(sayi/100);
if(yuzler!=0)
a=yuzler%10;
printf("%d*100+",a);
if(onlar!=0)
onlar=(sayi%100)/10;

printf("%d*10+",onlar);

birler=(sayi%10);
if(birler!=0)
printf("%d*1",birler);

else
break;
}
else
{ printf("yanlis giris yaptiniz !.. /n");
}
scanf("%d",&sayi);
}
printf("program sonlaniyor !...");
getch();
}
 

bulutx2

Yeni üye
22 Kas 2009
7
0
Ben bu şekilde çözdüm hata almamak için break; kullandım yoksa sonsuz döngüye giriyor

Kod:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

 
int main()
 {
 int sayi,onbinler,binler,yuzler,onlar,birler;
 printf("0 ile 32767 Arasinda Sayi Giriniz...\n\n\n(Cikis icin Sifir( 0 )'a basin) :");
 scanf("%d",&sayi);
 while (sayi!=0)
 {
 if(sayi>=10000 && sayi<=32766) 
 { 
 onbinler=(sayi/10000); printf("%d*10000+",onbinler); 
 binler=(sayi/1000); printf("%d*1000+",binler); 
 yuzler=(sayi/100); printf("%d*100+",yuzler); 
 onlar=(sayi%100)/10; printf("%d*10+",onlar); 
 birler=(sayi%10); printf("%d*1",birler); break;
 } 
 if(sayi>=1000 && sayi<=9999) 
 { binler=(sayi/1000); printf("%d*1000+",binler); 
 yuzler=(sayi/100); printf("%d*100+",yuzler); 
 onlar=(sayi%100)/10; printf("%d*10+",onlar); 
 birler=(sayi%10); printf("%d*1",birler); break;
 } 
 if(sayi>=100 && sayi<=999) 
 { 
 yuzler=(sayi/100); printf("%d*100+",yuzler); 
 onlar=(sayi%100)/10; printf("%d*10+",onlar); 
 birler=(sayi%10); printf("%d*1",birler); break;
 } 
 if(sayi>=10 && sayi<=99) 
 { 
 onlar=(sayi%100)/10; printf("%d*10+",onlar); 
 birler=(sayi%10); printf("%d*1",birler); break;
 } 
 if(sayi>=1 && sayi<=9) 
 { 
 birler=(sayi%10); printf("%d*1",birler); break; 
 } 
 else 
 { 
 printf("yanlis giris yaptiniz !.. \n"); break;
 }
 }
 scanf("%d",&sayi);
 return 0;
 }

Buda Ekran Çıktısı ;

2sb4co2.png
 
Son düzenleme:

bulutx2

Yeni üye
22 Kas 2009
7
0
testere22 kardeşim haklısında google amcaya danışsaydık herşeyi nasıl ilerliyeceğiz :)

mantıksal olay ama işte kendim yapmaya çalışıyorum ama takıldım kaldım yine anlıyacağın.
 

bulutx2

Yeni üye
22 Kas 2009
7
0
Arkadaşlar ufak bir şeyi gözden kaçırmışım ama çözdüğümde buraya kodu yazacam.

Sorun: 4 basamaklı ve 5 basamaklı işlemlerde oluyor mesela 1000 girilince ;

1000=1*1000+10*100+0*10+0*1 şeklinde oluyor

Doğrusu: 1000 girildiğinde işlemin bu şekilde olması gerekiyor ;

1000=1*1000+0*100+0*10+0*1 şeklinde olması lazımdı.

Sizlerinde Yardımlarını bekliyorum.

Konuyu Çözülmüştür Teşekkürler Arkadaşlar Aynı Sorunları Yaşayanlar Olursa Buradan İrtibata Geçsinler.
 
Son düzenleme:

samsunsüvarisi

Katılımcı Üye
19 Tem 2008
520
1
bize her yer trabzon
proğram kodlarını paylaşabilirmisin ?

bende sonunda yapmayı başardım ama proğram baya karıştı

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main()
{
int sayi,onbinler,binler,yuzler,onlar,birler,a,b,c;
printf("0 ile 32767 Arasinda Sayi Giriniz...\n\n\n(Cikis icin Sifir( 0 )'a basin) :");
scanf("%d",&sayi);
while (sayi!=0)
{
if(sayi>=1 && sayi<=32766)
{
onbinler=(sayi/10000);
if(onbinler!=0)
printf("%d*10000+",onbinler);

binler=(sayi/1000);

if(binler!=0)
{
b=binler%10;

if(b!=0)

printf("%d*1000+",b);
}
yuzler=(sayi/100);

if(yuzler!=0)
{
a=yuzler%10;

if(a!=0)

printf("%d*100+",a);
}

onlar=(sayi/10);

c=onlar%10;

if(c!=0)

printf("%d*10+",c);


birler=(sayi%10);

if(birler!=0)


printf("%d*1",birler);


else
break;
}
else
{ printf("yanlis giris yaptiniz !.. /n");
}
scanf("%d",&sayi);
}
printf("program sonlaniyor !...");
getch();
}
 
Son düzenleme:

erminfatal

Katılımcı Üye
11 Tem 2010
650
0
bin/dash
merhaba arkadaşlar bugun bir programlama yarışmasında bu probleme benzer bir soru var idi...


soru şöyle idi
kullanici bir rakam giriyor ve bu rakamın içinde saklı olan kare kökleri buluyoruz
mesele kullanicin girdigi rakam
1369 ise
bu rakamda
1369
36
9
1


başka bir ornek

164

1
64
4
16

şu anda soru tam aklimda degil ama algortimasini kurmak isterseniz soruyu bularım ve birlikte cozeriz
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.