Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 0
Регистрация: 11.06.2011
Сообщений: 43
1

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

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

Author24 — интернет-сервис помощи студентам
Привет)
Задание.
Перевести дюймы в см.
т.е. ввожу 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2012, 16:48
Ответы с готовыми решениями:

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

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

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

Напечатать таблицу перевода расстояний из дюймов в сантиметры
для значений от 1 до 10 дюймов с шагом 0,5 дюйма. Формула перевода: 1дюйм = 2,54 см.

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

ch нужен для i.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
13.03.2012, 16:56 4
%d - это и есть int. Зачем нужен char ? Или что ты имеешь в виду?
При выводе у тебя получается не 2i = 5.08cm, а 2i = 5.08i cm
0
4 / 4 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 16:58  [ТС] 5
а в выводе, убрал ch
C
1
    printf("%lf cm\n",x*2.54);
Добавлено через 33 секунды
все равно не выводится
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
13.03.2012, 17:00 6
И не должно. Я не знаю кто тебе сказал так выводить.
Надо: printf( "%lf cm\n", 2.54 * x );
0
4 / 4 / 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
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
13.03.2012, 17:05 8
scanf("%d",&x);
И вводи: 2
Условие: if (x == 2)
0
4 / 4 / 0
Регистрация: 11.06.2011
Сообщений: 43
13.03.2012, 17:59  [ТС] 9
а надо вводить 2i!

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

Добавлено через 29 минут
надо было убрать функцию getchar()
0
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
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
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
2 / 2 / 0
Регистрация: 23.04.2015
Сообщений: 13
23.04.2015, 10:34 12
Вообще-то эта задача для второго урока по си. О никаких getchar- ов и if-ов, тем более циклов слушатель понятия не имеет. (только арифметические и логические операции, приоритеты и ассоциативность операций).

Нужно написать программу которая переводит дюймы в сантиметры (если при вводе есть "i" то выводит длину в см. Ну и наоборот).
0
23.04.2015, 10:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2015, 10:34
Помогаю со студенческими работами здесь

Напечатать таблицу перевода расстояний из дюймов в сантиметры
Помогите решить задачу. Напечатать таблицу перевода расстояний из дюймов в сантиметры для...

Вывести на экран таблицу перевода дюймов в сантиметры
вывести на экран таблицу перевода расстояний в дюймах в саниметры для значений 2,4,6,...,12 дюймов...

Написать программу перевода чисел из дюймов в сантиметры
Написать программу перевода чисел из дюймов в сантиметры. Т.е. написать такую программу которая...

Напечатайте таблицу перевода расстояний из дюймов в сантиметры (1 дюйм = 2,54 см)
Ребята, вот программа: Var i: Real; BEGIN i:=1; While i&lt;=50 do begin ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru