Р. А. Юсупов, С. Н. Искандарова, Ш. Мирзанова C/C++ тилида топшириқ ва масалалар Самарқанд – 2013 йил


Download 1.35 Mb.
bet79/105
Sana13.04.2023
Hajmi1.35 Mb.
#1353566
TuriУчебник
1   ...   75   76   77   78   79   80   81   82   ...   105
Bog'liq
CPP masalalari1


Часть II. Решения 169
puts("При нажатии функция возвращает");
puts("введенное число или -1, если число не введено.");
puts("Введите число и нажмите ");
printЈ("->");
if (а = getintO )
printf("\nBbi ввели число %d", а);
else puts("Число не введено.");
puts("\nДля завершения нажмите ");
getch();
}
Задача 202
// Функции getfloat и pos
#include
#include
#include
#define PATHTODRIVER "c: WborlandcWbgiW"
// возвращает позицию символа в строке
int pos(char* st, char c)
{
int i = 0;
while ( st[i] != с && st[i] )
i++;
if ( st[i] )
return(i+1);
else
return(0);
}
// вводит дробное число
float getfloat О
{
#define N 10 // кол-во символов, включая точку и минус
char ch;
char buf[N+1];
int i;
170 0/0+-^ в задачах и примерах
for (i = 0; i < N+1; 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;
}
bresJc;
if ( !(pos(buf,'.')))
{
putch(ch);
buf[i++] = ch;
}
break;
if (i)
}
}
} while (ch != 13)<
return(atof(buf));
void main (void)
{
float f;
printf("\b \b");
buf[—i] = 40»;
printf("Введите дробное число ->");
f = getfloatO ;
printf("ХпВведено число %e\n", f);
getch();
Часть 11. Решения 171
Задача 203
// Игра "21"
#include "stdio.h"
tinclude "conio.h"
#include "stdlib.h" // функция rand
iinclude "time.h" // функция time
int koloda[12]; // колода карт
int kartaO; // функция "выдает" карту из колоды
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(&t))/
printf("\пИгра в карты до хорошего не доведет!\п");
do {
// карта игроку
igrok += karta();
// карта компьютеру
if (igrok < 21)
comp += karta();
if (igrok < 21 && comp < 21)
{
printf("У вас %d\n",igrok);
printf("Еще карточку? (введите у или п) ");
otv = getchar();
172 C/C-i-'i' в задачах и примерах
// Игрок нажимает две клавиши: с буквой и
// предыдущий вызов getchar читает букву.
// При этом в буфере клавиатуры остается код
// клавиши . Прочитаем его.
int b;
b = getchar();
}
} while (igrok <= 21 && comp <= 21 && otv != 'nM ;
if (igrok ==21 || (igrok < 21 && igrok > comp)
I I comp > 21)
printf("Bы выиграли!\n");
else
printf("Вы проиграли!\n");
printf ("У вас %d\n", igrok);
printf ("У компьютера %d\n", comp);
printf("Для завершения нажмите ");
getch();
}
// выдает карту из колоды
int karta()
{
int i;
do
i = randO % 10 +2;
while (koloda[i] == 0);
koloda[i]—;
return i;
Задача 205
// Рисует олимпийский флаг
#include
#include
tinclude
#include

Download 1.35 Mb.

Do'stlaringiz bilan baham:
1   ...   75   76   77   78   79   80   81   82   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling