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? :/