Merge branch 'master' of git.kemt.fei.tuke.sk:an760cw/pvjc23
This commit is contained in:
commit
d522e28989
@ -3,36 +3,25 @@ int main(){
|
||||
int r = 0;
|
||||
int counter = 0;
|
||||
while(r != EOF){
|
||||
r = getchar();
|
||||
r = getchar(); //načítam znak a uložím ho do pamäte
|
||||
if(r == EOF){
|
||||
|
||||
//ak preruším prácu, príp. zlyhá zadávanie vstupu, tak program ukončím
|
||||
break;
|
||||
}
|
||||
|
||||
if (r == '\n'){
|
||||
counter ++;
|
||||
if (r == '\n'){ //zároveň vložím nový riadok pre zadanie nového vstupu
|
||||
counter ++; //každý riadok so zadanými znakmi zarátam
|
||||
}
|
||||
|
||||
if(r >= 'a' && r <= 'z'){
|
||||
|
||||
//ak zadám malé písmeno, tak ho transformujem na veľké
|
||||
r -= 32;
|
||||
}
|
||||
else if(r >= 'A' && r <= 'Z'){
|
||||
r += 32;
|
||||
r += 32; //a naopak
|
||||
}
|
||||
putchar(r);
|
||||
putchar(r); //vypíšem naposledy načítaný znak
|
||||
}
|
||||
printf("\nPočet riadkov: %d\n", counter);
|
||||
printf("\nPočet riadkov: %d\n", counter); //po skončení práce s programom vypíšem počet zadaných znakov
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if(r >= 'A' && r <= 'Z'){
|
||||
r += 32;
|
||||
>>>>>>> 95e25bb6d50faab602baba4f24a49b59c7be8129
|
||||
}
|
||||
putchar(r);
|
||||
}
|
||||
printf("\nPočet riadkov: %d\n", counter);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@ -6,39 +6,39 @@
|
||||
#define VELKOST_POLA 120
|
||||
int main(){
|
||||
char rip[VELKOST_POLA];
|
||||
memset(rip, '\0', VELKOST_POLA*sizeof(char));
|
||||
memset(rip, '\0', VELKOST_POLA*sizeof(char)); //vyplní pole rip znakom \0
|
||||
int a = 0;
|
||||
|
||||
for(int b = 0; 1; b++){
|
||||
a = getchar();
|
||||
if(a == EOF || a == ' ')break;
|
||||
rip[b] = a;
|
||||
rip[b] = a; //píše z klávesnice v RIP
|
||||
}
|
||||
for(int c = 0, d = 0; c < strlen(rip); c++){
|
||||
for(int c = 0, d = 0; c < strlen(rip); c++){ //skontroluje normálny vstup
|
||||
if(rip[c] == '\n'){
|
||||
d++;
|
||||
}
|
||||
else if((rip[c]<='9'&&rip[c]>='0') || (rip[c]=='.') || (rip[c]==EOF) || (rip[c]==' '));
|
||||
else if(d == 0){
|
||||
printf("Nepodarilo sa nacitat zaklad x\n");
|
||||
printf("Nepodarilo sa nacitat zaklad x\n"); //vyhodí chybu, ak nemáme prvé číslo
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d);
|
||||
printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d); //zobrazí odpoveď, ak sa nájde znak, ktorý nie je číslicou a nie je špeciálnym znakom
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
int kofi = -1;
|
||||
for(int c = 0; c < strlen(rip); c++){
|
||||
if(rip[c] == '\n')
|
||||
continue;
|
||||
continue; //počíta prvky polynómu
|
||||
else for(int c2=0; rip[c]!='\n'; c++, c2++);
|
||||
kofi++;
|
||||
}
|
||||
long double x = 0;
|
||||
char *finish = NULL;
|
||||
char *start = rip;
|
||||
x = strtof(start, &finish);
|
||||
x = strtof(start, &finish); //hľadám x
|
||||
|
||||
start = finish;
|
||||
|
||||
@ -52,7 +52,7 @@ for(int c = 0; c < kofi; c++){
|
||||
d=pow(x,(kofi-c)-1);
|
||||
|
||||
n+=d*f;
|
||||
}
|
||||
} //všetko vypočíta
|
||||
n = round(n*100)/100;
|
||||
printf("Vysledok je: %.2Lf\n", n);
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
@ -0,0 +1,85 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
int main() {
|
||||
char priklad[300];
|
||||
int count = 0;
|
||||
|
||||
// Čítanie vstupu riadok po riadku
|
||||
while (fgets(priklad, sizeof(priklad), stdin) != NULL) {
|
||||
count++;
|
||||
|
||||
// Analyzujem výraz a vyhodnoťte ho
|
||||
char *start = priklad;
|
||||
char *end = NULL;
|
||||
int valid = 1;
|
||||
float num1 = strtof(start, &end);
|
||||
if (end == start) {
|
||||
|
||||
continue;
|
||||
}
|
||||
start = end;
|
||||
|
||||
// Nájdem symbol operácie
|
||||
char op = *start;
|
||||
if (op != '+' && op != '-' && op != '*' && op != '/') {
|
||||
valid = 0;
|
||||
}
|
||||
start++;
|
||||
|
||||
// Analýza druhého čísla
|
||||
float num2 = strtof(start, &end);
|
||||
if (end == start) {
|
||||
valid = 0;
|
||||
}
|
||||
start = end;
|
||||
|
||||
// Skontrolujme prítomnosť ďalších znakov
|
||||
while (*start != '\0') {
|
||||
if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') {
|
||||
valid = 0;
|
||||
|
||||
start++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
float result=0;
|
||||
if (valid) {
|
||||
switch (op) {
|
||||
case '+':
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case '-':
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case '*':
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case '/':
|
||||
result = num1 / num2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Výsledok zaokrúhlim a porovnajte s očakávanou hodnotou
|
||||
float expected;
|
||||
if (sscanf(start, "%f", &expected) != 1) {
|
||||
continue;
|
||||
}
|
||||
expected = round(expected * 100) / 100; //zaokrúhľuje
|
||||
if (fabs(result - expected) < 0.001) {
|
||||
printf("OK\n");
|
||||
} else {
|
||||
printf("ZLE\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
114
du5/ program.c
Normal file
114
du5/ program.c
Normal file
@ -0,0 +1,114 @@
|
||||
#include<stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
struct celovek{ //definovanie štruktúry s názvom 'celovek'
|
||||
int golos;
|
||||
char name[60];
|
||||
}
|
||||
|
||||
void printAll(struct celovek celovek[50],int number_celovek){ //funkcia na vytlačenie všetkých prvkov poľa 'celovek'
|
||||
printf("Vysledky:\n");
|
||||
for (size_t i = 0; i < number_celovek; i++){
|
||||
printf("%d", celovek[i].golos);
|
||||
printf("%s", celovek[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
void readDellSame(bool odinakovyi, bool dobre, int* number_celovek, struct celovek celovek[50]){ //funkcia na čítanie a mazanie duplicitných záznamov z poľa 'celovek'
|
||||
for (size_t i = 0; i >=0; i++)
|
||||
{
|
||||
char step.name[60];
|
||||
int step.golos =0;
|
||||
int b = scanf("%d", &step.golos);
|
||||
|
||||
if (b == -1){
|
||||
break;
|
||||
}
|
||||
if (step.golos == 0){
|
||||
dobre = true;
|
||||
}
|
||||
|
||||
fgets(step.name, 60 , stdin); //prečítať riadok z stdin
|
||||
|
||||
for (size_t j = 0; j <*number_celovek; j++){
|
||||
if(strcmp (celovek[j].name, step.name)==0 && dobre == false ){ //porovnať reťazce
|
||||
celovek[j].golos += step.golos;
|
||||
odinakovyi = true;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
if ((odinakovyi == false|| *number.celovek == 0) && dobre == false)
|
||||
{
|
||||
clovek[i].holos = step_holos;
|
||||
strcpy(celovek[i].name, step.name); //strcpy - oblasti pamäte kopírovania
|
||||
*number.celovek = *number.celovek +1 ;
|
||||
}
|
||||
odinakovyi = false;
|
||||
}
|
||||
}
|
||||
|
||||
void sort(int number.celovek, struct celovek celovek[50]){ //funkcia na triedenie poľa 'celovek' na základe počtu 'golov' a 'name'
|
||||
for (size_t i = 0; i <number.celovek; i++){
|
||||
for (size_t j = i; j < number.celovek; j++){
|
||||
|
||||
if (celovek[i].golos == clovek[j].golos){
|
||||
|
||||
if(celovek[i].name[1] > celovek[j].name[1]){
|
||||
int tmp = celovek[i].golos;
|
||||
char tmp_name[60];
|
||||
strcpy(tmp_name, celovek[i].name);
|
||||
|
||||
celovek[i].golos = celovek[j].golos;
|
||||
strcpy(celovek[i].name, celovek[j].name);
|
||||
|
||||
celovek[j].golos = tmp;
|
||||
strcpy(celovek[j].name, tmp_name);
|
||||
}
|
||||
|
||||
if(celovek[i].name[1] == celovek[j].name[1]){
|
||||
if(celovek[i].name[2] > celovek[j].name[2]){
|
||||
int tmp = celovek[i].golos;
|
||||
char tmp_name[60];
|
||||
strcpy(tmp_name, celovek[i].name);
|
||||
|
||||
celovek[i].golos = celovek[j].golos;
|
||||
strcpy(celovek[i].name, celovek[j].name);
|
||||
|
||||
celovek[j].golos = tmp;
|
||||
strcpy(celovek[j].name, tmp_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(){
|
||||
struct celovek celovek[50];
|
||||
int number.celovek = 0;
|
||||
bool odinakovyi = false;
|
||||
bool dobre = false;
|
||||
readDellSame(odinakovyi, dobre, &number.celovek,celovek);
|
||||
|
||||
for (size_t i = 0; i < number.celovek-1; i++){
|
||||
for (size_t j = 0; j < number_clovek - i-1; j++){
|
||||
if (celovek[j].golos < celovek[j+1].golos){
|
||||
int tmp = celovek[j+1].golos;
|
||||
char tmp_name[60];
|
||||
strcpy(tmp_name, celovek[j+1].name);
|
||||
|
||||
celovek[j+1].golos = celovek[j].golos;
|
||||
strcpy(celovek[j+1].name, celovek[j].name);
|
||||
|
||||
celovek[j].golos = tmp;
|
||||
strcpy(celovek[j].name, tmp_name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
sort(number.celovek, celovek);
|
||||
printAll(celovek, number.celovek);
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user