Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
ahoj mám problém s atoi, kód zde:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int i; int delka; char string[9]; gets(string); delka = strlen(string); for(i = delka; i >= 0; i--) { char a = string[i]; printf("%c\n", a); int soucet; soucet = 1 + atoi(&a); printf("\n%i\n", soucet); } return 0; }
načtu pole znaků (čísel), které následně vypíši v opačném pořadí a ke každému prvku pole přičtu 1, ale nechce to fungovat, pro vstup {1} program vypíše:
1
1
12
jenže já chtěl:
1
2
program je napsán v Céčku, díky moc za pomoc
Offline
↑ ReVolt:
Ve for cyklu napis delka-1 (pole v cecku jsou od 0), kdyby jsi si výpisy pojmenoval, tak by jsi zjistil proč se ti vypisuje takto.
Deklarace by jsi měl psát všechny na začátku (není to nutnost, ale je to přehlednější).
Offline
↑ gladiator01:
nepomohlo a při vstupu 123 je výstup
3
3124
2
2124
1
1124
je to určitě nějaká blbá chyba, jak bys to vyřešil ty
Offline
↑ ReVolt:
Já jsem jen vyhodila deklarace na začátek:
int i; int delka; int soucet; char a; char string[9]; printf("Zadej retezec cisel:"); gets(string); delka = strlen(string); for(i = delka-1; i >= 0; i--) { a = string[i]; printf("\nc=%c", a); soucet = 1 + atoi(&a); printf("\n1+c=%i\n", soucet); }
Offline
↑ gladiator01:
díky moc, měl jsem v tom hroznej bordel, poté co jsem deklarace proměnných dal na začátek jako ty tak vše funguje
Offline