1樓:匿名使用者
你的來return四遍完全就是沒有任何用的,你源已經定義了全域性變數了,不用return。問題在於你雖然敲擊了回車,但那並不會被輸入。所以你while迴圈可能會一直迴圈下去,直到碰巧碰到一個字元等於'\n'
#include
int l,n,b,o;
int count(char a)
}int main()
;printf("請輸入一句話:");
scanf("%s",str);
count(str);
printf("字母:%d\n數字:%d\n空格:%d\n其他字元:%d\n",l,n,b,o);
return 0;}
2樓:匿名使用者
#include
int l,n,b,o;
int count(char a)
return 0;
//return n; //多次return無意義。返回0即可。或設函式為void,無返回值。
//returnl;
//return b;
//returno;
}int main()
望取納。
3樓:暮影
hi,man,您不bai知道return的作用du麼?1.返回一個指定的zhi值(注意dao:
just one)2,結束程式;你輸出專的個數應該在函式屬裡面輸出,不然只能返回一個值,3個之中的一個值,要是你用3個函式就可以返回3個值了,但是工作量很大
4樓:yuanyuan源遠
。。。while(*m!='\n')//改為:while(*m!='\0')。。。
求教c語言大神!!!最好講一下理由,萬分感謝
5樓:匿名使用者
結果是cbade
原因如下:
首先,主函式只進行了一個fun操作,其他的就是定義和輸出,所以字串(或者說字元陣列)的調整完全由fun決定
fun中首先定義了x和y,因為s的長度是5,所以y = (strlen(s) - 1) / 2=(5-1)/2=2
因此:迴圈開始時,初始值是x=0,y=2,s="abcde",進入迴圈
第一次:0<2成立,可以進行,操作時交換了s[0]和s[2]的值,字串變成了"cbade",結束時執行x++和y--,執行後x=1,y=1
第二次:1<1不成立,迴圈直接結束
所以函式返回的字串為cbade
字元陣列傳遞的就是地址,所以不管變數的名字如何,操作的都是那一串
6樓:匿名使用者
輸出結果:cbade
由於字元陣列 a= "abcde"; 其中包括了abcde 5個字元外,還有一個結束符 '\0',
所以 strlen(s) = 6,
y=(strlen(s)-1)/2; 屬於整數除法運算,y=(6-1)/ 2=5/2=2
所以 for 迴圈了2次
第一次把 a[2]='c' 和 a[0]='a' 進行了交換
第二次條件不滿足,未改變陣列
其他位置字元未變,最後輸出結果就是cbade
7樓:匿名使用者
函式 fun 裡
x 指向 a
y 指向 c
然後 交換
迴圈一次 就結束了,因為 此時 x=y,退出迴圈最後結果 就是
cbade
求大神解答第二三題,!!!!急求,急求!!!解答出來萬分感謝!!c語言
8樓:厚脂肪肥大
第二題#include
int main(void)}}
}}第三題#include
int sqrt(int,int);
int main(void)
int sqrt(int x,int n)return k;}
求教!一道C語言題目,求教一道C語言的題目!
你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...
C語言的一道題目,求解釋,一道C語言題目求解釋!
輸出的是字串長度,應該是7 fun函式的形參看似是字元陣列char s,實際是char s,c語言裡陣列名的本質版是指標,所以函式裡 權可以宣告char p s 這是p和s其實都指向記憶體裡的同一個地址 然後while迴圈的作用是讓p指向這個字元陣列的最後一個字元 由於字串都是已尾零結尾的 即最後一...
有一道c語言的題目已知,有一道C語言的題目 已知 char a int b float c double d 則計算表示式a c c d之後,記過的資料型別是
選d,因為double所表示的數的範圍最大。該題選擇d答案 1 a定義的是char型,實際上他也可以看做是int型,你試過沒有將一個char型的變數用 d的格式輸出後,為一個整數,該整數是該字元的ascii碼,是十進位制而已。所以a c之後的型別為float型 2 a c c自然也就是float型了...