E ovako imam problem sa postavkom nekih zadataka i razmisljanja oko resenja i kako doci do njega.Tako vjezbajuci dodjem do ovakvih zadataka.
1. Napisati program koji dati niz karaktera razbija na dva niza karaktera date duzine.
Ja sam to ovako uradio ali program neradi kako treba.
Ovaj sam otkucao u C++ ali vjezbam uporedo i C.Jedan zadatak u C drugi u C++.Nisam htio da pravim dvije teme.
2. Napisati program koji ispituje da li su dva niza karaktera jednaki i da li su jendaki na prvih n mjesta. (nekoristiti datoteku string)
HVALA
1. Napisati program koji dati niz karaktera razbija na dva niza karaktera date duzine.
Ja sam to ovako uradio ali program neradi kako treba.
Code:
#include <iostream>
using namespace std;
int main()
{
char niz[100], niz1[100], niz2[100];
int i,d,d1,d2;
d=d1=d2=0; //duzine nizova
for (i=0; niz[i] != '\0'; i++)
{
cin>>niz[i];
d++;
}
if (d%2==0) //ako je duzina niza parna, htio sam da napravim dva niza jednakih duzina (recimo duzina je 8 ja pravim dva niza po 4)
{
d1=d/2;
for (i=0; niz[i] != '\0'; i++)
{
niz1[i] = niz[i];
cout << niz1[i] << endl;
niz2[i] = niz[i+d1];
cout << niz2[i] << endl;
}
}
else
{
d--;
d1=d/2;
for (i=0; niz[i] != '\0'; i++)
{
niz1[i] = niz[i];
cout << niz1[i] << endl;
niz2[i] = niz[i+d1];
cout << niz2[i] << endl;
}
}
cin>>i;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
char niz[100], niz1[100], niz2[100];
int i,d,d1,d2;
d=d1=d2=0; //duzine nizova
for (i=0; niz[i] != '\0'; i++)
{
cin>>niz[i];
d++;
}
if (d%2==0) //ako je duzina niza parna, htio sam da napravim dva niza jednakih duzina (recimo duzina je 8 ja pravim dva niza po 4)
{
d1=d/2;
for (i=0; niz[i] != '\0'; i++)
{
niz1[i] = niz[i];
cout << niz1[i] << endl;
niz2[i] = niz[i+d1];
cout << niz2[i] << endl;
}
}
else
{
d--;
d1=d/2;
for (i=0; niz[i] != '\0'; i++)
{
niz1[i] = niz[i];
cout << niz1[i] << endl;
niz2[i] = niz[i+d1];
cout << niz2[i] << endl;
}
}
cin>>i;
return 0;
}
Ovaj sam otkucao u C++ ali vjezbam uporedo i C.Jedan zadatak u C drugi u C++.Nisam htio da pravim dvije teme.
2. Napisati program koji ispituje da li su dva niza karaktera jednaki i da li su jendaki na prvih n mjesta. (nekoristiti datoteku string)
Code:
#include <stdio.h>
int Provjera (char niz1[100], char niz2[100], int n, int d1, int d2)
{
int i;
d1=d2=0;
if (d1 == d2)
{
printf("Da jednakih su duzina.\n");
return 1;
}
else
{
printf("Nisu jednakih duzina.\n");
return 1;
}
for (i=n; niz1[i] != '\0' && niz2[i] != '\0'; i++)
{
if (niz1[i] == niz2[i])
{
printf("Da jednaki su na prvih %d", n);
printf("mjesta.\n");
return 0;
}
}
if (n>d1 || n>d2)
{
printf ("Broj nije dobar u odnosu na duzinu nizova.\n");
return 0;
}
}
int main()
{
char prvi[100], drugi[100];
int n;
printf("Unesite prvi niz karaktera: ");
scanf ("%s", &prvi);
printf("Sada drugi: ");
scanf ("%s", &drugi);
printf("Unesite vrjednost za n: ");
scanf ("%d", &n);
int i, d1,d2;
d1=d2=0;
for (i=0; prvi[i] != '\0'; i++)
{
d1++;
}
for (i=0; drugi[i] != '\0'; i++)
{
d2++;
}
Provjera (prvi, drugi, n, d1, d2);
scanf("%d", &n);
return 0;
}
#include <stdio.h>
int Provjera (char niz1[100], char niz2[100], int n, int d1, int d2)
{
int i;
d1=d2=0;
if (d1 == d2)
{
printf("Da jednakih su duzina.\n");
return 1;
}
else
{
printf("Nisu jednakih duzina.\n");
return 1;
}
for (i=n; niz1[i] != '\0' && niz2[i] != '\0'; i++)
{
if (niz1[i] == niz2[i])
{
printf("Da jednaki su na prvih %d", n);
printf("mjesta.\n");
return 0;
}
}
if (n>d1 || n>d2)
{
printf ("Broj nije dobar u odnosu na duzinu nizova.\n");
return 0;
}
}
int main()
{
char prvi[100], drugi[100];
int n;
printf("Unesite prvi niz karaktera: ");
scanf ("%s", &prvi);
printf("Sada drugi: ");
scanf ("%s", &drugi);
printf("Unesite vrjednost za n: ");
scanf ("%d", &n);
int i, d1,d2;
d1=d2=0;
for (i=0; prvi[i] != '\0'; i++)
{
d1++;
}
for (i=0; drugi[i] != '\0'; i++)
{
d2++;
}
Provjera (prvi, drugi, n, d1, d2);
scanf("%d", &n);
return 0;
}
HVALA