Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 200-219)

Задача 202.

// Функции getfloat и pos
#include <stdio.h> iinclude <conio.h> #include <stdlib.h>
#define PATHTODRIVER "c: WborlandcWbgiW"
// возвращает позицию символа в строке
int pos(char* st, char c)
f
int i = 0;
while (st[i]!= с && st[i])
i++; if (St[i])
return(i+1); else
return(0);
// вводит дробное число float getfloat()
{
fdefine N 10 // кол-во символов, включая точку и минус
char ch;
char buf[N+l];
int i;
170
r (i = 0; i < N+l; i++)
buf[i++] ='\0'; i = 0; do {
ch=getch();
if (ch >= '0' && ch <= '9' && i < 8) putch(ch); buf[i++] = ch;
)
else
switch (ch) {
case '-': if (!i)
 putch(ch); buf[i++] = ch;
break;
case '.': if (! (pos(buf, '.')))
putch(ch); buf[i++] = ch;
break;
case 8: if (i)
printf("\b \b"); buf[ -i] = '\0';
} while (ch!= 13); return(atof(buf));
}
void main(void) {
float f;
printf("Введите дробное число › "); f = get float ();
printf("Хп Введено число %e\n", f);
getch();

Задача 203.

// Игра "21"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h" // функция rand
#include "time.h" // функция time
int koloda[12]; int karta();
void main()
// колода карт
// функция "выдает" карту из колоды
int igrok =0; // очки игрока
int comp =0; // очки компьютера
char otv; // ответ игрока time_t t;
// создадим колоду
for (int i=2; i <=11; i++)
koloda[i] = 4; koloda[5] = 0; // "пятерок" в колоде нет
// инициализация генератора случайных чисел
srand((unsigned)time(it));
printf("Хп Игра в карты до хорошего не доведет!\п");
do {
// карта игроку igrok += karta();
// карта компьютеру if (igrok < 21)
comp += karta();
if (igrok < 21 && comp < 21) {
printf("У вас %d\n",igrok);
printf("Еще карточку? (введите у или п) ");
otv = getchar ();
// Игрок нажимает две клавиши: с буквой и Enter
// предыдущий вызов getchar читает букву.
// При этом в буфере клавиатуры остается код
// клавиши Enter. Прочитаем его.
int b;
b = getchar();
} while (igrok <= 21 && comp <= 21 && otv!= 'n');
if (igrok ==21 || (igrok < 21 && igrok > comp)
I| comp > 21) printf("Вы выиграли!\n");
else
printf("Вы проиграли!\n");
printf ("У вас %d\n", igrok); printf ("У компьютера %d\n", comp);
printf("Для завершения нажмите Enter");
getch();
// выдает карту из колоды int karta()
int i; do
i = rand() % 10 +2; while (koloda[i] == 0); koloda[i]– ; return i;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.