Prosty program w C nie działa

0

Czemu ten program wgl nie chce mi się włączyć?
Wyskakuje puste okno...
A przecież chyba wszystko ok.
Proszę o pomoc.

#include <stdio.h>

int main()
{

int liczba,stan=1,cyfra,suma=0;
long long l;

while(stan==1);
{

printf("Podaj liczbe:               (\"k\" aby zakonczyc)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
stan=scanf("%d",&liczba);

	for(l=100000000;l>=1;l/=10)
	{
	cyfra=liczba/l;
	suma+=cyfra;
	liczba-=cyfra*l;
	}
	
printf("Suma cyfr %d to %d.\n\n-----------------------------------------\n\n\n\n\n",liczba,suma);
}

system("Pause");
return 0;

}

0

Po while() stawia się średnik? Po co jest ten while w ogóle? Co to jest za 1. ? Kompilator nic nie zwraca?

0

O boże! Jak ja Ci jestem wdzięczny! Już z 15 min na to straciłem ,a to okazał się głupii średnik...Godzina robi swoje.

To "1." to nie wiem czemu się tak wkleiło,miał być normalnie #.a
A kompilator nic nie zwracał bo ze średnikiem brał while jako pętle pustą i przy okazji nieskończoną (bo "stan" nigdy się nie zmieniał).

Dzięki jeszcze raz za pomoc,mogę iść spać spokojny :)

Jak co,poprawiony i działający kod wygląda tak:

#include <stdio.h>

int main()
{

int liczba,liczba2,stan=1,cyfra,suma=0;
long long l;

printf("Podaj liczbe: ("k" aby zakonczyc)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
stan=scanf("%d",&liczba);
liczba2=liczba;

while(stan==1)
{
	for(l=100000000;l>=1;l/=10)
	{
	cyfra=liczba/l;
	suma+=cyfra;
	liczba-=cyfra*l;
	}
	
printf("Suma cyfr %d to %d.\n\n-----------------------------------------\n\n\n\n\n",liczba2,suma);

printf("Podaj liczbe:               (\"k\" aby zakonczyc)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
stan=scanf("%d",&liczba);
}

system("Pause");
return 0;

}

0

Czy nie prościej:

#include <stdio.h>

int main()
  {
   int liczba,copy,suma=0;
   for(;;)
     {
      printf("Podaj liczbe:               (\"k\" aby zakonczyc)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
      if(scanf("%d",&liczba)!=1) break;
      for(suma=0,copy=liczba;copy;copy/=10) suma+=copy%10;
      printf("Suma cyfr %d to %d.\n\n-----------------------------------------\n\n\n\n\n",liczba,suma);   
     }
   return 0;
  }
0

No problem. ;)

0

**_13th_Dragon **

A i owszem,faktycznie lepszy sposób,lecz niestety nie wpadłem na %.
Widać po prostu ,że jeszcze dużo muszę się nauczyć.

Dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1