1. Napisati program koji dati niz karaktera razbija na dva niza karaktera date duzine.
Ja sam to ovako uradio ali program neradi kako treba.
#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)
#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