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

Duże liczby (a w niej samej przecinki) :P

Cloud VPS
0 głosów
578 wizyt
pytanie zadane 6 stycznia 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)

Cześć

Mam zadanie o takiej treści:

Napisz funkcję, która przyjmie liczbę i następnie zapisze ją do tablicy output o rozmiarze size, wstawiając przecinki co trzecią cyfrę, licząc od końca. Funkcja powinna zwrócić wartość 0 w przypadku sukcesu lub 1 jeżeli operacja się nie powiedzie. Prototyp funkcji powinien wyglądać następująco:

int add_comas(long long a, char output[], int size);

Napisz program, który pobierze od użytkownika liczbę, a następnie wyświetli ją ze wstawionymi przecinkami, w przypadku podania błędnych danych przez użytkownika program powinien wyświetlić komunikat Incorrect input i zakończyć działanie z kodem błędu 1.

Przykładowe wejście:

Podaj liczbę:
-7929

Przykładowe wyjście:

-7,929

Póki co mam rozpisane coś takiego:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int add_comas(long long a, char output[], int size);
int main(int argc, char *argv[]) 
{
	long long zmienna1;
	printf("Podaj liczbe:");
	if(scanf("%li",&zmienna1)!=1)
	{
		printf("Incorrect input");
		return 1;
	}
	int rozmiar=100;
	char tabela_wynikowa[100]={0};
	sprintf(tabela_wynikowa, "%d", zmienna1);
	add_comas(zmienna1,tabela_wynikowa,rozmiar);
	
	return 0;
}
int add_comas(long long a, char output[], int size)
{
	
	int i;
	int rozmiar=0;
	for(i=0;i<=99;i++)
	{
		if(output[i]==0 && output[i+1]==0)
		{
			break;
		}
		printf("%c",output[i]);
		rozmiar++;	
	}
	if((a>-999 && a<999))
    {
        return 1;
    }
	int dodatkowe_na_przecinki=0;
	int zm_pom_1;
	int zm_pom_2;
	if(output[0]!='-')
	{
	 zm_pom_1=rozmiar/3;
	 //zm_pom_2=rozmiar%3;
    }
    else if( output[0]=='-')
    {
    	 zm_pom_1=(rozmiar-1)/3;
	     //zm_pom_2=(rozmiar-1)%3;
	}
	dodatkowe_na_przecinki=zm_pom_1+zm_pom_2;
	size=rozmiar+dodatkowe_na_przecinki;
	printf("\nNowy rozmiar z uwzglednionymi przecinkami to: %d",size);
	int licznik=0;
	//printf("\nRozmiar wynosi: %d",rozmiar);
	return 0;

No i teraz pojawia się pytanie. Czy póki co dobrze zrozumiałem zadanie? Jeśli liczba będzie mniejsza niż -999, lub większa od 999 zapisanie przecinka nie będzie możliwe. Size nadpisałem.

Pytanie teraz jest takie. Jak mogę wpisać te przecinki?  :/

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 880 wizyt
pytanie zadane 3 stycznia 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
0 odpowiedzi 502 wizyt
pytanie zadane 7 maja 2020 w C i C++ przez anon1234 Nowicjusz (120 p.)

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,908 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

Kursy INF.02 i INF.03
...