Форум программистов, компьютерный форум CyberForum.ru

Помогите с элементарной ппрограммой на C - C++

Восстановить пароль Регистрация
 
Andrey109
4 / 4 / 0
Регистрация: 10.11.2010
Сообщений: 100
20.09.2011, 20:55     Помогите с элементарной ппрограммой на C #1
Я ее начал делать, но наткнулся на то, что не могу написать код перевода из систем счисления....
Помогите пожалуйста!

Вот условие (мой вариант 5):

https://docs.google.com/View?docid=dhg54t7g_16dwjng3d3

Добавлено через 57 минут
И еще когда я начал вбивать условия, наткнулся на то, что компилятор никак не хочет обращаться к элементам типа char( Что делать?

Скрин: http://s08.***********/i181/1109/b6/34145d6a3381.png
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 20:55     Помогите с элементарной ппрограммой на C
Посмотрите здесь:

Написать прогу с элементарной функцией y=x*x C++
Не могу определить элементарной ошибки C++
C++ Ошибка в элементарной программе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.09.2011, 21:00     Помогите с элементарной ппрограммой на C #2
skif443, нам не нужны ваши скриншоты/файлы/ссылки на задания и т.д.

перепечатайте СЮДА задание
покажите свой код
покажите ТЕКСТ ошибки
Andrey109
4 / 4 / 0
Регистрация: 10.11.2010
Сообщений: 100
20.09.2011, 21:50  [ТС]     Помогите с элементарной ппрограммой на C #3
Задание: На входе строка с числом заранее неизвестного формата, если оно начинается с 0, то считаем его восьмиричным, если начинается с любой другой цифры, то считаем его десятичным, если начинается с "0х", то считаем его шеснадцатиричным, если в конце стоит символ 'b', тогда считаем его двоичным, если неудается распознать число, считаем что на входе ошибка. Распознать строку в переменную типа int, вывести на экран printf("%d",i).

Начало моего кода:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
 
int main ()
{
 
    char s [30];
    printf ("Введите строку\n");
    scanf ("%s",&s);
    if (s[0]=="0" && s[1]!=="x"){printf ("Это восьмеричная система счисления\n");} 
    else 
        if (s[0]=="0" && s[1]=="x") {printf ("Это шестнадцатеричная система счисления\n");}
    else 
        if (s[0]!=="0") {printf ("Это десятичная система счисления\n");}
    else
        if (s[strlen(s)]=="b") {printf ("Это двоичная система счисления\n");}
    return 0;
}
Ошибка "Result of comparison between pointer & integer"

 Комментарий модератора 
Используйте теги форматирования кода!
-=ЮрА=-
Заблокирован
Автор FAQ
20.09.2011, 22:02     Помогите с элементарной ппрограммой на C #4
Цитата Сообщение от skif443 Посмотреть сообщение
s[0]=="0" && s[1]!=="x"
Чары пишуться вот так 'c', т.е
C++
1
s[0]=='0' && s[1]!=='x'
так же со всеми блоками if

Добавлено через 1 минуту
skif443, вот перевод в двоичную + битстафинг после 5го бита
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <windows.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
 
char * str = (char *)malloc(sizeof(char));
char * bin = (char *)malloc(sizeof(char));
 
char * get_text(char * s, int &Len);
char * str2bin(char * s, char * bin);
char * int2bin(int val, char * bin);
char * bitstuf(char * bin, char *ins_after, char bit);
char * inschar(char * s, int i, char ch);
 
int main()
{
    int sLen = 0;
    do
    {
        printf("Enter input string\r\n");
        str = get_text(str,sLen);bin[0] = '\0';
        printf("\tBinary string\r\n");
        printf("%s\r\n",(bin = str2bin(str,bin)));
        printf("\tBits after bitstuf\r\n");
        printf("%s\r\n",(bin = bitstuf(bin, "11111", '2')));
        printf("[Y/N] - Enter new string\r\n");
    }
    while('Y' == toupper(getch()));
    return 0;
}
 
char * get_text(char * s, int &Len)
{
    if(s)
    {
        Len = 0;
        while((s[Len] = getchar()) != '\n')
            s = (char *)realloc(s,(1 + (Len = Len + 1))*sizeof(char));
        s[Len] = '\0';
    }
    return s;
}
 
char * str2bin(char * s, char * bin)
{
    int i = 0;
    while((s + i)[0] != '\0')
    {
        bin = int2bin(s[i], bin);
        i++;
    }
    return bin;
}
 
char * int2bin(int val, char * bin)
{
    int i = 0,len = strlen(bin);
    bin = (char *)realloc(bin,len + 8);
    bin[len] = '0';
    while(0 < val)
    {
        bin[len + 6 - i] = '0';
        if(val%2 != 0)
            bin[len + 6 - i] = '1';
        val = val/2;
        i++;
    }
    bin[len + 7] = '\0';
    return bin;
}
 
char * bitstuf(char * bin, char *ins_after, char bit)
{
    char * buf;
    int pos = 0;
    if(bin && ins_after)
    {
        buf = strstr(bin + pos,ins_after);
        while(buf)
        {
            pos = strlen(bin) - strlen(buf) + strlen(ins_after);
            bin = inschar(bin, pos, bit);
            buf = strstr(bin + pos + 2,ins_after);
        }
    }
    return bin;
}
 
char * inschar(char * s, int i, char ch)
{
    int sLen;
    if(s)
    {
        sLen = strlen(s);
        s = (char *)realloc(s,(sLen + 1)*sizeof(char));
        memcpy((void *)&s[i + 1],(void *)&s[i],sLen - i);
        s[sLen + 1] = '\0';
        s[i] = ch;
    }
    return s;
}
Yandex
Объявления
20.09.2011, 22:02     Помогите с элементарной ппрограммой на C
Ответ Создать тему
Опции темы

Текущее время: 10:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru