Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
mario[x]
2 / 2 / 0
Регистрация: 11.06.2011
Сообщений: 43
1

Некорректно работает код перевода дюймов в сантиметры

13.03.2012, 16:48. Просмотров 821. Ответов 11
Метки нет (Все метки)

Привет)
Задание.
Перевести дюймы в см.
т.е. ввожу 2i, должно вывести 5.08 см.
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int x;
char ch;
ch=getchar();
scanf("%d%c",&x,&ch);
//ch = getchar();
if (x == 2 &&  ch == 'i')
    printf("%d%c cm\n",x*2.54,ch);
//2i = 5.08cm
}
В чем ошибка? Я может чо то не понимаю, проверка вроде правильно стоит.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 16:48
Ответы с готовыми решениями:

Конвертор перевода дюймов в сантиметры
/*Конвертор перевода дюймов в сантиметры*/ #include &lt;stdio.h&gt;; #include &lt;stdlib.h&gt;; int main(){...

Перевод дюймов в сантиметры
Есть программа если её скомпилировать, и через shell обратиться ./n1 1 выдает 129.360000 ...

Перевод дюймов в сантиметры
В общем не могу понять, что нужно делать из заданий) ответы нигде не могу найти на них... 1....

Перевод дюймов в сантиметры
при вводе &lt;&lt;2i&gt;&gt; напечатать &lt;&lt;2&quot; = 5.08cm&gt;&gt;

При использовании getch код работает некорректно
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; const int mmax=100; int nmax=100; int main() { int...

11
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:51 2
printf( "%lf%c cm\n", 2.54 * x, ch);
А зачем нужен ch при вводе и выводе ?
0
mario[x]
2 / 2 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 16:55  [ТС] 3
input: 2i
2 - это int
i - это char -> ch

ch нужен для i.
0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 16:56 4
%d - это и есть int. Зачем нужен char ? Или что ты имеешь в виду?
При выводе у тебя получается не 2i = 5.08cm, а 2i = 5.08i cm
0
mario[x]
2 / 2 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 16:58  [ТС] 5
а в выводе, убрал ch
C
1
    printf("%lf cm\n",x*2.54);
Добавлено через 33 секунды
все равно не выводится
0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 17:00 6
И не должно. Я не знаю кто тебе сказал так выводить.
Надо: printf( "%lf cm\n", 2.54 * x );
0
mario[x]
2 / 2 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 17:03  [ТС] 7
И не надо знать)))
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int x;
char ch;
ch=getchar();
scanf("%d%c",&x,&ch);
//ch = getchar();
if (x == 2 &&  ch == 'i')
    printf("%lf cm\n",2.54*x);
//2i = 5.08cm
}
input: 2i
output: empty
0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
13.03.2012, 17:05 8
scanf("%d",&x);
И вводи: 2
Условие: if (x == 2)
0
mario[x]
2 / 2 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 17:59  [ТС] 9
а надо вводить 2i!

Добавлено через 22 минуты
ввод 2i

Добавлено через 29 минут
надо было убрать функцию getchar()
0
wariorswars
2 / 2 / 1
Регистрация: 12.08.2011
Сообщений: 29
12.09.2013, 15:12 10
Вот так можно без if):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int a;
    char r;
 
    scanf("%d%c", &a,&r);
        a==2 && r=='i'
        && printf("%.2f%c cm\n", a*2.54);
    
    system("pause");
}
0
easybudda
Модератор
Эксперт CЭксперт С++
10261 / 6149 / 1547
Регистрация: 25.07.2009
Сообщений: 11,703
12.09.2013, 15:38 11
Цитата Сообщение от mario[x] Посмотреть сообщение
if (x == 2 && ch == 'i')
То есть программа заточена строго под перевод двух дюймов в сантиметры?
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
#include <stdio.h>
 
#define INCH_CM_RELATION (2.54)
 
void clear_input(void) {
    char ch;
    while ( scanf("%c", &ch) == 1 && ch != '\n' )
        ;
}
 
int main(void) {
    double value;
    char dimension[2];
    
    while ( printf("> ") && scanf("%lf%1s", &value, dimension) == 2 ) {
        switch ( *dimension ) {
            case 'i' :
            case 'I' :
                printf("%.2f cm\n", value * INCH_CM_RELATION);
                break;
            case 'c' :
            case 'C' :
                printf("%.2f i\n", value / INCH_CM_RELATION);
                break;
            default :
                printf("Wrong dimension!\n");
        }
        clear_input();
    }
    
    return 0;
}
Код
[andrew@andrew numbers]$ ./inch_cm_convertor 
> 5cm
1.97 i
> 2i
5.08 cm
> 2.54 c
1.00 i
> quit
[andrew@andrew numbers]$
0
Raynor585
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 13
23.04.2015, 10:34 12
Вообще-то эта задача для второго урока по си. О никаких getchar- ов и if-ов, тем более циклов слушатель понятия не имеет. (только арифметические и логические операции, приоритеты и ассоциативность операций).

Нужно написать программу которая переводит дюймы в сантиметры (если при вводе есть "i" то выводит длину в см. Ну и наоборот).
0
23.04.2015, 10:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2015, 10:34

Некорректно работает код в короткой программы на уровне начинающего
Привет такая проблема. Пытаюсь запустить в Visual studio код #include &lt;stdio.h&gt; void main(void)...

Написать программу для перевода дюймов в сантиметры, от 1 до 35 дюймов с шагом в 2 дюйма
Delphi. Помогите пожалуйста.

Написать класс Program для вывода таблицы перевода расстояний из дюймов в сантиметры для значений длин от 1 до 20 дюймов
1дюйм=2,54 Срочно пожалуйста!


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru