Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

2 erora a ne znam gde su :S

[es] :: C/C++ programiranje :: 2 erora a ne znam gde su :S

[ Pregleda: 1937 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

diwljina
Beograd, Srbija

Član broj: 286033
Poruke: 20
*.dynamic.sbb.rs.



+12 Profil

icon 2 erora a ne znam gde su :S08.06.2011. u 22:14 - pre 155 meseci
Znaci dobio sam za maturski neki zadatak i prepisao sam ga al mi pokazuje 2 greske... inace zadatak glasi ovako :
Napisati program koji ucitava recenice ispravlja pocetna slova dodaje tacke i spaja u tekst.
Molim za pomoc :(
#include<string.h>
#define BR 5000
void main()
{
char tekst[BR+1]="\0",recenica[BR+1],prazno[2];
char kraj[]=".?!";
int i=0,n;
strcpy(prazno,"");
while(1)
{
puts("Unesite recenicu");
gets(recenica);if(strlen(recenica)==0)break;
if(strlen(recenica+strlen(tekst))>BR)
{
puts("\n Prekidamo unos, nema dovoljno mesta!");break;
}
if(recenica[0]>='a'&&recenica[0]<-'z')
recenica[0]=recenica[0]-('a'-'A');
i++;
n=strlen(recenica);
if(recenica[n-1]!=kraj[0]&&recenica[n-1]!=kraj[1]&&recenica[n-1]!=kraj[2])
strcat(recenica,".");
strcat(tekst,recenica);
strcat(tekst,prazno);
}
puts("Uneli ste sledeci teskt:");
puts(tekst);
}
 
Odgovor na temu

MasterOfDisaster
Srbija

Član broj: 274933
Poruke: 71
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: 2 erora a ne znam gde su :S09.06.2011. u 00:10 - pre 155 meseci
Nisam radio zadatke ko zna koliko vremena ali ovo sto si ti postavio su brljotine sa minimum 222 greske, evo resenja:

Code:

#include <stdio.h>
#include <string.h>

#define MAX_CH 5000

int main()
{
    int n, i=0;
    char kraj[]={'.', '?', '!'};
    char sRecenica[MAX_CH+1]="\0";

    printf("Unesite recenicu: ");

    while(sRecenica[i-1]!='0')
    {
        scanf("%c", &sRecenica[i]);

        if( strlen(sRecenica) > MAX_CH-1)
        {
            puts("Prekidamo unos, nema dovoljno mesta!");
            break;
        }

        i++;
    }

    if(sRecenica[0]>='a' && sRecenica[0]<='z')
        sRecenica[0] = sRecenica[0]-32;

    n=strlen(sRecenica)-2;

    if(sRecenica[n]!=kraj[0] && sRecenica[n]!=kraj[1] && sRecenica[n]!=kraj[2])
        sRecenica[n]='.';

    puts("Uneli ste sledeci teskt: ");
    puts(sRecenica);

    return 0;
}


Kad unosis recenicu ukucas "bla bla bla0" i on u odnosu na 0 prekida unos, ja se ne mogu setiti pametnijeg uslova, mozda ce se neko javi da ispravi.

Pozdrav :)

[Ovu poruku je menjao MasterOfDisaster dana 09.06.2011. u 12:07 GMT+1]
 
Odgovor na temu

MasterOfDisaster
Srbija

Član broj: 274933
Poruke: 71
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: 2 erora a ne znam gde su :S09.06.2011. u 00:15 - pre 155 meseci
Ili evo prostijeg primera, gde ti ne treba nula na kraju:

Code:

#include <stdio.h>
#include <string.h>

#define MAX_CH 5000

int main()
{
    int n, i=0;
    char kraj[]={'.', '?', '!'};
    char sRecenica[MAX_CH+1]="\0";

    printf("Unesite recenicu: ");
    fgets(sRecenica, MAX_CH, stdin);

    if(sRecenica[0]>='a' && sRecenica[0]<='z')
        sRecenica[0] = sRecenica[0]-32;

    n=strlen(sRecenica)-1;

    if(sRecenica[n]!=kraj[0] && sRecenica[n]!=kraj[1] && sRecenica[n]!=kraj[2])
        sRecenica[n]='.';

    puts("Uneli ste sledeci teskt: ");
    puts(sRecenica);

    return 0;
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: 2 erora a ne znam gde su :S

[ Pregleda: 1937 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.