c語言程式疑問,C語言程式疑問?

時間 2022-03-24 19:45:13

1樓:匿名使用者

#include

#include //

#include //

void reverse(char *p)}void user_itoa(int ndigital,char * pch)

*ptmp='\0';

reverse(pch);//

}void main()

system("pause");

}求採納為滿意回答。

2樓:匿名使用者

讀取掉緩衝區中的回車符,這樣你下次輸入的字元才能正確的被scanf接收

關於c語言編寫程式的乙個疑問 高手幫忙看看我的程式哪錯了

3樓:匿名使用者

看了你的**覺得,你在c語言的語法規則上還有待提高啊,在此舉出你所給出的**的若干錯誤。

首先,你的**不完整。第9、11、13行要定義三個100行的二維字元陣列,如果僅僅是類似char adj[100][12]=的定義;這樣adj[1]到adj[99]這99個詞都會是空值(ascii碼為0),若用printf()函式把這個範圍內的某個字元陣列列印,將會什麼都看不到。所以,你記得要把這總共300個詞補全。

其次,格式化輸出的格式有錯誤。若定義乙個字元陣列,char ch[20] = "hahaha";將它以字串的形式輸出,用printf("%s",ch);而在以上**中,%s全都寫成了s%。以後不要粗心了啊。

再次,也是以剛剛我舉的為例。20位的字元陣列ch[20]以字串形式輸出,用到的是printf("%s",ch);注意,這裡是ch而不是ch[20]。現在你知道問題出在**了吧。

若是將二維陣列adj[100][12]的第0行字元陣列以字串形式輸出,那應該是printf("%s", adj[0]);注意這裡是adj[0]而不是adj[0][12],如果你用adj[0][12],邏輯上來講,不是陣列訪問越界嘛。

最後,盡量不要在c語言**中夾雜中文,雖然我知道你是在做說明,那就正規點用//作注釋。不要再寫成char verb[100][8]=; 養成良好的**書寫習慣也是學習c語言很重要的一環。

特別提醒這四個問題,祝你程式設計方面有所提高。另外說明一聲,c語言是認漢字的,你老師說的沒錯。

以下附上正確**,在vc6中編譯執行通過了的。具體不知道你要什麼樣的300個單詞,這部分就自己補全吧。

#include

#include

#include

void main(void)

; //補全剩下99個單詞

char verb[100][8]=; //補全剩下99個單詞

char noun[100][12]=; //補全剩下99個單詞

char pron[12][12]=;

int a[17],i; //定義隨機結構變數陣列 a 和 迴圈結構控制變數 i

for (i=0;i<16;i++)

//給隨機數組中的前16個元素賦0-99的隨機值

a[16]=rand()%12; //給隨機數組中的最後乙個元素賦0-11的隨機值

printf("%s是%s\n%s,%s,%s\n%s在%s,%s%s在%s\n%s%s和%s%s在%s\n%s是%s",noun[a[0]],adj[a[1]],noun[a[2]],noun[a[3]],noun[a[4]],pron[a[16]],verb[a[5]],adj[a[6]],noun[a[7]],verb[a[8]],adj[a[9]],adj[a[10]],adj[a[11]],noun[a[12]],verb[a[13]],noun[a[14]],adj[15]); //輸出結果

} 同樓上回答。。。雖然在我的機器上沒啥問題。

4樓:我心飛揚

#include

#include

#include

void main(void)

;char verb[100]=;

char noun[100]=;

char pron[12]=;

int a[17],i; //定義隨機結構變數陣列 a 和 迴圈結構控制變數 i

for (i=0;i<16;i++)

//給隨機數組中的前16個元素賦0-99的隨機值a[16]=rand()%12; //給隨機數組中的最後乙個元素賦0-11的隨機值

printf("s%是s%\ns%,s%,s%\ns%在s%,s%s%在s%\ns%s%和s%s%在s%\ns%是s%",noun[a[0]],adj[a[1]],noun[a[2]],noun[a[3]],noun[a[4]],pron[a[16]],verb[a[5]],adj[a[6]],noun[a[7]],verb[a[8]],adj[a[9]],adj[a[10]],adj[a[11]],noun[a[12]],verb[a[13]],noun[a[14]],adj[15]); //輸出結果

}以上這些應該可以了,主要是你定義是多維陣列,賦值有問題!~

5樓:匿名使用者

