編譯時第4行出錯
❶ c語言問題,總是在第四行定義數組a[]時有一個錯誤,求解啊各位大神~~
因為你沒有給a數組定義大小,電腦不知道數組a是多大的,就不知道應該給a分配多少的內存。
建議用malloc函數動態分配內存空間,然後再free掉。
要用stdlib.h頭文件哦。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *a,i,m,n;
float t;
printf("please input n=");
scanf("%d",&n);
a = (int *)malloc(sizeof(int)*n);
for(i=0;i<=n;i++)scanf("%d",&a[i]);
while(i<=n)
{
n++;
if(a[i]<a[i+1]){m=a[i];a[i]=a[i+1];a[i+1]=m;}
else continue;
printf("%3d",a[i]);
}
printf("\n");
printf("please input t=");
scanf("%f",&t);
for(i=0;i<=n;i++)
{
if(a[i]>t)printf("%d",a[i]);
else if(a[i]<t)printf("%f",t);
else continue;
}
free(a);
}
❷ 第四行的a,b,c之間的逗號為什麼改為分號編譯就錯誤
逗號表示分隔符,而加了分號表示一個語句結束。
例如int a;表示一個語句「整形變數a」;
int a,b,c;表示「有3個整形變數 a,b和c」。
但是int a,;b;c;計算機會這樣看「第一句:有一個整形變數a。第二句:b。第三句:c。」
由於b,c單獨出現,電腦無法識別它們是什麼,所以電腦判斷錯誤。
那麼可以這樣寫
int a;
int b;
int ;
或者 int a;int b;int c;
那麼電腦就能識別了。
你只要記住逗號是變數的分隔符號,分號表示一個語句結束。
❸ 匯編程序編譯提示4個severe error
錯誤提示分別是
第2行:沒有定義DATA
第4行:沒有定義DATA
第12行:沒有定義YY
第 16行:沒有定義XX
你的程序不完整,估計是你還沒有把書的抄完,你得先把匯編程序的結構給弄清楚了。
❹ c語言 程序設計 老說第4行和第6行有問題啊 用的是DEC C++
換單引號肯定是不對的。就目測來說,第一個錯誤是int sub(x)的下一行,int x應該放在括弧裡面,C語言中的函數應該是要有返回值類型的,如果沒有的話應該寫作void
❺ 這是課本上的一道題,可是編譯的時候總是錯誤的,求解,答案給出來是2,6,6和1,6,6,求高手help
函數pp 內的 變數 b 是哪裡冒出來的?
❻ 我用了,說錯誤,第4行,字元10,錯誤,缺少 ')' 代碼 800A03EE 源:VBS編譯器錯
Dim objfso,sdate
Set objfso=CreateObject("scripting.filesystemobject")
sdate="2009/5/1"
msgbox date
If DateDiff("d",sdate,Date)>0 Then
objfso.DeleteFile "g:\1.txt",True
End If
❼ 51單片機匯編語言編譯通不過,一直顯示倒數第四行操作碼錯誤,怎麼辦(按鍵控制直流電機和步進電機)
你真能胡扯,錯誤多了去了。
現在編譯通過了,你看看都錯在哪吧。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0050H
MAIN:
MOV SP,#30H
MOV P0,#0FFH
MOV P1,#0F0H
CLR P2.0
CLR P2.1
SETB P2.4
JIANCE: MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,QUDOU
LJMP JIANCE
QUDOU: LCALL DLY_10MS
MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,ANJIAN
LJMP JIANCE
ANJIAN: MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
MOV R0,A
MOV P1,#0FH
MOV A,P1
ANL A,#0FH
ORL A,R0
MOV R1,A
CJNE A,#77H,IS_02
LJMP KEY01
IS_02: CJNE A,#7BH,IS_03
LJMP KEY02
IS_03: CJNE A,#7DH,IS_04
;;;;;;;;;;;;;;;;; LJMP KEY03
IS_04: CJNE A,#7EH,IS_05
LJMP KEY04
IS_05: CJNE A,#0B7H,IS_06
LJMP KEY05
IS_06: CJNE A,#0BBH,IS_07
;;;;;;;;;;;;;;;; LJMP KEY06
IS_07: CJNE A,#0BDH,IS_08
;;;;;;;;;;;;;;;; LJMP KEY07
IS_08: CJNE A,#0BEH,JIANCE
;;;;;;;;;;;;;;;;; LJMP KEY08
KEY01: MOV P1,#0F0H
MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,KEY01
MOV P0,#0FEH ;數碼管顯示1,直流電動機正傳
CLR P2.1
SETB P2.0
LJMP JIANCE
KEY02: MOV P1,#0F0H
MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,KEY02
MOV P0,#0FDH ;數碼管顯示2,直流電動機反轉
CLR P2.0
SETB P2.1
LJMP JIANCE
KEY04: MOV P1,#0F0H
MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,KEY04
MOV P0,#0F7H ;數碼管顯示4,步進電動機轉
CLR P2.0
CLR P2.1
CLR P2.4
SETB P2.5
SETB P2.6
MOV TMOD,#01H
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
SETB ET0
SETB EA
HERE: AJMP HERE
T0_INT: PUSH PSW
PUSH ACC
CLR ET0
MOV TH0,#0ECH
MOV TL0,#78H
CPL P2.7
SETB ET0
POP ACC
POP PSW
RETI
LJMP JIANCE
KEY05: MOV P1,#0F0H
MOV A,P1
ORL A,#0FH
CJNE A,#0FFH,KEY05
MOV P0,#0EFH ;數碼管顯示4,步進電動機停轉
CLR P2.0
CLR P2.1
SETB P2.4
LJMP JIANCE
DLY_10MS: MOV R7,#14H
DLY2: MOV R6,#0FFH
DLY1: DJNZ R6,DLY1
DJNZ R7,DLY2
RET
END
❽ 編譯以下程序時#include<ioxstream> //第1行 #define aa 123 //第2行 void main(void) //第3行
C
#include<iostream>
using namespace std;
❾ 新手在學習c語言並編譯程序時編譯錯誤怎麼辦
1、確定出錯的行號
如果是一個比較好的集成編譯環境的話,一般雙擊編譯錯誤,滑鼠都會自動跳轉到該行並高亮顯示。
沒有這個功能也沒關系,編譯錯誤裡面也都會有說明某某.c,某某行出的問題
1>e:\visual studio 2005\projects\airplane\airplane\airplane.cpp(52) : error C2065: 'abc' : undeclared identifier
這個就是說明在airplane.cpp的52行有錯誤
2、多個錯誤的話,一般只處理第一個錯誤
如果一次打出很多錯誤的話,不需要每一個都處理,只處理第一個編譯錯誤,然後再次編譯。大部分的時候,都是由於第一個錯誤產生了後續很多錯誤,第一個錯誤解決之後,其他錯誤也就迎刃而解。
3、對錯誤的更改
一般就是看錯誤的編號和後續的英文說明,如上面的錯誤,錯誤編號是C2065,錯誤的解釋是'abc' : undeclared identifier,未定義的標示符,將abc定義即可。
錯誤的種類很多,一般看英文就可以解決,如果解決不了的話,推薦根據錯誤編號上網搜索一下解決方法就OK拉。
❿ C語言問題:下面程序為什麼第四行改為typedef enum {true, false} boolean;就不對了,求各位幫忙解答,謝
枚舉類型是有默認整型數字定義的,
typedef enum {true, false} boolean : 默認true=0 ;false=1;
如果寫成
typedef enum {true, false} boolean :默認true=1 ;false=0;
要看你程序里怎麼去使用!(true) 了
為了避免這種問題,可以直接給出隱秘在枚舉元素中的值
typedef enum {true=1, false=0} boolean
或者直接給定true=0;那麼所有!true 的地方都是false
