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 第...