Zasto mi uvijek brojilo radi krivo,zna tko?
// ZADATAK
//U prvoj se vrsi ucitavanje niza znakova maximalno 100
//U drugoj se vrsi citanje brojeva maximalno 100
//U glavnu funkciju se pozivaju sporedne funkcije,te vrsi ispis pocetne rijeci i broj brojeva unutar te rijeci
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
rijec(char polje[]){
printf("\n Upisi niz znakova");
gets(polje);
}
brojevi(char polje[]){
int i,br=0;
for(i=0;i<=100;i++){
if(polje>='0' && polje<='9'){ br=br+1;}
}
return br;}
main(){
char polje[100];
printf("\n U nizu znakova %s ima %d brojeva.",rijec(polje),brojevi(polje));
getch();
return 0;
}
devc++
Moderators: pedja089, stojke369, [eDo], trax
Re: devc++
index zadnjeg clana polja velicine 100 je 99. Tak da nemres pisati for(nesto; index <= 100; nesto), vec for(nesto; index < 100; nesto).
Druga stvar "buffer" ti je definiran lokalno i nije inicijaliziran te sadrzi slucajne vrijednosti, ak ga definiras globalno automatski ce biti inicijaliziran vrjednoscu 0. Ako ga zadrzis lokalno definiraj "buffer" kao char polje[100] = {0}; Ak nejde tak onda na pocetak stavi for(i=0; i < 100; i++) polje = 0;
Druga stvar "buffer" ti je definiran lokalno i nije inicijaliziran te sadrzi slucajne vrijednosti, ak ga definiras globalno automatski ce biti inicijaliziran vrjednoscu 0. Ako ga zadrzis lokalno definiraj "buffer" kao char polje[100] = {0}; Ak nejde tak onda na pocetak stavi for(i=0; i < 100; i++) polje = 0;
Re: devc++
Nije u tome problem,program radi,samo brojac uvijek izbacuje krivu vrijednost,adeklarirao sam ga u pocetku br=0; tako da bi za svaku znamenku0-9 trebao uvecat svoju vrijednost za 1,mozda sam nesto pogrijesio jer radim s funkcijama,da nisu funkcije u pitanju nebih fulao.
vjerojatno je stvar u funkcijama,ali ne mogu nac gresku,nikakav error,samo krivo radi =)
vjerojatno je stvar u funkcijama,ali ne mogu nac gresku,nikakav error,samo krivo radi =)
Re: devc++
nisam ni rekao da program ne radi, nego zasto radi krivo! C kompajler ne provjerava dal je prekoracen index polja, ti kao programer moras voditi racuna o tome. Ako polje pak nije inicijalizirano, sadrzi slucajne vrijednosti koje naravno mogu biti i znamenke 0-9. Neznam sad jel gets umece i bajt 0 na kraj stringa, ak da, onda provjeravaj znakove dok ne dosegnes vrijednost 0 (pazi ne znak '0' vec bas 0 )
Re: devc++
kuzim sto hoces reci,ali ne uspijevam
-
- Pravo uznapredovao :)
- Posts: 248
- Joined: 19-03-2011, 18:20
- Location: Milutovac/Trstenik/Krusevac
- Contact:
Re: devc++
evo ti jedan prost zatak koji stampa elemente niza koji su veci od -1 a manji od 7.
program meni radi,pa ti vidi gde si pogresio u tvom
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
main()
{
int n,G=0,Y[1024],i;
printf("n?\n");
scanf("%d",&n);
printf("elementi\n");
for (i=0;i<n;i++)
scanf("%d",&Y);
printf("resenje- \n");
for (i=0;i<n;i++)
{
if(Y>-1&&Y<7)
{
G++;
printf("%d\n",Y);
}
}
printf("broj elemenata \n %d\n",G);
system ("pause");
return 0;
}
program meni radi,pa ti vidi gde si pogresio u tvom
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
main()
{
int n,G=0,Y[1024],i;
printf("n?\n");
scanf("%d",&n);
printf("elementi\n");
for (i=0;i<n;i++)
scanf("%d",&Y);
printf("resenje- \n");
for (i=0;i<n;i++)
{
if(Y>-1&&Y<7)
{
G++;
printf("%d\n",Y);
}
}
printf("broj elemenata \n %d\n",G);
system ("pause");
return 0;
}
Kad porastem bicu Feko,ili mozda Pedja!!!:) :) :)
Re: devc++
ma hvala,kad ne radim s funkcijama to mi radi bez beda,ali ovaj gore bas i ne =)