C語言的程式,有一段看不懂,C語言的一個程式,有一段看不懂

2022-12-04 20:08:29 字數 3152 閱讀 1351

1樓:匿名使用者

p是一個字元型的指標,因此,*p表示指標當前位置的字元。由於c中對字元型和整型是不進行區分的(即可以互相轉換的),因此*p也可以認為是一個數字。同樣'0'也可以代表一個數字。

根據ascii**表可以知道。字元'0'**是十進位制的48,所示也可以認為'0'就是數字48。

因此,上面**的*p-'0'的意思就是把字元型的數字轉化為整型的數字。

例如:假設字串為:「s28「,並且p已經指向了'2',則:

*p='2'=0x32=50;

*p-'0'=50-48=2;

x=10*0+2=2;

然後:*p='8'=0x38=56;

*p-'0'=56-48=8;

x=10*2+8=28;

2樓:匿名使用者

*p是一個字元,*p-'0'就是*p的數字。

3樓:有錢買不起房子

這段**意思是從地址str中將是數字字元的提取出,存放到陣列a中假如地址儲存的是這樣的字串,"12a3"

while(*p>='0'&&*p<='9')根據這個判斷,'1'符合,這樣x=10*0+』1『-'0'=1,

然後p++,*p='2',x=10*1+'2'-'0'=12,看到這裡,你應該明白字串"12"怎麼變成數字12了

c語言問題,今天見了一個程式,完全看不懂 ,求高手詳細講解一下。

4樓:

1, 提示使用者輸入5個 浮點數:

for(count = 0; count <

2, 開啟一個檔案,準備把這5個數寫入此檔案

gets(filename); /* 這句是為了 消去前面 scanf時在stdin 的buf中產生的 字元*/

printf("enter file name --> "); scanf("%s",filename); /* 輸入檔名*/

if((fp = fopen(filename,"w")) == null) /*開啟檔案*/

3, 將data陣列的5個數寫入檔案

/* fprintf 和 printf類似,只是它把內容輸入到檔案,而後者是在螢幕顯示 */

fprintf(fp,"\ndata[%d] = %f",count,data[count]);

fprintf(stdout,"\ndata[%d] = %f",count,data[count]); /*stdout 代表當前終端,這句與 printf一個效果*/

5樓:海獅

結論,相當爛的程式,輸入5個數,回顯一下,寫到檔案裡。

幾個嚴重不推薦:

c語言裡面使用c++的註釋。

最後沒有return 0。而且實際上還總是反著,出錯了exit(0)表示沒有錯誤,沒出錯printf("\n"),相當於return 1。表示錯誤。

6樓:匿名使用者

這是一段檔案的寫入**:先輸入5個值,然後讀取一個可寫入檔案(引數『w 』表示檔案寫入,檔案若不存在,會自動建立的),讀取失敗,就退出;否則,寫入,fp是檔案指標,相當於一個定位符,最後再將寫入的內容顯示到螢幕上!

看看一種結果,加深理解:

enter 5 float numbers5612

3enter file name --> test1.cdata[0] = 5.000000

data[1] = 6.000000

data[2] = 1.000000

data[3] = 2.000000

data[4] = 3.000000

同時,程式所在目錄下,會建立一個test1.c的檔案,內容也是data[0] = 5.000000

data[1] = 6.000000

data[2] = 1.000000

data[3] = 2.000000

data[4] = 3.000000

7樓:

輸入5個float型別的數(假設輸入12.1、13.2、14.

3、15.4、16.5),先存在陣列data中,再以下面的形式寫入到filename所示的檔案中,同時在螢幕上顯示。

data[0] = 12.100000

data[1] = 13.200000

data[2] = 14.300000

data[3] = 15.400000

data[4] = 16.500000

一個c語言程式,看不懂啊!

8樓:匿名使用者

s[i] && t[i] && s[i]==t[i];

當s[i]和t[i]的值都不為'\0',且兩者相等時。

9樓:匿名使用者

是迴圈的條件,s[i]!='\0'且t[i]!='\0'且s[i]==t[i];否者就跳出迴圈

看c語言的程式 單句看都懂,整體看不懂有什麼辦法解決嗎?

10樓:匿名使用者

你要知道,看別人寫的**是一件很痛苦的事情(特別是那種沒有註釋,變數名亂取a,b,c的**),不僅是你,就算是經驗豐富的程式設計師也是一樣。

第二,解決一個問題每個人用的方法不同,所以**也不一樣。也許你看完題目後自己已經大概知道怎麼去實現了,但是看別人**的時候人別不是用你那種方法,所以很難看懂。這很正常。

第三;在解決一個問題之前一定要畫流程圖,把解決的思路詳細寫出來。不管我這種思路我自己有沒有能力去實現,但是思路要清晰。特別是你目前的水平。

第四:多看看書上的例題講解,這個很重要。不要大概囫圇吞棗的看。要逐行住句的仔細斟酌,確保每一句話對應每一行**你都能看明白。

第五:如果你感覺把前四條都做完了但是還是很吃力。要麼是你的學習方法不對,要麼是你沒興趣學。。做程式設計師是很枯燥的。沒有興趣的支撐很難走下去。

11樓:匿名使用者

然後動手實踐。這樣學起來會很快的。

當初我也是這麼學的。我單書只懂個1半 上機實踐一下子什麼都明白了。然後有什麼難點及時查閱網上的資料。以及向高手請教。

祝你學有所成。

12樓:一晚上幹7次

下個翻譯.搞去翻譯就可以

c語言一段程式的理解,c語言一段程式的理解

fwrite void buffer,size t size,size t count,file fp 表示將buffer地址開始的資訊,寫入count次,每次寫size位元組至檔案fp中,現在明白1的意思了?就是把 people i 開始的size字元寫入檔案fpo中,總共寫入1次 主要是看fwi...

看c語言的程式單句看都懂,整體看不懂有什麼辦法解決嗎

你要知道,看別人寫的 是一件很痛苦的事情 特別是那種沒有註釋,變數名亂取a,b,c的 不僅是你,就算是經驗豐富的程式設計師也是一樣。第二,解決一個問題每個人用的方法不同,所以 也不一樣。也許你看完題目後自己已經大概知道怎麼去實現了,但是看別人 的時候人別不是用你那種方法,所以很難看懂。這很正常。第三...

c語言題目,看不懂啊!求解釋,C語言 25題 完全看不懂啊

我也不懂。你這段 到底有什麼意義。找到最大的字元。然後把它賦值成結束符。到底有神馬特殊作用。最後輸出個mo。有什麼意思 這個程式很簡單啊!程式不難,那就一步一步來,把它搞懂首先程式是從main 函式開始執行,第一步 字串賦值 定義了字元陣列a用來儲存字串 morning 第二步定義整形初值i,j 第...