2014-10-16 13 views
-6

Я пытаюсь построить код для расчета емкостной реактивности в простой серийный емкостный реактор для моего класса электроники. Цель кода не имеет значения, поскольку проблема заключается в том, что я делаю что-то очень не так и нуждаюсь в помощи с навыками C. Это формула, которая вам нужна:Как исправить ошибку компилятора: expected '=', ',', ';', 'asm' или 'attribute' before '{' token | "?

Formula for Capacitance

Вот мой код: (за исключением заголовков, поскольку они вызывают ошибки формата в HTML поста)

const float pi = 3.145962; 

float xc(float frequency, float capacitance) 





int main() 
{ 

float capreac; 
float valueofc() 
float valueoff() 
    capreac = xc(f;c;) 
} 


float xc(float frequncy, float capaitance); 
{ 
    float answer; 
    answer = (1/(2*pi*capacitance*frequency)); 
    return(answer); 


} 

My IDE - это CodeBlocks, который используется моим классом.

Отказ от использования, указав «| 13 | error: expected» = ',', ','; ',' asm 'или' атрибут 'before' {'token | " на строке «float xc» и «| 6 | ошибка: объявления параметров старого стиля в определении прототипической функции» » в определяющей строке xc.

Есть ли надежда на это newb?

+6

[Узнать немного о 'C'] (http://www.learn-c.org/), потому что у вас есть какие-то вопиющие ошибки синтаксиса и логические проблемы всей кода. – Adam

+4

точки с запятой перепутаны. – OldProgrammer

+2

... и что такое 'xc (f; c;)'? –

ответ

2

1) Вам нужно двоеточие и конец вашего прототипа:

float xc(float frequency, float capacitance);

2) Объявления переменных не имеют "()"

float f; 
float c; 

3) аргументы разделены по запятой: capreac = xc(f, c);

4) имена аргументов должны соответствовать именам переменных:

float xc(float frequency, float capacitance); 
{ 
    float answer; 
    answer = (1.0/(2.0*pi*capacitance*frequency)); 
    ... 
+3

См. Мой комментарий выше - удалите точку с запятой между ')' и '{' в определение функции. –

+0

Оглядываясь назад, я даже не злюсь, что у меня так много downvotes для этого! –

2
#include <stdio.h> 
#include <math.h> 
typedef long double ldouble; 
ldouble xc(ldouble f, ldouble C){ return 1/(2*M_PIl*f*C);} 
int main(int argc, const char *argv[]) 
{ 
    ldouble f, C, answer; 

    puts("Enter f:"); 
    scanf("%Lf", &f); 
    puts("Enter C:"); 
    scanf("%Lf", &C); 
    answer = xc(f, C); 
    printf("Xc=%Lf\n", answer); 

    return 0; 
} 
+0

Почему ldouble и не плавать? –

+0

Поплавки довольно неточны. Тебе лучше вдвое меньше. – PSkocik

+2

@PSkocik: Так как вы собираетесь точно, можете ли вы исправить определение PI, чтобы оно было действительно правильным? Какой-то глупый, чтобы иметь точный неправильный ответ. – indiv