Програмирање 2/Блок 1
Статистика појављивања
Саставити програм на програмском језику C за одређивање и испис броја великих слова, малих слова и цифара у тексту који се из произвољног броја редова учитава преко главне улазне јединице. Испис података се врши у засебним редовима. Текст се завршава знаком за крај датотеке.
#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);
}
Минимум и максимум, уметање и избацивање
Саставити програм на програмском језику C који треба да изврши следећу обраду над низом:
1) Прочита димензију и елементе низа, а затим их испише у новом реду одвојене знаком ,
2) Одреди и испише вредност минималног елемента у новом реду
3) Одреди и испише вредност максималног елемента у новом реду
4) Избаци све елементе низа који су једнаки минималном и максималном елементу, а затим испише преостале елементе низа у новом реду одвојене знаком ,
5) Прочита са стандардног улаза позицију у низу и вредност елемента који се убацује у низ на ту позицију и испише елементе измењеног низа у новом реду одвојене знаком ,. Уколико је позиција невалидна, операција је без ефекта.
#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;
}
Број сетованих битова целог броја
Написати програм на програмском језику C који за цео број, који се уноси са стандардног улаза, проналази и исписује број битова који имају вредност 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);
}
Замена парова суседних битова
Написати програм на програмском језику C који за цео број, који се чита са стандардног улаза, проналази и исписује број који се добија заменом парова суседних битова оригиналног броја (0. бит са 1., 2. бит са 3., 3. бит са 4. итд.).
#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);
}