-
此函式用於開啟指定檔案的預定義流:標準輸入、標準輸出或標準錯誤。
#include
int main()
if (freopen("", "w", stdout)==null)
fprintf(stderr, "error redirecting\stdout");
for(int i=0;i<10;i++)printf("%3d",i);
printf("");
fclose(stdout);
return 0;
在VC++中執行它,你會發現這十個數字被輸出到D盤下的文字檔案中。
你可能想這樣說:
#include
int main()
char s[100];
freopen("","r",stdin);
freopen("","w",stdin);
scanf("%s",s);
printf("%s",s);
fclose(stdin);
fclose(stdout);
return 0;
其功能是從檔案中讀取 100 個字元,然後將其寫入。
-
我不明白你想做什麼,但你回來的位置......
-
問題 1:C 中的 int
main() 和 void
main() 有什麼不同?
答:intmain() 必須返回 int 的值。
voidmain() 不需要返回資料。
問題2:我在網上看到一段話:
可以將整數常量指定為二進位、八進位或十六進製,如以下語句:
129,0x12fe,0177
常量前面有符號 0x,表示常量是十六進製表示形式。 如果前面的符號只有乙個字母 0,則表示常量為八進位。
有時我們會在常量中新增符號 l 或 u,以指示該常量是長整數或無符號整數
22388l,0x4efb2l,40000u”
答:前面的 - 代表乙個有符號的數字。
0x 代表(十六進製十六進製)。
0 代表八進位,但八進位很少使用,也不是通用的,所以你可以放棄八進位。
關於基本系統就不多說了,一種語言的基礎,l很長,你是無符號的
有很多組合,長
int;long
float 等,無符號
charunsigned
int等;
-
在輸入字元(也是有效字元)之前,不能有其他空格字元,在輸入傳入值 (%d %f) 之前,不能有任意數量的空格字元,如空格、回車製表符。
輸入數值時,會遇到第乙個非數值字元,並且數值輸入結束(浮點資料中的小數點除外)。
根據上述原理,A 後面有乙個空格,這是錯誤的,導致 C1 讀取乙個空格。
b 同樣,最後乙個空格導致 C2 出錯。
d 同樣,2 後面的空格會導致後續讀取放錯位置。
c 沒問題!
-
死記硬背學習 C 是不可能的。
C語言是程式設計師和計算機交流的語言,所以把它當成一門語言來學習,但是C語言中的大部分單詞都和英語差不多,比如說你說不出“什麼時候用printf,什麼時候用scanf”,那麼你就知道print和scan的意思了吧? 現在,如果有人告訴你,乙個是將資訊列印到螢幕上,另乙個是獲取使用者的輸入,你現在可以從字面上區分這兩個功能嗎?
至於 float 和 double 的資料型別,你應該知道這兩類資料占用的記憶體空間是不同的,換句話說,資料的準確性是不同的。 至於為什麼是“明明輸出,但結果不一樣,整數部分不一樣”,這就需要你在除錯的時候看記憶體了**。
說了這麼多,歸根結底是對 C 語言感興趣,如果你不感興趣,就培養興趣。 別怕麻煩,先敲一下書中電腦上的**,試著跑,弄清楚每句話的意思是什麼,然後一步一步的除錯,看看每句話會做什麼。 當你了解乙個程式時,你會感到一種成就感,而成就感是培養興趣的動力。
在你弄清楚了書中的所有程式之後,你以前感到的頭痛就會得到解決。 從簡單開始,慢慢培養你的信心和興趣,你就會成功。
-
那是因為你寫得少,如果你每天寫1000行,你可能不會心疼。 在寫作的時候,你也應該明白自己為什麼會這樣寫,多看別人的演示,試著模仿自己,試著在模仿的過程中去理解。
-
建議參考清華大學、交通大學等一些大學教材。 最好買乙個基本的入門級的。 從小程式開始,在理解每個語句後繼續前進。 繼續努力,你一定會成功!
-
只要理解一些概念性的東西,先理解,然後程式設計。
-
S+=N 是 S=S+N 的簡寫形式。
開始時 s=0
開始迴圈,n = 1
所以 s=s+n= 0+1=1,然後 s=1,然後是 n++,然後是 n=2s=s+n=1+2=3,然後是 s=3,n++ 然後是 n=3s=s+n=3+3=6,依此類推。
上次 s=4950, n=100
所以s=s+n=4950+100=5050還是不明白這個,重新開啟書,仔細閱讀。
-
1.問題 1 被選中 b
第 1 步:將 A 分配給 8;
第 2 步:++ 運算子前面遞增 1,a 變為 9,然後分配給 c。
2.第二個問題是C
第 1 步:計算表示式 y-1 的值,即 4;
第 2 步:x*=4 是 x=x*4,所以 x=4*4=16。
-
讓我們逐句分析:
1. i++ 7,建立時迴圈。 這句話判斷 i<7 是否為真,只在判斷後執行 i++,因為自增量的優先順序低於比較轉運器的優先順序。
2. p[i] %2,如果 if 不是 0,當 2 的餘額不是 0 時,即 if 當奇數。
3. j += p[i],加法。
總體分析:該問題使用while迴圈遍歷陣列p,在完成每個迴圈條件的判斷後,進行自遞增,然後對當前元素進行2平衡,以確定是否累加。
因此,在第乙個迴圈中,i = 0,但是在執行 while 條件後 i 會增加自身,因此當 if 做出條件判斷時,i 已經是 1,因此缺少元素 0 (11),並且 2 的餘數取自元素 1 (12)。
這樣,真正加起來的數字是 13、15、17,最後 j 的值是 45。
以上
-
#include
void main()
i=0,j=0;
while(i++<7) *i 從 0 開始,但這裡的 i 比輸入後小 1,這裡可以看到字尾自動遞增操作的優先順序*
if(p[i]%2) *p[i] 是執行以下語句的奇數,其中 i 從開頭開始,所以加上 *
j+=p[i];*13、15、17 和 * printf("%d",j);*結果是 45*}
-
確定陣列 p 中除第乙個 int 之外的每個 int 的值,如果它是奇數,則將其新增到 j 中。
j=13+15+17
由於 if(p[i]%2) 之前已經有 i++,此時 i=1,所以不加前 11 個。
-
你使用 i++ 來判斷,所以第一次 p[i] 是 p[1],所以它是 13+15+17=45。
-
而(i++<7)首先確定迴圈體,此時i=i+1;也就是說,從 p[1] 開始。
if(p[i]%2)“ 確定有奇數 13、15、17
-
既然你是初學者,我想跟大家講一點基本知識,首先,scanf函式,是乙個輸入流函式,也就是從終端(即鍵盤)讀取資訊,你的陳述是輸入三個資料,首先,有乙個問題,就是如何使用鍵盤輸入三個資料, 我想讓你知道,當你輸入資料時,最好用乙個空格來分隔這三個資料,這些你會慢慢知道你為什麼要這樣做。
然後,就是 a=x; 這個陳述,我想說,兩個整數相除或整數,是向下捨入的,例如(你也可以自己程式設計嘗試),1 2 = 0 4 3 = 1。 沒有必要減法。
最後,還有三元運算子。 首先,a==20?21:
20;這個說法是三元運算子有乙個結果,即如果a==20,則結果為21,反之則為20; 所以你應該用 a 來儲存這個結果,因為你的意思應該是,如果上面表示式的結果是 20,那就是 21 世紀(什麼是 +1,我也理解你的想法),反之亦然是 20 世紀(這個想法其實是初學者的常見問題,那就是 思維就是這麼現實,其實程式和人們的想法和現實是有差距的,程式是僵化的,不能用人的邏輯來寫程式),你在想,人一般不是20世紀,也不是21世紀,這是可以理解的,但總有侷限性。事實上,在這種情況下,您不需要使用此語句。
我的回答是:
#include
main()
如果必須使用該三元表示式(有限制):
#include
main()
希望能幫你解決一些問題,都是這樣,當時有人幫了我,我也想幫別人。
-
您的程式有問題。
#include
main()
該過程可以更改為:
#include
main()
-
main()
本世紀就是這樣。
新增例如:2012 11 24
第乙個 awhile(leap) 條件是 leap 是否為 true(如果 leap 不是 0,則為 true,如果為 0,則為 false)。 >>>More
在 VisualStudio 2013 中編寫和除錯 C 語言程式的步驟: 1.開啟 [檔案] - 新建 - 專案以開啟“新建專案”視窗。2. 在[模板]、[名稱]、[位置]和[解決方案名稱]中選擇[Visual C++] Win32控制台應用程式,可以根據需要填寫。 >>>More
你能說清楚嗎,我不知道你的意思。 是否要在 main 函式中呼叫乙個函式,然後不知道如何定義被呼叫的函式? 如果是這樣的話,我可以告訴你。 >>>More