Dobry den,
resim podminku kdy v pripade nacteneho znaku program vypise "Error: Chybny vstup!" a vrati cislo 100. Dale pak musi vstup byt v intervalu (3;69>, pokud ne vypise Error...
/*Tento zdrojak jsem upravil podle jine diskuze na osetreni vstupu. Je zde ten problem, ze kdyz nacte napriklad -4 a 16, tak nevypise podle dalsi podminky Error: Vstup mimo interval!. Musim zadat dalsi, respektive 3. cislo. */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int s, v, c;
char znak;
char text;
scanf("%d", &s);
scanf("%d", &v);
for (scanf("%s", &text); sscanf(&text, "%g%c%g%c", &s, &v, &znak) != 1; scanf("%s", &text)) {
fprintf(stderr ,"Error: Chybny vstup!");
return 100;
}
if (s<3 || s>69 || v<3 || v >= 69) {
fprintf(stderr,"Error: Vstup mimo interval!");
return 101;
}
c = s % 2;
if (c = 0) {
fprintf(stderr,"Error: Sirka neni liche cislo!");
return 102;
}
int a = s / 2;
int b, k, i;
while (1) {
for (i = 0; i<a; ++i)
printf(" ");
b = s / 2 - a;
k = 2 * b - 1;
if (b >0)
printf("x");
for (i = 0; i < k; ++i)
printf(" ");
printf("x\n");
if (a>1)
--a;
else break;
}
for (i = 0; i < s; ++i)
printf("x");
printf("\n");
v -= 2;
b = s - 2;
for (i = 0; i < v; ++i) {
printf("x");
for (int j = 0; j < b; ++j)
printf(" ");
printf("x\n");
}
for (i = 0; i < s; ++i)
printf("x");
printf("\n");
return EXIT_SUCCESS;
}
//U tohoto kodu jsem se snazil zjistit jak ten sscanf funguje. Idea byla takova, ze si nactu dva znaky, nebo cisla a funkce sscanf to roztridi. Bohuzel to nefunguje.
#include <stdio.h>
int main() {
int s;
char znak[256];
char text[256];
scanf("%s", text);
sscanf(text,"%d%s", &s , znak);
printf("%d\n",s);
printf("%s\n",znak);
return 0;
}
//Takto jsem to zkousel poprve
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int s, v, c;
scanf("%d", &s);
scanf("%d", &v);
if (s<'a' || s>='x' || v<'a' || v>='x') {
fprintf(stderr,"Error: Chybny vstup!");
return 100;
}
//zbytek kodu
return o;
}
Predem se omlouvam za neprehlednost a dekuji za komentre.