C語言關於C語言上機題目的問題

2021-07-01 01:14:19 字數 791 閱讀 3922

1樓:匿名使用者

將fun函式改為

void fun(char *tt, int pp)if(tt[i]=='\0')

break;}}

或者是void fun(char *tt, int pp)}因為給定字串和由aa輸入的字串是不同的:

1.輸入字串因為定義了char aa[1000];,編譯器編譯時會將aa中的每個元素置0,所以aa中在你輸入的資料後全是'\0';

2."a bosom friend afar brings a distant land near"是存在記憶體中的,在near後的'\0'後會有其他的資料存在,並不全是'\0',也可能會有a~z內的字元資料,所以產生錯誤結果。

在fun中 檢測到'\0'後 即字串結束後應結束迴圈。

2樓:

你好,我想告訴你,你的func演算法從根本上就是有問題的。首先,你在main函式裡定義了1000個大小的char陣列,而實際上你並沒有給這1000個char賦值,而在你的func裡,你用for迴圈對這1000個char的記憶體進行了訪問,這種操作是不安全的。而後面.

"a bosom friend afar brings a distant land near"是常量但是後面的954個char的記憶體裡存放的值大多數都是混亂的,所以得不到的你想要的結果。正確的做法是對字串進行操作。**如下:

# include

# include

# include //為呼叫strlen()匯入庫void fun(char *tt, int pp)}main()

C語言問題C語言問題,C語言問題C語言問題

include include int main b k p b k 0 puts b return 0 c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock print...

C語言問題,C語言問題C語言問題

這題考的是自動型別轉換,由編譯系統自動完成,轉換是 向上 靠的 舉個例子 include stdio.h void main 你編譯一下就會有警告 conversion from double to float possible loss of data 也就是說系統預設轉化了a,b的資料型別為do...

c語言問題,C語言問題

1 c2 a 3 d4 a 5 d6 b 7 a8 a9 d c語言問題 include define n 30 typedef struct student student r n int main void num 1 for i 0 ir max score max j if max i if...