2013-04-11 130 views
2

我是一名嘗試使用VS 2012 Ultimate學習C編程的初學者。錯誤:預期「;」

我剛剛學會了如何製作一個「攝氏到華氏」轉換器,所以我決定進一步把它放到「球體積」計算器中。這是我鍵入:

#include <stdio.h> 
#include <string.h> 

char line[100]; /*Line input by the user*/ 
char line_2[100]; /*Second line input by the user*/ 
float radius; /*Value of the radius input by the user*/ 
float pi; /*Value of the pi input by the user*/ 
float volume /*Result of the calculation*/ 
float result_volume; /*Result of the second calculation*/ 
float result_volume2; /*Result of the third calculation*/ 
float result_volume3; /*Result of the fourth calculation*/ 

int main() 
{ 
    printf("Please write the value of the radius: "); 
    fgets(line,sizeof(line),stdin); 
    sscanf(line,"%f",&radius); 
    printf("Please write the value of the Pi "); 
    fgets(line_2,sizeof(line_2),stdin); 
    sscanf(line_2,"%f",&pi); 
    volume = radius*radius*radius; 
    result_volume = volume *pi; 
    result_volume2 = result_volume*4; 
    result_volume3 = result_volume2/3; 
    printf("When the radius is %f, and the Pi, %f, then the volume of the sphere is: 
       %f\n", radius, pi, result_volume3); 
    return (0); 
} 

,當我嘗試編譯此,我不斷收到錯誤:

Error: Expected a ";" on float result_volume. 

在哪裏我犯這樣的錯誤,我怎麼能解決這個問題?請幫忙!

回答

4

在你展示的代碼中,;之後

float volume /*Result of the calculation*/ 

缺少它應該是:

float volume; /*Result of the calculation*/ 

注:當你得到這樣的錯誤,通常情況下,你應該看之前的行發生錯誤的行。在你的情況下,這是前一行。

會發生什麼情況是,編譯器僅在下一行到達;時纔會看到問題。在那裏,它意識到整個兩條線不會做出單一的命令,並且應該在某處發生切割。但它無法告訴哪裏。所以,它會在發現錯誤時標記錯誤,而不是實際發生的位置。

但是,該領域已經有了重大改進,例如使用Clang,MAC OS X IDE Xcode能夠在需要的地方準確地提示;

0
float volume /*Result of the calculation*/ 
float result_volume; /*Result of the second calculation*/ 

float volume

float volume; /*Result of the calculation*/ 
float result_volume; /*Result of the second calculation*/ 
後忘了一個分號( ;