Перевод из double в char - C (СИ)
Формулировка задачи:
Нужно написать программу: строкой вводим 1 слагаемое, 2 слагаемое, строку для поиска. Программа переводит строку в число и считает. Потом нужно посчитать кол-во совпадений в строке. Для этого полученный результат нужно опять перевести в строковую переменную. Для этого я хочу использовать sprintf, но он почему-то не работает. Пишет "error C2664: sprintf: невозможно преобразовать параметр 2 из "double" в "const char *". Что я делаю не так? Есть ли замена sprintf?
Вот фрагмент моей программы
#include "StdAfx.h" #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <process.h> int main(void) { setlocale(LC_ALL, "rus"); char a1c[255], a2c[255], f; //первое слагаемое, второе слагаемое и строка для проверки double a1d, a2d, f1; //первое слагаемое, второе слагаемое и сумма printf("Введите первое слагаемое: "); gets(a1c); //если использовать scanf вместо gets, программа работает некорректно printf("Введите второе слагаемое: "); gets(a2c); a1d=atof(a1c); a2d=atof(a2c); f1=a1d+a2d; sprintf("%f", f1); }
Решение задачи: «Перевод из double в char»
textual
Листинг программы
#include <stdio.h> int main() { char a[100]; double a1,a2,f1; char c; printf("Введите выражение: "); gets(a); sscanf(a,"%lf%c%lf",&a1,&c,&a2); if(c=='+') { f1=a1+a2; printf("%lf", f1); }else printf("ошибочный знак операции"); return 0; }
Объяснение кода листинга программы
- Объявлены следующие переменные: char a[100]; double a1,a2,f1; char c;
- Программа запрашивает у пользователя ввод выражения с помощью функции printf:
printf(
Введите выражение:
); - Функция gets(a) используется для считывания введенного пользователем выражения и сохранения его в массиве a.
- Функция sscanf(a,
%lf%c%lf
,&a1,&c,&a2) используется для разбора введенного пользователем выражения и сохранения его частей в переменных a1, c и a2. - Если символ, введенный пользователем, равен
+
, то выполняется операция сложения a1 и a2, результат сохраняется в переменной f1. - Если символ, введенный пользователем, не равен
+
, то выводится сообщение об ошибкеошибочный знак операции
. - Результат операции выводится на экран с помощью функции printf:
printf(
%lf
, f1);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д