因?yàn)槟愕妮斎胧且粋€(gè)字符串,你一次只讀取一個(gè)字符,剩下的字符還是存在的,而你用循環(huán)去繼續(xù)讀取的話,就會(huì)把剩下的字符串讀出來。而循環(huán)中有打印函數(shù),那就會(huì)把取出來的字符打印出來,效果看起來就像是輸出了一個(gè)字符串,其實(shí)是一個(gè)字符一個(gè)字符的輸出。你可以試一下,把打印函數(shù)改一下:printf("%c\n", ch); 加一個(gè)回車換行,效果就看出來了。
為陽泉等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及陽泉網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、陽泉網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
不用循環(huán)的話,那就讀取的次數(shù)有限,打印的次數(shù)也有限,效果不一樣。
假設(shè)編譯后的程序是test.exe
試試
c:\testprn1
這是把標(biāo)準(zhǔn)輸出映射到打印機(jī),而不是顯示器
你查一下dos重定向輸出應(yīng)該會(huì)有結(jié)果
#include?"stdio.h"
void?printMap(char?m,int?n)
{
int?i,j,k;
for(i=0;in;i++)
{
? ? for(j=i;jn;j++)
? ? {
? ? ?printf("?");
? ? }
? ? for(k=0;k2*i+1;k++)
? ? {
? ? ?printf("%c",m);
? ? }
? ? printf("\n");
}
}
int?main()
{
char?m;
int?n;
scanf("%c%d",m,n);
printMap(m,n);
}
結(jié)果:
float是單精度浮點(diǎn)數(shù),float的指數(shù)范圍為-127~+128
float的范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;
float的精度是由尾數(shù)的位數(shù)來決定的。浮點(diǎn)數(shù)在內(nèi)存中是按科學(xué)計(jì)數(shù)法來存儲(chǔ)的,其整數(shù)部分始終是一個(gè)隱含著的“1”,由于它是不變的,故不能對精度造成影響。
float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數(shù)字,但絕對能保證的為6位,也即float的精度為6~7位有效數(shù)字;
#includestdio.h
int main()
{short a=32767;
printf("%.3f\n",(float)a/32768*180 );
return 0;
}
變參函數(shù)的參數(shù)表通常為 (int n,..),其中,n是最后一個(gè)命名參數(shù),用來指出接下來要處理參數(shù)的個(gè)數(shù),這些參數(shù)的類型是已知的,你要求區(qū)分字符串和字節(jié)流,該如何做呢?
void pri(int *p) p是數(shù)組的首指針,就是指向第一個(gè)元素的指針
{
int *q=p+N; 讓q是數(shù)組指向最后一個(gè)元素
for(;pq;p++) 這個(gè)循環(huán)就是從第一個(gè)到最后一個(gè)元素安格輸出
printf("%5d," *p);
printf("\n");
}
數(shù)組的名本身就是一個(gè)指針,表示數(shù)組第一個(gè)元素,咱們可以對指針進(jìn)行操作
例如p + 1 就是指針向后移動(dòng)一個(gè)單位,也就是指向第2個(gè)元素
現(xiàn)在明白了啊