Poslao: 01 Mar 2014 10:39
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Ali, moram li da svaku cifru unosim posebno?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 01 Mar 2014 10:50
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Druže, sad već postaješ neozbiljan. vasa.93 ::Svakako, morao bi da unosiš brojeve svaki posebno da bi izbegao dvosmislenost (123 možeš da posmatraš kao 1 i 12, kao 12 i 3, kao 1, 2 i 3...).Prva i osnovna stvar, ono što hoćeš da radiš ne možeš da radiš ciframa, već moraš brojevima. Cifara ima 10, a ti treba da "kodiraš" 26 karaktera.
E sad, ako hoćeš da unosiš brojeve odjednom, nije nemoguće, ali moraš da osmisliš algoritam na osnovu kog će računar da raspoznaje koji je koji broj.
|
|
|
|
Poslao: 01 Mar 2014 11:20
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Sada vec nista ne razumem, ama nista.
Stavio sam da svaki broj unosim posebno.
Stavio sam da niz ulaz bude tipa int.
Stavio sam da se ucitavanje podataka vrsi preko scanf.
Stavio sam da broj prebaci u slovo.
Stavio sam izlaz.
Ali ne radi. Posle svega ovoga, sve sam pobrkao. Nista ne razumem.
Hoces li, molim te, da mi ovo malo pojasnis? Sada bas nista ne razumem.
Evo vidi kod.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0, k;
int ulaz[200];
char izlaz[200];
while(1){
printf("Unesite broj: ");
scanf("%d\n", &ulaz[i++]);
if(ulaz[i] == 'i' || ulaz[i] == 'I')
break;
}
i = 0;
while(ulaz[i] <= 25)
izlaz[i] = ulaz[i++] + 'a';
for(k = 0; k < i; k++)
printf("%d", izlaz[k]);
system("PAUSE");
return EXIT_SUCCESS;
}
Znam da nesto nije dobro u prvoj while petlji. Ukucam lepo brojeve i kada ukucam 'i' zanaguje se program i izbaci mi error.
|
|
|
|
Poslao: 01 Mar 2014 11:34
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Napisano: 01 Mar 2014 11:31
Aj baci pogled na i++ i vidi šta ti uopšte proveravaš u telu petlje if naredbom...
Dopuna: 01 Mar 2014 11:34
Generalno ti je način unosa tupav. Printf izvuci pre petlje, a onda u programu brojeve unosi odvojene razmakom. Na kraji napiši i ili I i lupi enter.
|
|
|
|
Poslao: 01 Mar 2014 12:07
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Napisano: 01 Mar 2014 11:54
A da li ovaj de kod trebam da ostavim ili da menjam?
Rekao si mi da pogledam to, ali ne razumem kako bih drugacije mogao da stavljam podatke u nizu.
scanf("%d\n", &ulaz[i++]);
Dopuna: 01 Mar 2014 12:03
Promenio sam program kako si mi rekao, ukucao sam brojeve sa razmakom i na kraju upisao i.
Na izlazu mi je izbacio vazdan neke brojeve. Opet ne radi dobro. Vise stvarno ne razumem zasto.
Samo sam ovo promenio.
printf("Unesite brojeve: ");
while(1){
scanf("%d ", &ulaz[i]);
if(ulaz[i] == 'i' || ulaz[i++] == 'I')
break;
}
Dopuna: 01 Mar 2014 12:07
Tu je bila greska jer u zadnjem printfu je bilo stojalo %d, a trebalo je %s. Promenio sam ali sada kada ukucam brojeve izbacuje mi odmah error. Sta sada nije u redu?
|
|
|
|
|
Poslao: 01 Mar 2014 14:20
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Prepravio sam sve i stavio da kada naidje na broj 50, da prekine petlju. Ali mi na izlazu idalje ne izbacuje dobre rezultate. Kao da se petlja u programu ne prekine i da traje beckonacno.
Evo ti kod da vidis.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0, k;
int ulaz[200];
char izlaz[200];
printf("Unesite brojeve: ");
while(1){
scanf("%d ", &ulaz[i]);
if(ulaz[i++] == 50)
break;
}
i = 0;
while(ulaz[i] <= 25)
izlaz[i] = ulaz[i++] + 'a';
for(k = 0; k < i; k++)
printf("%s", izlaz[k]);
system("PAUSE");
return EXIT_SUCCESS;
}
|
|
|
|
Poslao: 01 Mar 2014 14:50
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
while(1){
scanf("%d ", &ulaz[i]);
if(ulaz[i++] == 50)
break;
} Nije ti potreban razmak kod pojedinačne ulazne konverzije. Treba da bude samo %d, bez razmaka posle.
|
|
|
|
Poslao: 01 Mar 2014 15:05
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Kada sam izbrisao taj razmak, odmah mi posle unosa izbacuje izlaz, ali ne dobar. Prvo mi izbaci slova, koja treba, a onda izbacuje nesto, ne znam ni ja sta. Vazdan neke znakove.
Rekao si mi da zatvorim string, ali kako da uradim to?
|
|
|
|
|