1樓:匿名使用者
你這個問題不對,要求輸出該字串中大寫字母a到z的子串長度,這個包括頭尾的a和z麼,如果包括,那長度應該是10,這時候應該是return r-q+1;也就是10。如果不包括頭尾的a和z,那這時候是return r-q-1;也就是8。
2樓:匿名使用者
這種邏輯你自己數一下也數出來了,你看你輸入的字串,a的相對是7,z的位置是16,中間shanghai的長度是8,你自己算一算,怎麼回事~~
要麼按他們說的,return r-q-1,要麼就在for(q=p;*q!='a';q++)
;這句後面再加乙個q++,相當於定位到a後面的那個字元,即shanghai的第乙個字元s,這麼算,才算正確的邏輯。
最後舉乙個簡單的例子,問5到10之間有幾個整數?顯然不包括5和10。 你用10-5算能對麼?
3樓:
前面的朋友都講得對。但從更直觀的角度講,要把第二個for()中的r=q改成r=q+1。因為跳出第乙個for時,q是指向a的,所以你計算出來的是a~i的字元個數,而不是a、z間shanghai的字元個數!
4樓:印雪輕塵
是求乙個字串中的大寫字母的個數?還是判斷從'a'開始到'z'截止的子串行中有多少個大寫字母?第一種情況沒什麼好說的。
第二種的話,for語句的迴圈條件有問題。必須是先找到乙個'a',所以就是用乙個flag判斷是否發現,發現之後進入迴圈體檢測個數,截至條件是遇到'z'。
5樓:匿名使用者
函式int length(char*p)中返回語句return r-q 改成 return r-q-1,因為要返回a到z的子串長度,既不包括a也不包括z
6樓:嚄糗
return r-p-1;
C語言找錯
四年一閏,百年不閏,四百年再閏。規定,公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的就是平年。詳見百科的說法 閏年 leap year 在公曆 格里曆 或夏曆中有閏日的年份,以及在中國舊曆農曆中有閏月的年份。地球繞太陽執行週期為365天5小時48分46秒 合365.24219天...
C語言指標問題,求詳解,求解一道C語言指標問題
文庫精選 內容來自使用者 zzbo2022 讓你不再害怕指標 前言 複雜型別說明 要了解指標,多多少少會出現一些比較複雜的型別,所以我先介紹一下如何完全理解一個複雜型別,要理解複雜型別其實很簡單,一個型別裡會出現很多運算子,他們也像普通的表示式一樣,有優先順序,其優先順序和運算優先順序一樣,所以我總...
請教C語言問題,求高手指教,請教乙個C語言問題,求高手指教
思路基本沒錯,也基本正確,個別地方出錯了。1 由於acm是先全部輸入再統一輸出,你用乙個max來儲存肯定有問題,可以需要事先宣告乙個陣列來儲存結果。下面 裡是用動態記憶體申請陣列。2 就是排序比較的時候,你有個問題,估計是手誤 if i t 實際上應該是if j t 因為i是外層迴圈,j才是你要排序...