c語言的變數定義必須在函式的最開頭。 你把 srand那句挪到所有的變數定義後面去就行了

c語言程式幫忙解釋一下小程式 疑問在加粗部分 詳細一些 從c基礎上解釋 幫幫

c語言疑問

6樓:風火輪

錯誤太多了...以我對程式的理解,你是想輸入兩個值,然後交換順序輸出吧,如果是,請往下看。

exchanger是乙個函式,如果是int型別,就要有乙個返回值,需要在函式末尾加入return (返回值,且為int型別);但是顯然這裡不需要,改為void即可。

函式宣告:exchanger完全可以在main函式之前定義好。針對放在後面的情況,就是在main函式前宣告一下,需要在末尾加乙個分號,就像這樣:

void exchanger(int test);然後才可以在main函式以後詳細定義。

再看exchanger本身。^是乙個運算子,按位異或,整數的交換不需要異或運算,要加乙個臨時變數。具體程式見後面。

再看main函式。第乙個printf,因為你需要在後面輸入test值,所以不需要輸出test,即便輸出也是顯示0,沒啥意義,所以把後面的引數去掉。然後int(*exchanger)(int test);沒看懂想幹嘛,難道不是直接呼叫exchanger就行了嗎?

像這樣:exchanger(test);就可以。

還有for迴圈,只有2個分號,第三個加的多餘。

具體程式:

#include

void exchanger(int test);

int main()

, i;

for (i = 0; i <= 1; i++)

exchanger(test);

return 0;

}void exchanger(int test)

7樓:鐵天偉合瑞

建議檢查一下函式flushall定義的引數數量和呼叫該函式的語句傳入該函式的引數數量是否匹配,引數的型別是否匹配(例如,某引數定義為單值,但穿額度的引數是陣列)。

看看是不是這個問題。我以前遇到的這個問題情況就是上面所述,僅供參考。

8樓:機能卓閑麗

c.b=a-(-

-a)首先執行--a,即a-1,a變為2

接著執行a-a,b=0

d.b=(a++)%3

首先執行a%3,b=0

接著執行a++,a=4

++和--

寫在變數前是先自加或自減再運算

寫在變數後是先運算再自加或自減

9樓:匿名使用者

我想你可能理解錯題意了跟本不是求1111的個,十,百位上的數字之和而是求for(i=1;i<=11;i++)s=s*11%1000;執行後三位數的數字之和,

執行後s = 611;最後m= 8;

s*11%1000這個是"%"是求餘數的也就是保證s是三位數

解釋c語言程式,解釋C語言程式

include 包含標頭檔案stdio.h void dec2hex int n,char str 函式dec2hex,沒有返回值,帶乙個整型引數和乙個字串陣列引數 while n 0 n大於0時繼續執行do.while str m 0 把字元 0 字串的結束字元 賦給str m for i 0,j...

C語言程式問題,程式如下,c語言程式,詳細問題如下

1原型 extern int strcmp const char s1,const char s2 所在標頭檔案 string.h 功能 比較字串s1和s2。一般形式 strcmp 字串1,字串2 說明 當s1s2時,返回正數 注意不是1 即 兩個字串自左向右逐個字元相比 按ascii值大小相比較 ...

c語言程式

12.前若是0則不執行後面的 輸出12 即輸出的時候k值為1,n值為2 理由是,while括號裡面的表示式,意義是邏輯與的短路表示式。k 為後增量 k 0時,進行了邏輯運算,k 0所以邏輯值為假,造成短路,即後面的n 2不會被執行,直接是while迴圈退出。此時k 後增量已經使k值變為1.這就是後面...

C語言程式執行過程,C語言源程式到執行程式經過哪幾個步驟

include 載入stdio.h函式包到程式中 void main 函式的開始標誌 int i,j 宣告整型變數i,j,並分配相應大小的記憶體空間 for i 1 i 4 i i 1 初始化i的值為1,進入迴圈,當該次迴圈結束,i i 1 相當於i自增 當然返回 i 4 判斷是否條件成立,成立,則...

求解c語言程式,求解乙個c語言程式

union型別變數的成員共用同一塊記憶體空間,空間大小是由占用記憶體空間最大的變數決定的,並且每個成員的首位址是一樣的 你可以列印每個成員的首位址試試 union 按照裡面最大的成員分配記憶體,現在這裡e裡面的最大成員是in,佔兩個int 後面的a 和b都只佔乙個int 直白的說 於是系統分配了兩個...