Naprogramujte funkci s následující hlavičkou.
int compute_sum(char src[], char result[], int n);
Argumenty funkce:
src
je řetězec obsahující dvě celá nezáporná čísla v
desítkové soustavě oddělená mezerou. Například
"1200000 1234560"
nebo "120 123"
,result
je pole, do které se zapíše výsledek,n
je velikost pole result.Funkce spočítá součet čísel z řetězce src
a výsledek
zapíše jako řetězec do pole result
a vrátí 1
jako návratovou hodnotu. Pokud se výsledek do pole result
nevejde, vrátí funkce hodnotu 0
. Na obsahu pole
result
pak nezáleží.
Funkce musí fungovat pro libovolně velká čísla (nelze tak použít postup, kdy nejdříve převedete čísla z řetězce na hodnoty některého celočíselného typu v C, provede součet a výsledek převedete zpět na řetězec.)
char r[5];
int v;
/* nasledujici vede k vypsani: 30 */
= compute_sum("10 20", r, 5);
v if (v) {
("%s\n", r);
printf}
else {
("vysledek je moc velky\n");
printf}
/* nasledujici vede k vypsani: 1098 */
= compute_sum("99 999", r, 5);
v if (v) {
("%s\n", r);
printf}
else {
("vysledek je moc velky\n");
printf}
/* vede k vypsani: 2000 */
= compute_sum("1000 1000", r, 5);
v if (v) {
("%s\n", r);
printf}
else {
("vysledek je moc velky\n");
printf}
/* nasledujici vede k vypsani: vysledek je moc velky */
= compute_sum("1234567891011134 1201341341", r, 5);
v if (v) {
("%s\n", r);
printf}
else {
("vysledek je moc velky\n");
printf}
/* vede k vypsani: vysledek je moc velky */
= compute_sum("9000 1000", r, 5);
v if (v) {
("%s\n", r);
printf}
else {
("vysledek je moc velky\n");
printf}