Програмирање 2/Блок 1
Statistika pojavljivanja
Sastaviti program na programskom jeziku C za određivanje i ispis broja velikih slova, malih slova i cifara u tekstu koji se iz proizvoljnog broja redova učitava preko glavne ulazne jedinice. Ispis podataka se vrši u zasebnim redovima. Tekst se završava znakom za kraj datoteke.
#include <stdio.h>
#include <ctype.h>
#define MAX 1000
int main() {
int dig = 0, upp = 0, low = 0;
char s[MAX];
fgets(s, MAX , stdin);
//scanf("%s", s);
for(int i=0; s[i]!='\0'; i++) {
dig += isdigit(s[i]) != 0; //dig += (c>='0' && c<='9');
upp += isupper(s[i]) != 0;
low += islower(s[i]) != 0;
}
printf("%d\n%d\n%d", upp, low, dig);
}
Minimum i maksimum, umetanje i izbacivanje
Sastaviti program na programskom jeziku C koji treba da izvrši sledeću obradu nad nizom:
1) Pročita dimenziju i elemente niza, a zatim ih ispiše u novom redu odvojene znakom ,
2) Odredi i ispiše vrednost minimalnog elementa u novom redu
3) Odredi i ispiše vrednost maksimalnog elementa u novom redu
4) Izbaci sve elemente niza koji su jednaki minimalnom i maksimalnom elementu, a zatim ispiše preostale elemente niza u novom redu odvojene znakom ,
5) Pročita sa standardnog ulaza poziciju u nizu i vrednost elementa koji se ubacuje u niz na tu poziciju i ispiše elemente izmenjenog niza u novom redu odvojene znakom ,. Ukoliko je pozicija nevalidna, operacija je bez efekta.
#include <stdio.h>
#define MAX 100
int main(void) {
int arr[MAX], n;
scanf("%d", &n);
if (n > 0 && n <= MAX)
{
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
printf("%d", arr[i]);
if (i < n - 1)
putchar(',');
}
//putchar(\n);
int min=arr[0], max=min;
for(int i=1; i<n; i++) {
if(arr[i]<min)
min=arr[i];
else if(arr[i]>max)
max=arr[i];
}
printf("\n%d\n%d\n",min,max);
int j=0;
for(int i=0; i<n; i++) {
if(arr[i]!=min && arr[i]!=max)
arr[j++]=arr[i];
}
n=j;
for (int i = 0; i < n; i++) {
printf("%d", arr[i]);
if (i < n - 1)
putchar(',');
}
int pos, val;
scanf("%d %d",&pos, &val);
if(pos>=0 && pos <= n){
for(int i = n-1; i>=pos; i--){
arr[i+1]=arr[i];
}
arr[pos]=val;
n++;
}
printf("\n");
for (int i = 0; i < n; i++) {
printf("%d", arr[i]);
if (i < n - 1)
putchar(',');
}
}
return 0;
}
Broj setovanih bitova celog broja
Napisati program na programskom jeziku C koji za ceo broj, koji se unosi sa standardnog ulaza, pronalazi i ispisuje broj bitova koji imaju vrednost 1.
#include <stdio.h>
int main() {
int a, mask = 1, s = 0;
scanf("%d", &a);
while(mask) {
s += (a & mask ? 1 : 0);
mask<<=1;
}
printf("%d", s);
}
Zamena parova susednih bitova
Napisati program na programskom jeziku C koji za ceo broj, koji se čita sa standardnog ulaza, pronalazi i ispisuje broj koji se dobija zamenom parova susednih bitova originalnog broja (0. bit sa 1., 2. bit sa 3., 3. bit sa 4. itd.).
#include <stdio.h>
int main() {
int a, mask = 1, s = 0;
scanf("%d", &a);
while(mask) {
s += (a & mask ? 1 : 0);
mask<<=1;
}
printf("%d", s);
}