Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Задачка о выводе на экран символа по коду


Автор: zarogon 4.11.2005, 18:36
Люди хелп. Есть задача о выводе на экран кода по символу:

Код

#include <stdio.h>
#include <conio.h>
main()
{
printf("Najmite lubuu klavishu\n");
unsigned char ch;
ch=getch();
switch(ch)
{
default: printf("%i\n",int(ch)); break;
}
getch();
}

А как сделать чтоб на экран выводился символ по коду smile

Автор: powerfox 4.11.2005, 20:44
Код

#include<iostream>
#include<cstdio>

int main()
        {
                std::cout<<"enter the symbol\n";
                char c = getchar();
                std::cout<< int(c);
                int a =113;
                std::cout<<char(a);
}

в строках 9-10 вывод по коду символа

Автор: Void 4.11.2005, 20:49
Код
#include <stdio.h>
#include <limits.h>

int main(void) {
    int code;
    printf("Enter symbol code: ");
    scanf("%i", &code);
    if (code < 0 || code > UCHAR_MAX) {
        printf("Hey, stupid, it must be in [0; %i] interval\n", UCHAR_MAX);
        return 1;
    }
    printf("%c", (char) code);
    return 0;
}

Автор: zarogon 4.11.2005, 22:09
Спасибочки вам smile Вы лучшие smile А можно еще и такую задачку: Вывести на экран предыдущие и следующие буквы латинского алфавита

Автор: BreakPointMAN 4.11.2005, 22:40
Цитата(zarogon @ 4.11.2005, 22:09)
Вывести на экран предыдущие и следующие буквы латинского алфавита

в каком смысле?
Добавлено @ 22:41
т.е. вводится буква латинская, и нужно вывести ту букву, что стоит перед ней и ту, что после нее?

Автор: zarogon 4.11.2005, 22:53
Да да именно так. Мы вводим букву и нам выводиться предыдущая ей и следующая после нее.

Автор: BreakPointMAN 4.11.2005, 23:01
Тебе на C или C++ надо? Вот на C так примерно:
Код

#include <conio.h>
#include <stdio.h>
#include <ctype.h>

int main()
   {
    char c;
    do
       {
        clrscr();
        printf("Enter latin letter, please: ");
        scanf("%c",&c);
       }
    while(!isalpha(c));

    char p=c-1, n=c+1;
    if(!isalpha(p)) p='-';
    if(!isalpha(n)) n='-';

    printf("\nPrevious letter: %c", p);
    printf("\nNext letter: %c", n);

    getch();
    return 0;
   }

Автор: zarogon 4.11.2005, 23:32
Да работает СПАСИБКИ. И еще задача шахматная, эту если можете и не в облом smile Вывести на экран уведомление если шахматная фигура может передвинуться на доске с позиции х1, у1 на х2, у2 рассмотреть такие фигуры: ладья, слон, ферзь учитывать то что на доске координаты по оси х символьные. Вот вроде как на паскале:
Код

uses crt;
var 
x1,x2:char;
y1,y2,f:byte;
begin
writeln('1-ladja, 2-slon, 3-ferz');
readln(f);
writeln('x1,y1,x2,y2');
readln('x1,y1,x2,y2');
case of
1:if(x1=x2) of (y1=y2) then
writeln('Ladja mojet tak hodit');
else writeln('net');
2:if abs(ord(x2)-ord(x1)=abs(y2-y1) then 
writeln('Da');
esle
writeln('Net');
3:if ((x1-x2) or (y1-y) or (abs(ord(x2)-ord(x1))=abs(y2-y1)) then
writeln('Da');
else
writeln('Net');
end;
end.

Автор: powerfox 5.11.2005, 11:05
Вопрос, почему в С++ все используют prinf и scanf?

Автор: Void 5.11.2005, 16:34
powerfox
Изначальный код, который привел автор, был на чистейшем Си диалекта K&R. Поэтому, думаю, ему и сочли нужным отвечать тоже на Си.

Автор: zarogon 5.11.2005, 17:07
Блин пытался эту задачку на Си зделать не выходит smile

Автор: BreakPointMAN 5.11.2005, 17:52
Цитата(zarogon @ 5.11.2005, 17:07)
Блин пытался эту задачку на Си зделать не выходит

Да ты ее хоть на паскале сначала сделай...
Перевод втупую:
Код

int main()
   {
    char x1,x2;
    int y1,y2, f;
    printf("1-ladja, 2-slon, 3-ferz: ");
    scanf("%d",&f);

    printf("x1, y1, x2, y2: ");
    scanf("\n%c%d,%c%d",&x1,&y1,&x2,&y2);


    switch(f)
       {
        case 1:
           if((x1==x2) || (y1==y2))
              printf("Ladja mojet tak hodit");
           else
              printf("net");
           break;
        case 2:
           if (abs(x2-x1)==abs(y2-y1))
              printf("Da");
           else
              printf("Net");
           break;
        case 3:
           if ((x1==x2) || (y1==y2) || abs(x2-x1)==abs(y2-y1))
              printf("Da");
           else
              printf("Net");
           break;
       }
    getch();
    return 0;
   }

Что-то подправил, но работает или нет - не проверял... вводить данные так:
1
a1,a8

Автор: powerfox 5.11.2005, 20:04
Цитата(Void @ 5.11.2005, 16:34)
powerfox
Изначальный код, который привел автор, был на чистейшем Си диалекта K&R. Поэтому, думаю, ему и сочли нужным отвечать тоже на Си.

Не обратил внимания - было написано Borland C++.

smile :
А реализация Borland сильно отличается от стандарта?

Автор: LITEOMILL 24.1.2023, 00:50
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)