Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2016, 16:54   #1
elennaa
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 22
По умолчанию Ошибка в программе после переделывания из С++ в Си

После переделывания программы из С++ в Си вместо решения выдает формулу по которой нужно считать, но при компиляции ошибок нет. В Си разбираюсь не очень хорошо, может что пропустила. Подскажите пожалуйста что нужно исправить

Код:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<locale.h>
 
int f();
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
 
    float q;
    float a,b,c;
    
    
            
    printf("\t\t\t\t Условия пользования! \n");
    printf("\n Не вводите буквы!! \n");
    printf("\n Не вводите символы, кроме цифр! \n");
    printf("\n Дроби вводить нельзя! \n");
    printf("\n Убедительная просьба, выполнять условия пользования \n во избежания некорректной роботы програмы. \n\n");
while(1){
    printf("\n \n Выражения для вычисления: (a*a + b*b) / (b*b + 5^c) * b! = q \n");
    printf("\n Введите переменную  a: ");
   scanf( "%s", &a);
    printf("\n Введите переменную  b: ");
    scanf( "%s", &b);
    printf("\n Введите переменную c: ");
    scanf( "%s", &c);
 
    if(b*b + c == 0)
    {
        printf("\n (b*b)+(pow((double)5,(double)c)) = 0 \n");
        printf("\n  b*(b - 1) = 0 \n");
        printf("\n Простите на нуль делить нельзя!");
 
        
        
        getch();
       
    }
 
        q = (a*a + b*b) / (b*b + pow((double)5,(double)c));  
        
        printf("\n Решение: \n");
        printf("\n (a*a + b*b)/(b*b +pow((double)5,(double)c) *(b*(b-1)) = q \n");
        printf("\n Спасибо что использовали это приложения!\n");
    }
 
    getch();
}
 
int f()
{
    char f[20];
    int c, k=0;
 
    start2:
   
 
for(register int i = 0;i<20;i++)
    {
        k++;
    }
 
    for(register int i = 0;i<20;i++)
    {
        if(f[i] == '0' || f[i]=='1' || f[i]=='2' || f[i]=='3'|| f[i]=='4'||f[i]=='5'||f[i]=='6'||f[i]=='7'||f[i]=='8'||f[i]=='9' || f[i]=='-')
        {}
        else if(f[i] == '.' || f[i]==',')
        {
            printf("\n Просите вы ввели символ а его вводить нельзя!\n"); 
            printf("\n Повторите ввод переменной: ");
            
           
        }
        else if(k>20)
        {
            printf("\n Превышен лимит возможных символов\n");
            printf("\n Попробуйте еще раз  \n");
            
          
        }
        else
        {
            printf("\n Некорректные данные ");
            printf("\n  Попробуйте еще раз \n");
 
        }
    }
    c = 20;
 
    return c;
}
elennaa вне форума Ответить с цитированием
Старый 07.03.2016, 17:37   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Возможно,
Код:
printf("\n Решение: \n");
printf("\n (a*a + b*b)/(b*b +pow((double)5,(double)c) *(b*(b-1)) = %.5f \n", q);
printf("\n Спасибо что использовали это приложения!\n");
Но перед этим почему-то
Код:
q = (a*a + b*b) / (b*b + pow((double)5,(double)c));
eoln вне форума Ответить с цитированием
Старый 07.03.2016, 18:24   #3
elennaa
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 22
По умолчанию

Не помогло, все равно выдает формулу вместо решения
elennaa вне форума Ответить с цитированием
Старый 07.03.2016, 18:33   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А где вы результат выводите? Вы и выводите только формулы. "2 + 2" - это СТРОКА, а не выражение для подсчета
p51x вне форума Ответить с цитированием
Старый 07.03.2016, 18:49   #5
elennaa
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 22
По умолчанию

А как вывести результат?
elennaa вне форума Ответить с цитированием
Старый 07.03.2016, 20:58   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну, например, прочитайте, что у принтф больше 1 параметра бывает и для чего служит первый параметр.
p51x вне форума Ответить с цитированием
Старый 08.03.2016, 03:13   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

это чо такое?
Код:
for(register int i = 0;i<20;i++)
    {
        k++;
    }
а это ваще хлеб индуса!
Код:
 if(f[i] == '0' || f[i]=='1' || f[i]=='2' || f[i]=='3'|| f[i]=='4'||f[i]=='5'||f[i]=='6'||f[i]=='7'||f[i]=='8'||f[i]=='9' || f[i]=='-')
        {}
Как звучит оригинал задания?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.03.2016, 08:33   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Как звучит оригинал задания?
Да, вот тоже интересно знать, как изначально задание звучит? По копипасту, не совсем понятно, какая цель и каков должен быть конечный результат.
Может всё это можно решить более простыми методами, чем в Вашем посте.
К стати, с праздником.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 08.03.2016, 20:43   #9
elennaa
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 22
По умолчанию

(a*a + b*b) / (b*b + 5^c) * b! = q

нужно было написать программу что бы считала по этой формуле
elennaa вне форума Ответить с цитированием
Старый 08.03.2016, 20:54   #10
elennaa
Пользователь
 
Регистрация: 22.11.2015
Сообщений: 22
По умолчанию

Подскажите пожалуйста как ее можно решить по другому.
Потому что после того как я ее из С++ в Си передала она перестала работать, а сделать нужно очень срочно.
elennaa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспользовался excel надстройками и после этого начала появляться ошибка «ошибка 13 Type Misscmatch» malinov1maxim Microsoft Office Excel 5 27.01.2016 23:17
Программе после установки не хватает прав на запись в файл Dux Общие вопросы Delphi 17 16.08.2015 11:50
сохранение действий в программе после закрытия fins Общие вопросы Delphi 9 01.07.2015 18:59
Delphi 7. Сохранение данных в программе после ее закрытия. Bomjarik Помощь студентам 4 23.05.2012 18:25
ищем программиста для переделывания программы !>СаНеК<! Фриланс 10 29.02.2012 13:20