Ошибка "Call of nonfunction" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет выдает ошибку Call of nonfunction в прокоментированной строчке...ПОдскажите пожалуйсто как ее исправить..
#include <stdio.h>
#include <conio.h>
 
float cel (float des, float q) {
float p;
p=des*q;
 return p;
  }
void main()
{
clrscr();
int mas[10];
float q=2;
int n;
int N=3;
int mas2[10];
int cel,cel2,i,s,e;
float dq,des,num;
for (i=0;i<=11;i++) mas[i]=0;
for (n=0;n<=3;n++) mas2[n]=0;
num=46.625;
cel=num/1;
cel2=num/1;
for (i=0;cel!=0;i++)
{
if (cel==q) mas[i]=cel;
 
mas[i]=cel%(int)q;
cel=cel/q;
}

des=num-cel2;
printf("des= %f, q= %f " ,des,q);
for (n=0;n<=N;n++)
{ 
dq=cel(des,q);  // Выдает ошибку тут...
printf("dq=%f ",dq);
mas2[n]=(int)dq;
des=dq-(int)dq;
printf("des = %f ",des);
if (des-(int)des==0) break;
 
}
printf ("\n");
for (i=9;i>=0;i--) printf ("%d",mas[i]);
printf ("\n");
for (n=0;n>=9;n++) printf ("%d",mas2[n]);
getch();

}
исправил всем спасибо)))
исправил всем спасибо)))

Решение задачи: «Ошибка "Call of nonfunction"»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 
float cel(float des, float q)
{
  return des*q;
}
void main()
{
    clrscr();
    int mas[10];
    float q=2;
    int n;
    int N=3;
    int mas2[10];
    int celi//Не нужно давать одно и  тоже имя переменной и функции
    ,cel2,i,s,e;
    float dq,des,num;
    for (i=0; i<=11; i++) mas[i]=0;
    for (n=0; n<=3; n++) mas2[n]=0;
    num=46.625;
    celi=num/1;
    cel2=num/1;
    for (i=0; celi!=0; i++)
    {
        if (celi==q) mas[i]=celi;
 
        mas[i]=celi%(int)q;
        celi=celi/q;
    }
 
 
 
    des=num-cel2;
    printf("des= %f, q= %f " ,des,q);
    for (n=0; n<=N; n++)
    {
        dq=cel(des,q);  // Выдает ошибку тут...
        printf("dq=%f ",dq);
        mas2[n]=(int)dq;
        des=dq-(int)dq;
        printf("des = %f ",des);
        if (des-(int)des==0) break;
 
    }
    printf ("\n");
    for (i=9; i>=0; i--) printf ("%d",mas[i]);
    printf ("\n");
    for (n=0; n>=9; n++) printf ("%d",mas2[n]);
    getch();
 
 
}

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

  1. Объединение и в начале кода для ввода и вывода данных.
  2. Функция float cel(float des, float q) принимает два аргумента типа float и возвращает des*q.
  3. Функция void main() инициализирует экран и массив из 10 целых чисел mas[10].
  4. Инициализация переменных: q=2, n=0, N=3, celi=0, cel2=0, i=0, s=0, e=0, dq=0, des=0, num=46.625.
  5. Цикл for (i=0; i<=11; i++) инициализирует первые 11 элементов массива mas[10] нулями.
  6. Цикл for (n=0; n<=3; n++) инициализирует первые 3 элемента массива mas2[10] нулями.
  7. Переменная num=46.625 инициализирует значение переменной des.
  8. Цикл for (i=0; celi!=0; i++) выполняет следующие действия:
    • Проверяет, является ли celi равным q. Если это так, то присваивает i-ый элемент массива mas[10] значение celi.
    • Присваивает i-ый элемент массива mas[10] значение celi%(int)q.
    • Делит celi на q и присваивает результат переменной celi.
  9. Переменная des=num-cel2 инициализирует значение переменной des.
  10. Вывод на экран значений переменных des и q с помощью функции printf().
  11. Цикл for (n=0; n<=N; n++) выполняет следующие действия:
    • Вызывает функцию cel(des,q) и присваивает результат переменной dq.
    • Выводит значение переменной dq на экран.
    • Присваивает n-ый элемент массива mas2[10] значение (int)dq.
    • Вычисляет разницу между dq и (int)dq и присваивает результат переменной des.
    • Выводит значение переменной des на экран.
    • Проверяет, равно ли des-(int)des нулю. Если это так, то прерывает цикл.
  12. Вывод на экран всех элементов массива mas[10] с помощью цикла for и функции printf().
  13. Вывод на экран всех элементов массива mas2[10] с помощью цикла for и функции printf().
  14. Функция getch() используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.

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


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

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

10   голосов , оценка 3.5 из 5