Notifications
Clear all

[Solved] 2.1.3

3 Posts
3 Users
0 Likes
291 Views
(@patrik-knaperek)
New Member
Joined: 4 years ago
Posts: 3
Topic starter  

Dobrý deň! Je to asi len nepodstatná drobnosť, no v časti "Tip" sa píše, že príkaz

cislo = znak < 10 ? znak + ‘0’ : znak + 55;

by mal v "C" splniť úlohu zo zadania. Nemalo by tam ale byť 65 miesto 55? Lebo znak 'A' má v ASCII hodnotu 65...


   
Quote
 xma
(@xma)
New Member
Joined: 4 years ago
Posts: 3
 

Nie, je to dobre - v prvej casti podmienky (ak je menej ako 10) priratavas hodnotu 0, co je 48, cize priratavas k nule, dajme tomu ze pre 3 je to 48+3=51, co je ak si pozries v ASCII znak pre 3. V druhej casti je to o nieco ine, lebo nepracujes s hodnotou A (hodnota A je 65), cize ak by si chcel priratavat od 65 zacinal by si na K, nie na A. Cize musis odratat 10, kedze najmensia hodnota aka tam moze byt je 10. Skuska s napriklad cislom 11 - 11+55=66, co je B.

TLDR; musis davat pozor, ze pri jednom pracujes od 0 a pri druhom od 10.


   
ReplyQuote
Guide
(@guide)
Vedúci cvičení - Task boss Admin
Joined: 5 years ago
Posts: 214
 

Je to spravne, ale prave som si uvedomil, ze premenne znak a cislo su prehodene, aj ked princip zostava rovnaky (zmenim to aj v zadani). Malo by to byt:

#include <stdio.h>

int main(int argc, char* argv[])
{
char znak;
int cislo = 13;

znak = cislo < 10 ? cislo + '0' : cislo + 55;

printf("%c\n", znak);

return 0;
}


This post was modified 4 years ago 3 times by Guide

   
ReplyQuote
Share:
Close Menu