Перевод из 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;
}

Объяснение кода листинга программы

  1. Объявлены следующие переменные: char a[100]; double a1,a2,f1; char c;
  2. Программа запрашивает у пользователя ввод выражения с помощью функции printf: printf(Введите выражение:);
  3. Функция gets(a) используется для считывания введенного пользователем выражения и сохранения его в массиве a.
  4. Функция sscanf(a,%lf%c%lf,&a1,&c,&a2) используется для разбора введенного пользователем выражения и сохранения его частей в переменных a1, c и a2.
  5. Если символ, введенный пользователем, равен +, то выполняется операция сложения a1 и a2, результат сохраняется в переменной f1.
  6. Если символ, введенный пользователем, не равен +, то выводится сообщение об ошибке ошибочный знак операции.
  7. Результат операции выводится на экран с помощью функции printf: printf(%lf, f1);

ИИ поможет Вам:


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

Оцени полезность:

8   голосов , оценка 3.875 из 5