• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Petle - loop-cwiczenie

Object Storage Arubacloud
0 głosów
317 wizyt
pytanie zadane 3 marca 2016 w C i C++ przez Artur Zaremba Nowicjusz (120 p.)

Witam

Na poczatku chcialbym podziekowac panu Mirosawowi za ogromna pomoc ;)

przejde teraz do pytania  mam problem z cwiczeniem na petlach w C ,pytanie brzmi :

Write a program that reads a number from the keyboard, separates it into its individual digits and prints

the digits to screen, each on its own line followed by the same number of stars as itself.

Example:

Input:

2339

Output:

9 *********

3 ***

3 ***

2 **

Hint: make use of mathematical operations (division, modulus). Yes, you will end up with digits in reverse

order, that is expected.

 

a to co udalo mi sie rozwiazac:

 

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

int main () {
	int n , i = 0 ;
	int digit ;
	printf(" Number=");
	scanf("%d",&n);   // ask user for number

   
    
    
    
	while (digit = n % 10 ) {
		printf("\n%d",digit);  // modules the user number to extract and print digit



		while ( i++ < digit){  // print " * " equal to number of digit
         printf("*");
         
         while ( --digit)
         
         
         printf("*");

		
	 }


                  // divide number to get modules from next number
     
     n = n /10 ; 
	}
	


getch ();
	return 0 ;
}

Czasem wyswieltja sie tylko 3/4 cyfr z gwiadkami , a czasami co druga cyfra pokazuje odpowiednia ilosc gwiazdek .Ma ktos pomysl jak to rozwiklac ? ;)

z Gory dziekuje za kazda pomoc.

Milego dnia ;)  

 

 

 

2 odpowiedzi

0 głosów
odpowiedź 3 marca 2016 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Nie rozumiem czemu ma służyć pętla ostatnia. A może spróbuj pokolei cyfry wpisać w dynamicznie alokowane zmienne(ewentualnir tablice, w c to się chyba robi za pomocą malloc). I potem wypisać te zmienne i przy każdorazowym wypisaniu zrobić pętle for, która doda odpowiednią ilość *.
komentarz 3 marca 2016 przez Artur Zaremba Nowicjusz (120 p.)
jeszcze nie dotarlem do malloc ;p jestem dopiero poczatkujacy ,

czyli chodzi ci o to zeby np wypisac ze for (1 = *) 2=**   itd ?

dzieki ;)
komentarz 3 marca 2016 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
To wczytaj cyfre (nie liczbe). Potem w pętli for zrób takie warunki (int i=0; i
komentarz 3 marca 2016 przez Artur Zaremba Nowicjusz (120 p.)

chjesli chodzi ci o to to wyskakuje mi blad ;/

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

int main () {
	int n , i = 0 ;
	int digit ;
	printf(" Number=");
	scanf("%d",&n);   // ask user for number

   
    
    
    
	while (digit = n % 10 ) {
		printf("\n%d",digit);  // modules the user number to extract and print digit



		while ( i++ < digit){  // print " * " equal to number of digit
         printf("*");
         
         for (i= 0 ;i){
         
         printf("*");
	}
	 }


                  // divide number to get modules from next number
     
     n = n /10 ; 
	}
	


getch ();
	return 0 ;
}

 

komentarz 3 marca 2016 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Bo źle zaimplementowałeś pętle for. for(deklaracja zmiennej; warunek na zmienna; instrukcja na zmienna) Np. for(int i=0; i < liczba; i++) To "i" musisz zadeklarować w forze a nie wcześniej.
0 głosów
odpowiedź 3 marca 2016 przez Patrycjerz Mędrzec (192,320 p.)
edycja 3 marca 2016 przez Patrycjerz

Najpierw wyznacz sobie pojedyncze cyfry, stosując poniższy algorytm:

int cyfry[100]; // Tablica cyfr
int liczba; // Nasz liczba do zbadania
scanf("%i", &liczba);
int ilosc = 0; // Ilość cyfr w liczbie
for(int i = 0; liczba > 0; i++)
{
    cyfry[i] = liczba % 10; // Reszta z dzielenia
    liczba = liczba / 10; // Dzielenie całkowite (dzielenie intów nie zostawia części ułamkowej)
    ilosc++; // Inkrementacja ilości cyfr
}

Teraz wystarczy wypisać cyfry z tablicy, w ilości oznaczonej wartością zmiennej ilosc, zaczynając od pierwszej, wraz z gwiazdkami, w ilości oznaczonej wartością poszczególnej cyfry.

komentarz 3 marca 2016 przez Artur Zaremba Nowicjusz (120 p.)

dzieki

czyli teraz printf ma byc w nawiasie od for czy po zanim ?

komentarz 3 marca 2016 przez Patrycjerz Mędrzec (192,320 p.)
Jak w nawiasie? Po prostu, tworzysz sobie pętle w pętli: pierwsza wypisuje kolejne cyfry, druga gwiazdki.

Podobne pytania

0 głosów
2 odpowiedzi 182 wizyt
pytanie zadane 22 maja 2019 w JavaScript przez BT101 Stary wyjadacz (12,540 p.)
0 głosów
3 odpowiedzi 935 wizyt
pytanie zadane 9 marca 2017 w Python przez __new__in__town Bywalec (2,100 p.)
0 głosów
1 odpowiedź 559 wizyt

92,551 zapytań

141,396 odpowiedzi

319,526 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...