You are on page 1of 8

Zadatak 1. Sastaviti program na jeziku C za crtanje strelice prema slici na glavnom izlazu racunara.

*
**
***
************
*************
************
***
**
*
#include<stdio.h>
main() {
int n,i,j,nzv,kor; char rep=‘ ’;
while(1) {
printf(“n?”); scanf(“%d”,&n);
if(n<=0) break;
putchar(‘\n’);
nzv=0; kor=1;
for(i=1;i<=3*n;i++) {
nzv+=kor;
for(j=1;j<3*n;j++) putchar(rep);
for(j=1;j<=nzv;j++) putchar(‘*’);
putchar(‘\n’);
if(i==n) rep=‘*’;
if(i==3*n/2+1) kor=-1;
if(i==2*n) rep=‘ ’;
}
putchar(‘\n’);
}
Return 0;
}
Zadatak 2. Sastaviti na jeziku C program kojim se tekst sa glavnog ulaza racunara
prepise na glavni izlaz racunara uz razdvajanje reci po jednim znakom razmaka.
Reci su na ulazu razdvojene proizvoljnim brojem znakova razmaka i/ili tabulacija.
Tekst se zavrsava signalom za kraj datoteke. Raspodela reci u redove treba da se
ocuva.

#include<stdio.h>
#define F 0
#define T 1
main() {
int znak,ima=T;
while((znak=getchar())!=EOF)
if(znak!=‘ ’ && znak!=‘\t’)
{ putchar(znak); ima=znak==‘\n’; }
else if (! ima) { putchar(‘ ‘); ima=T; }
}
Zadatak 3. Napisati program kojim se tekst sa glavnog ulaza racunara prepise na glavni
izlaz racunara uz zamenu znakova za tabulaciju odgovarajucim brojem znakova
razmaka tako da se izgled teksta ne izmeni. Pretpostaviti da se znakom za
tabulaciju postize preskakanje pozicija do prve naredne pozicije ciji je redni broj
oblika 8k+1 (k=0,1,2,…).

#include<stdio.h>
main() {
int znak,poz=0;
while((znak=getchar()) != EOF)
if(znak!=‘\t’) {
putchar(znak);
poz=(znak!=‘\n’) ? poz+1 : 0;
} else
do
putchar(‘ ‘);
while(++poz % 8);
}
Zadatak 4. Uredjivanje imena po abecednom redosledu.
#include<stdio.h>
#include<string.h>
#define N 100 /*najveci broj imena*/
#define D 40 /*najveca duzina imena*/
main() {
char ljudi[N][D+1],osoba[D+1]; int i,j,m,n=0;
/*citanje neuredjenog niza imena:*/
printf(“Neuredjeni niz prezimena i imena?\n\n”);
do
gets(ljudi[n]);
while(strcmp(ljudi[n++],”. .”) !=0 );
n--;
/*uredjivanje niza imena*/
for(i=0;i<n-1;i++) {
m=i;
for(j=i+1;j<n;j++)
if(strcmp(ljudi[j],ljudi[m]) <0 ) m=j;
if(m != i)
strcpy(osoba, ljudi[i]);
strcpy(ljudi[i], ljudi[m]);
strcpy(ljudi[m], osoba);
}
}
/*ispisivanje uredjenog niza imena:*/
printf(“\n Uredjeni niz imena: \n\n”);
for(i=0;i<n;puts(ljudi[i++]));
}
Zadatak 5. Napisati program koji iz datog stringa s izdvaja i ispisuje sve reci koje imaju od 4 do 10
slova.

#include<stdio.h>
#include<string.h>
void main() {
static char s[50],q[50][50]; unsigned i,j,k;
gets(s); k=0; j=0;
for(i=0;i<strlen(s);i++)
if(s[i] != ‘ ’) k++;
else {
if(k>=4 && k<=10)
{ strcpy(q[j],s+i-k); q[j++][k]=‘\0’; }
k=0;
}
if(k>=4 && k<=10)
{ strcpy(q[j],s+i-k); q[j++][k]=‘\0’; }
for(i=0;i<j;i++)
puts(q[i]);
}
Zadatak 6. Napisati program kojim se odredjuje broj reci u stringu s i duzina najduze
reci, ako su reci razdvojene blanko simbolima.

#include<stdio.h>
void main() {
char s[80]; int i,b,t,max; gets(s); max=b=t=0;
for(i=0;s[i];i++)
if(s[i]==‘ ’)
{
if(t>max) max=t;
t=0;
}
else
{
if(!t) b++;
t++;
}
if(t>max) max=t;
printf(“%d %d \n”,b,max);
}
Zadatak 7. Napisati program koji odredjuje da li se u datom stringu s pre pojavljuje rec sa najvise ili rec sa
najmanje slova.
#include<stdio.h>
void main() {
char s[100]; int k,max=0,min=100,posMax,posMin; gets(s); k=0;
for(int i=0;s[i];i++)
if(s[i]!=‘ ’)
k++;
else
if(k>0)
{
if(k>max) {max=k;posMax=i-k;}
if(k<min) {min=k;posMin=i-k;}
k=0;
}
if(k>0)
{
if(k>max) {max=k;posMax=i-k;}
if(k<min) {min=k;posMin=i-k;}
}
if(posMax<posMin)
puts(“Pre se pojavljuje rec sa najvise znakova”);
else
puts(“Pre se pojavljuje rec sa najmanje znakova”);
}
Zadatak 8. Napisati program kojim se uredjuje dati string tako da nema suvisnih
praznina, tj. nema susednih praznina.

#include<stdio.h>
#include<string.h>
void main() {
char s[80],*p; int i; gets(s); p=s;
for(i=0;s[i];i++)
if(!i || !(s[i]==‘ ‘ && s[i-1]==‘ ’))
*p++=s[i];
*p=‘\0’;
puts(s);
}

You might also like