本文目錄一覽:
- 1、C語言中的開平方函數
- 2、剛學c語言 請教
- 3、c語言中sprt是什麼意思
- 4、c語言高手,指針,strcpy用不成?
- 5、C語言循環里scanf用不了
- 6、C語言編譯器用不了scanf();gets()之類的函數,是怎麼回事啊。。。 一點運行就卡死了。
C語言中的開平方函數
b的類型聲明錯誤,sprt函數返回double值。
DOUBLE 數據類型保存雙精度浮點數。它是一種近似數字數據類型,在算術運算後容易產生舍入誤差。DOUBLE 值的近似特性意味著在比較 DOUBLE 值時通常應該避免使用等式的查詢。
DOUBLE 值需要 8 個存儲位元組。
取值範圍是 -1.79769313486231e+308 到 1.79769313486231e+308,最趨近於零的數為 2.22507385850721e-308。DOUBLE 類型的值精確到 15 位有效數字,而超過第十五位就可能會產生舍入誤差。
sqrt()函數是cmath標頭(在早期版本中為math.h )的庫函數,用於查找給定數字的平方根,它接受數字並返回平方根。
擴展資料:
float 與 double 類型區別:
float 單精度浮點數在機內占 4 個位元組,用 32 位二進位描述。
double 雙精度浮點數在機內占 8 個位元組,用 64 位二進位描述
浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。
數符占 1 位二進位,表示數的正負。
指數符占 1 位二進位,表示指數的正負。
尾數表示浮點數有效數字,0.xxxxxxx, 但不存開頭的 0 和點。
指數存指數的有效數字。
指數佔多少位,尾數佔多少位,由計算機系統決定。
可能是數符加尾數占 24 位,指數符加指數占 8 位 — float。
數符加尾數占 48 位,指數符加指數占 16 位 — double。
知道了這四部分的佔位,按二進位估計大小範圍,再換算為十進位,就是你想知道的數值範圍。
剛學c語言 請教
disc是這段程序自定義的一個關鍵詞,在這裡起的作用就是等於b*b-4*a*c這個值,而a,b,c這三個值在這裡都是鍵盤鍵入的三個浮點數.
至於sprt是個函數,也是自定義的,在這段程序沒有說明,應該在程序後面還有一段關於sprt函數內容的程序,否則是運行不了的.這段程序的結果就是在屏幕上顯示出運算後的X1,X2的值
c語言中sprt是什麼意思
sprt在C語言中並沒有什麼特別的含義,既不是關鍵字也不是庫函數。
sprt可能是編程人員定義的一個變數名或結構體名或函數名等,如:
int sprt; // 變數名
struct
{
int num;
char name[];
}sprt; // 結構體名
void sprt() // 函數名
{
printf(“abc”);
}
c語言高手,指針,strcpy用不成?
這是傳說中的。。。野生指針。。。
指針
ptrsource
和
ptrdestionaton
都沒有初始化,
也就是說你的程序在運行的時候沒有分配一段空間,然後讓這些指針取指向它們;
而是讓這些指針指向了內存中的隨機區域。
換句話說,你在非法操作內存。這樣的後果,是修改了其他應用程序使用的內容,更嚴重的是修改了操作系統本身使用的內存(當然一般情況下會禁止你訪問的那片內存區域的)。
上面的野指針是最嚴重的問題,你的程序還有其他問題,下面是修改後的版本:
#includestdio.h
int
main()
{
char
source[100];
char
destionation[100];
//
讓
ptrsource
執行程序開闢的一塊內存:
source
char
*ptrsource
=
source;
//
讓
ptrdestionaton
執行程序開闢的一塊內存:
destionation
char
*ptrdestionaton
=
destionation;
gets(ptrsource);
while((*ptrdestionaton++
=
*ptrsource++)!=NULL);
//
這裡漏了一步:你沒有為
ptrdestionaton
執向的字元串,添加字元串結束符號
‘\0’
*ptrdestionaton
=
‘\0’;
//
這裡更有問題:ptrdestionaton
已經指向了字元串的末尾,你能輸出什麼呢?
//
你要讓
ptrdestionaton
重新執行字元串的開頭才可以!!!
ptrdestionaton
=
destionation;
puts(ptrdestionaton);
}
C語言循環里scanf用不了
肯定是因為game()函數里有scanf語句,並且scanf之後沒有處理scanf留下的換行符。
scanf從屏幕是讀取數據時,往往不會自動讀掉行尾的換行符(你輸入數據後,肯定會按一個回車的對吧),所以在game函數里的最後一個scanf結束後,輸入緩衝區里還一個換行符在裡面,這個時候main函數里的scanf函數讀到的字元就是那個換行符
解決方法:
在game函數的最後一個scanf函數後面,加上一個gets語句,用來讀掉最後一個換行符即可,當然如果你的輸出里敲了多個回車,就要執行多句,不懂可以貼上你的game()函數和你上面的輸入,我再告訴你
C語言編譯器用不了scanf();gets()之類的函數,是怎麼回事啊。。。 一點運行就卡死了。
可能你的編譯器被病毒感染。
我推薦你使用C-free編譯器,支持C/C++
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248742.html