ljudi treba mi pomoc oko ovog zadatka zeza me '\0' nece nikako da mi ispadne kako treba
#include <iostream>
#include <conio.h>
using namespace std;
void unos (char [], int);
int slova(char [], char [], int);
int vokali(char [], int);
int main()
{
const int a = 7;
char niz1[a], niz2[a];
niz1[a-1] = '\0';
niz2[a-1] = '\0';
cout << "Unesite elemente prvog niza" << endl;
unos(niz1, a);
cout << "Unesite elemente drugog niza" << endl;
unos(niz1, a);
cout << "Ukupno slova u oba niza ima " << slova(niz1, niz2, a) << endl;
cout << "Ukupno vokala u prvom nizu ima " << vokali(niz1, a) << endl<< endl << endl << endl;
for(int i = 0; i < a-1; i++)
cout << niz1 << endl;
for(int x = 0; x < a -1; x++)
cout << niz2[x] << endl;
getch();
return 0;
}
void unos (char niz1[], int a)
{
for(int i = 0; i < a - 2; i++)
{
cin >> niz1;
}
cin.ignore(10000, '\n');
}
int slova(char niz1[], char niz2[], int a)
{
int brSlova = 0;
for(int i = 0; i < a - 1; i++)
{
if(niz1 >= 'a' && niz1 <= 'z')
brSlova++;
else if(niz1 >= 'A' && niz1 <= 'Z')
brSlova++;
}
for(int x = 0; x < a-1; x++)
{
if(niz2[x] >= 'a' && niz2[x] <= 'z')
brSlova++;
else if(niz2[x] >= 'A' && niz2[x] <= 'Z')
brSlova++;
}
return brSlova;
}
int vokali(char niz1[], int a)
{
int brSamo = 0;
for(int i = 0; i < a-1; i++)
{
if(niz1 == 'a' || niz1 == 'A' || niz1 == 'e' || niz1 == 'E' || niz1[i] == 'i' || niz1[i] == 'I' || niz1[i] == 'o' || niz1[i] == 'O' || niz1[i] == 'u' || niz1[i] == 'U')
brSamo++;
}
return brSamo;
}
[C] char niz problem
Moderator/ica: Moderatori/ce
Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
- retsam
- Postovi: 2254
- Pridružen/a: 11 svi 2009, 16:26
- Spol: M
- OS: Arch Linux x86-64 subtle
- Lokacija: /dev/pts/0
Re: char niz problem
Neznam koji ti je zadatak i je li eksplicitno navedeno dasam moraš pisati funkciju za unos i brojanje slova, evo nešt sam nabrzinu napisao:
Kod: Označi sve
#include <stdio.h>
#include <ctype.h>
#define VPOL 7
int vokali(char *, int);
int slova(char *, int);
int main()
{
char niz1[VPOL], niz2[VPOL];
printf("Unesite elemente prvog niza: \n");
scanf("%s", niz1);
printf("Unesite elemente drugog niza: \n");
scanf("%s", niz2);
printf("Ukupno slova u oba niza ima: %d\n", slova(niz1, VPOL) + slova(niz2, VPOL));
printf("Ukupno vokala u prvom nizu ima: %d\n\n\n\n", vokali(niz1, VPOL));
printf("%s\n%s\n", niz1, niz2);
return(0);
}
int slova(char *niz, int vel)
{
int brSlova, i;
brSlova = 0;
for (i = 0; niz[i] != '\0'; i++)
if (isalpha(niz[i]))
brSlova++;
return(brSlova);
}
int vokali(char *niz, int vel)
{
int brSamo, i;
brSamo = 0;
for(i = 0; i < vel; i++)
if(niz[i] == 'a' || niz[i] == 'A' || niz[i] == 'e' || niz[i] == 'E' || niz[i] == 'i' || niz[i] == 'I' || niz[i] == 'o' || niz[i] == 'O' || niz[i] == 'u' || niz[i] == 'U')
brSamo++;
return(brSamo);
}
Ken Thompson je napisao/la:One of my most productive days was throwing away 1000 lines of code.
Pikacode - Arch configs
Pikacode - dwm config
- nicky
- Site Admin
- Postovi: 2074
- Pridružen/a: 07 pro 2007, 16:30
- Spol: Ž
- OS: ubuntu 12.04
- Lokacija: Zagreb
Re: char niz problem
Čini mi se da imaš par grešaka:
1. Kad zoveš funkciju unos(niz1, a); oba puta pošalješ polje niz1 pa se samim time prvouneseno polje u niz1 prebriše
2. u funkciji unos bi trebao poslije for petlje dodati niz1[a-1] = 0;
1. Kad zoveš funkciju unos(niz1, a); oba puta pošalješ polje niz1 pa se samim time prvouneseno polje u niz1 prebriše
2. u funkciji unos bi trebao poslije for petlje dodati niz1[a-1] = 0;
- retsam
- Postovi: 2254
- Pridružen/a: 11 svi 2009, 16:26
- Spol: M
- OS: Arch Linux x86-64 subtle
- Lokacija: /dev/pts/0
Re: char niz problem
Nicky je navela problem što prepišeš niz 1, a imaš još jedan problem(bug) ovdje:
Ti vrtiš petlju od 0 do 5 (a ne do 6) dakle to jedno mjesto na indexu 5 ti ostaje prazno(?). Ja sam malo prepravio svoj prošli kod dodao funkciju unos, doduše napisano je u C-u, tako da ako ti baš treba možeš pokušati prepisati u c++, a radit će ti i ovaj kod ako uključiš potrebne library-e:
Kod: Označi sve
void unos (char niz1[], int a)
{
for(int i = 0; i < a - 2; i++)
{
cin >> niz1[i];
}
cin.ignore(10000, '\n');
}
Kod: Označi sve
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
/* magic number */
#define VPOL 7
int vokali(char *, int);
int slova(char *, int);
void unos(char *, int);
int main()
{
char *niz1, *niz2;
niz1 = malloc(VPOL * sizeof(char));
niz2 = malloc(VPOL * sizeof(char));
if (niz1 == NULL || niz2 == NULL) {
printf ("No memory");
exit(1);
}
printf("Unesite elemente prvog niza: \n");
unos(niz1, VPOL);
printf("Unesite elemente drugog niza: \n");
unos(niz2, VPOL);
printf("Ukupno slova u oba niza ima: %d\n", slova(niz1, VPOL) + slova(niz2, VPOL));
printf("Ukupno vokala u prvom nizu ima: %d\n\n\n\n", vokali(niz1, VPOL));
printf("%s\n", niz1);
/* oslobodi memoriju */
free (niz1);
free (niz2);
return(0);
}
void unos (char *niz, int a)
{
int i;
for(i = 0; i < a - 1; i++)
{
niz[i] = getchar();
}
niz[i-1] = 0;
}
int slova(char *niz, int vel)
{
int brSlova, i;
brSlova = 0;
for (i = 0; niz[i] != 0; i++)
if (isalpha(niz[i]))
brSlova++;
return(brSlova);
}
int vokali(char *niz, int vel)
{
int brSamo, i;
brSamo = 0;
for(i = 0; i < vel; i++)
if(niz[i] == 'a' || niz[i] == 'A' || niz[i] == 'e' || niz[i] == 'E' || niz[i] == 'i' || niz[i] == 'I' || niz[i] == 'o' || niz[i] == 'O' || niz[i] == 'u' || niz[i] == 'U')
brSamo++;
return(brSamo);
}
Ken Thompson je napisao/la:One of my most productive days was throwing away 1000 lines of code.
Pikacode - Arch configs
Pikacode - dwm config