1樓:匿名使用者
看了你的**覺得,你在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)
//給隨機陣列中的前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]); //輸出結果
} 同樓上回答。。。雖然在我的機器上沒啥問題。
c語言問題程式設計,C語言程式設計問題
程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...
c語言程式設計問題,C語言程式設計問題
你演算法都寫出來了,還要我們幫你寫什麼,演算法能寫,相信你能搞定的 c語言程式設計問題 b 當i 0時。呼叫 if語句 a 6t a 就是t等於t a然後a自曾,得t 6 return t a 這是a已經自曾為7 得返回13 呼叫當i 1時if語句的else句 a 7t a 就是t等於t a然後a自...
C語言程式設計問題,C語言程式設計問題。
include int main int i,j char s 9 printf 你的姓名?scanf s s for i 0 i 8 i for j 0 j i j printf s s printf n return 0 include include int main return 0 c語言...