Помогите пожалуйста с программой

Задача звучит так

Локатор ориентирован на одну из сторон света («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и может принимать одну из трех цифровых команд: -1 – поворот налево, 1 – поворот направо, 2 – поворот на 180 градусов. Дан символ C – исходная ориентация локатора и число N – посланная ему команда. Вывести ориентацию локатора после выполнения команды.

//f4.c
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include<string.h>

int main()
{   
    int x;
    char* m[1];
    setlocale(LC_CTYPE, "russian");
    printf ("введите команду\n");
    scanf ("%f",&x);
      switch (x)
       {
          case 1 :
              m[1]= "З" ; 
          break;
          case -1 :
              m[1]= "В"; 
          break;
          case 2 :
              m[1]= "Ю"; 
          break;
       }

    printf ("\n%s",m);
    getch ();
    return 0;
}
  1. У тебя в scanf передается %f, а вводится переменная типа «int».
  2. Ты создаешь массив «m» из одного элемента, а заполняешь m[1]. Нумерация элементов начинается с нуля.
  3. Не пойму, зачем вообще нужен массив из одного элемента?
// f4.c
#include<stdio.h>
#include<locale.h>
#include<conio.h>
#include<string.h>

int main()
{   
    int x;
    char* m;
    setlocale(lc_ctype, "russian");
    printf ("введите команду\n");
    scanf ("%d", &x);

    switch (x)
    {
        case 1 :
            m = "з" ; 
            break;
        case -1 :
            m = "в"; 
            break;
        case 2 :
            m= "ю"; 
            break;
    }

    printf ("\n%s", m);
    getch();
    return 0;
}

может быть что-то вроде:

string ways[4] = string("СВЮЗ"); // как-то так

char router(char pos, int comm=0)
{
    int pos_int = 0;

    while (ways[pos_int]<>pos) pos_int++;
    return ways[mod(pos_int+comm,4)]; // или как-то по другому 
    //деление по модулю 4
}

main()
{
     int comm = 0;
     cout<<"Введите начальную ориентацию (С/В/Ю/З)"; 
     cin>>ch;
     while (comm<>-2)// к примеру -2 выход
     { 
          cout<<"Вы смотрите на "<<router(ch, comm); 
          cout<<"Введите поворот (1 - направо, и т.д., -2 - выход"; 
          cin>>comm;
     }

return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.