C Sayıların Tersini almak

Başlatan MerhabaDunya, 06 Aralık 2018 - 21:51:36

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

MerhabaDunya

#include<stdio.h>
int main(){
int kalan,sayi,temp,ters=0;
//scanf("%d",&sayi);
for(int i=100;i<300;i++){
    temp=i;
    while(temp>0){
        ters*=10;
        kalan=temp%10;
        ters+=kalan;
        temp/=10;
}
    if(ters==i)
        printf("%d\n",ters);
}
return 0;
}

İstediğim şey kullanıcının girdiği sayıya kadar olan kısımda tersi kendisine eşit olan sayıları yazdırmak çalıştırdığımda çıktı alamıyorum.Hata nerede?

belgiryon

#include <stdio.h>
#include <stdlib.h>
int main()
{
int sayi,swap,kalan,tersi=0;
printf("number:");scanf("%d",&sayi);
swap=sayi;
while(swap>0){
kalan=swap%10;
tersi=tersi*10+kalan;
swap=swap/10;

}
printf("tersi:%d",tersi);
getchar();
return 0;
}

MerhabaDunya

Alıntı yapılan: belgiryon - 06 Aralık 2018 - 21:59:15
#include <stdio.h>
#include <stdlib.h>
int main()
{
int sayi,swap,kalan,tersi=0;
printf("number:");scanf("%d",&sayi);
swap=sayi;
while(swap>0){
kalan=swap%10;
tersi=tersi*10+kalan;
swap=swap/10;

}
printf("tersi:%d",tersi);
getchar();
return 0;
}

Hocam bu benim istediğim olmadı.Eğer girilen sayının tersini almak isteseydim olurdu.Ama kullanıcının girdiği sayıya kadar olan sayılardan tersi kendisine eşit olan sayıları arıyorum ve yazdırmak istiyorum.

edge35

Elinize sağlık. Aslında foğru yazmışsınız ama ufak bir ayrıntıyı unutmuşsunuz :)
    if(ters==i)
        printf("%d\n",ters);
şu satırdan sonra tersi tekrar 0'a eşitlemeniz gerekiyor :)

#include<stdio.h>

int main(){
int kalan,sayi,temp,ters=0;
//scanf("%d",&sayi);
for(int i=100;i<300;i++){
    temp=i;
    while(temp>0){
        ters*=10;
        kalan=temp%10;
        ters+=kalan;
        temp/=10;
}
    if(ters==i)
        printf("%d\n",ters);
    ters = 0;
}
return 0;
}


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

MerhabaDunya

Alıntı yapılan: edge35 - 07 Aralık 2018 - 00:56:47
Elinize sağlık. Aslında foğru yazmışsınız ama ufak bir ayrıntıyı unutmuşsunuz :)
    if(ters==i)
        printf("%d\n",ters);
şu satırdan sonra tersi tekrar 0'a eşitlemeniz gerekiyor :)

#include<stdio.h>

int main(){
int kalan,sayi,temp,ters=0;
//scanf("%d",&sayi);
for(int i=100;i<300;i++){
    temp=i;
    while(temp>0){
        ters*=10;
        kalan=temp%10;
        ters+=kalan;
        temp/=10;
}
    if(ters==i)
        printf("%d\n",ters);
    ters = 0;
}
return 0;
}

Evet dün gece geç saatlerde arkadaş fark etti hatamı :/ Yine de çok teşekkürler.