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