1. c語言打完代碼不能編譯了,編譯鍵按不了 軟體沒死
delta = b*b - 4*a*a; 不是 4ac嗎?而且有兩個解不是delta>0嗎?x1和x2不是一個 -b+ ;一個 -b- 嗎?
els (delta = 0)
{
x1 = (-b) / (2*a);
x2 = x1;
pronat(該方程有1解, x1 = x2 = %f\n", x1)
else寫錯了 printf寫錯了 輸出語句少了一個引號。
delta==0不是delta=0;而且應該是else if
最後一個是else
printf("該方程無解");
還有其他錯誤
你怎麼學的喲----
# include <stdio.h>
# include <math.h>
void main()
{
int a = 1;
int b = 2;
int c = 3;
double delta;
double x1;
double x2;
delta = b*b - 4*a*a;
if (delta >0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b + sprt(delta)) / (2*a);
printf("該方程有2解, x1 = %f, x2 = %f\n", x1 x2);
}
else if (delta== 0)
{
x1 = (-b) / (2*a);
pronat("該方程有1解, x1 = x2 = %f\n", x1)
}
else
{
printf("該方程無解\n");
}
}
2. 怎樣終止C語言的編譯
windows下按下CTRL+ALT+Del調出任務管理器,然後找到VC的進程結束進程就可以了。VC可能會提示你,直接點確定,然後重啟VC
3. C語言代碼運行問題,為什麼編譯通過,但是運行時直接結束,沒有輸入
請把最後兩行從main()中移出來:
typedef struct tree
{
int weight;
int parent;
int lchild;
int rchild;
}HTNode,*HuffmanTree;
//定義編碼
typedef struct code
{
int bit[MAX];
int start;
}HCNode,*HuffmanCode;
HTNode HT[MAX]; //移到這里
HCNode HC[MAX];
4. c語言代碼執行到一半終止
大概問題,我已經知道了,所謂的執行到一半就終止,是因為數組越界了,而且編譯器不會報警。
比如,在你這個程序里,我輸出50-200,他永遠只會提示你有21個,因為你輸出之前,還需要把這個偶數存放到一維數組a中,然而一維數組只能存放20個數,50-200中間有76個偶數,到了第20個偶數的時候,數組就已經越界了,程序就運行不正常了,應該是直接跳出了循環。而你是在數組存放了第20個數的後面進行了i++,所以提示是第21個數,數組是從0開始計數的,你是從一開始提示的,所以第21個數其實就是數組a[20]的數,然後就跳出循環了,只要偶數大於21個,程序永遠都只顯示21個數,建議要麼把數組去掉,這樣就可以顯示全部的偶數了,就正常了,要麼把數組設置的大一點,但是這樣,如果數太多了,還是會溢出的,看你的感覺是想保存前20個偶數,那麼建議程序改成這樣,就能即保存前20個數,顯示的也是正常的。
代碼如下:
#include <stdio.h>
#include <windows.h>
int main()
{
int a[20];
int c,d,e,f,g,h,i;
long b;
printf("起始值:");
scanf("%d",&c);
printf("終止值:");
scanf("%d",&d);
d++;
for(b=c;b<d;b++)
{
if(b%2==0)
{
if(i<20)
{
a[i]=b;
}
i++;
printf("第%d個偶數:%d\n",i,b);
}
}
printf("%d到%d中有%d個偶數",c,d,i);
return 0;
}
5. 為什麼我用C語言編譯的時候,沒有錯誤,但是就是運行不出來結果
現在我來回答一下吧:
參照下面本人的例子來說明一下:
#include <AT89X51.h>
#include <stdio.h>
int main (void)
{
SCON = 0x50;
TMOD = 0x20;
TCON = 0x40;
TH1 = 0xE8;
TL1 = 0xE8;
T1 = 1;
TR1 = 1;
while (1)
{
printf ("Hello World!\n");
}
return 0;
}
代碼的具體意思怎麼樣,我就不解釋了,重點放在如何實現從串口調試窗口中輸出printf的內容吧。
其實很簡單,將代碼編譯鏈接後,開始調試,分別打開view -> serial window #1
然後,我們按run鍵,此刻,serial window #1並沒有任何內容,症結在哪兒呢?
我們回想一下串口通信的知識吧,知道了吧,我們沒有在代碼中設置串口發送寄存器中的內容,也就是,我們根本就還沒啟動串口發送消息。
這下好辦,我們繼續打開peripherals -> serial channel這個就是串口寄存器控制中心,我們在給其中的TI前面打上個勾,也就是啟動串口發送消息。
在此,我們就可以看到串口調試窗口中輸出printf的內容了~
上面的代碼是我參照那本書上的例子,我分析後,發現其實是它的代碼出錯了,只要把代碼改正,也就不用那麼麻煩了,經過上面這一步,估計大家猜到錯誤出在哪裡了,就就是:
T1 = 1;
我們改回:
TI = 1;
然後直接運行就可以看到效果了!
6. 看看這個程序C語言 編譯沒問題 運行終止
#include<stdio.h>
#defineMAX100
char*lookupLongestStr(charpch[][MAX],intn,int*maxlength)
{
intc[4]={0},t=0,i=0,j=0;
char*p;
for(i=0;i<n;i++)
{
for(j=0;pch[i][j]!='