teşekkür ederim yardımlarınız için abi biraz fazla yazdırmışın basamak değer toplamını yazmasına gerek yoktu bölse yeterdi

ben kırpayım biraz bunu tekrar teşekkür ederim.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 02:14:09 -->-> Daha önceki mesaj 01:41:38 --
aslında soruyu çözmeye çok yaklaşmışsın
C derleyicisi yok ben de java ile yaptım. Sadece sayı okuma ve yazdırmak kısımları farklı, onları değiştirip çalıştırabilirsin bu şekilde
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Bir Sayi Giriniz: ");
int sayi = in.nextInt();
int tmp1,tmp2;
int basamakToplami =0;
tmp2=sayi;
while(true)
{
tmp1= tmp2%10;
basamakToplami += tmp1;
tmp2 = tmp2/10;
if(tmp2<10)
{
basamakToplami+=tmp2;
break;
}
}
System.out.println("Basamak Toplamı: " + basamakToplami);
if(sayi%basamakToplami==0)
System.out.println("Tam bölünüyor");
else
System.out.println("Tam bölünmüyor !!!");
}
C ye dönüştürülmüş halide benden gelsin hocam o zaman
#include<stdio.h>
int main(void){
int sayi,tmp1,tmp2,basamakToplami=0;
printf("Bir Sayi Giriniz\n");
scanf("%d",&sayi);
tmp2=sayi;
while(1){
tmp1=tmp2%10;
basamakToplami+=tmp1;
tmp2=tmp2/10;
if(tmp2<10){
basamakToplami+=tmp2;
break;
}
}
printf("Basamak Toplami : %d\n",basamakToplami);
if(sayi%basamakToplami==0){
printf("Tam Bolunuyor \n");
}else{
printf("Tam Bolunmuyor \n");
}
return 0;
}
Biraz yüzsüzlük karışımıyla bir soru daha sorababilir miyim

Umarım selam verdik borçlu çıktık durumunu yaşatmıyorumdur
soruyu ben çok yanlış anlamışım basamak toplamını sayının son hanesine bölüp yazdıracakmışız 1234 = (1+2+3+4) = 10 10 4 e bolunmedıgı ıcın a bolunse b gibi.
if(sayi%basamakToplami==0)
kısmını
üstte tmp1=tmp2%10 şeklinde tanımladığımız için tmp1 i aldım.
if(basamakToplami%tmp1==0)
şeklinde değiştirdim fakat ne yazarsam yazayım else durumunu görmüyor.
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 02:30:13 -->-> Daha önceki mesaj 02:14:09 --
bu sorunuda çözdüm fakat gene wrong answer veriyor sistem programlamayı bırakıp ingilizce okuyayım ben en iyisi böyle olacak gibi değil.Üstteki sorduğumun cevabıda şu şekildeymiş, belki birine lazım olur.
#include<stdio.h>
int main(void){
int sayi,tmp1,tmp2,basamakToplami=0;
printf("Bir Sayi Giriniz: ");
scanf("%d",&sayi);
tmp2=sayi;
while(1){
tmp1=tmp2%10;
basamakToplami+=tmp1;
tmp2=tmp2/10;
if(tmp2<10){
basamakToplami+=tmp2;
break;
}
}
int a=sayi%10;
if(basamakToplami%a==0){
printf("po\n");
}
else{
printf("jo \n");
}
return 0;
}