定義乙個長度為1000的字元陣列str[1000]
在定義 i=0,cnt=0;cnt用來記錄單詞的個數
while str[i]='\n'既輸入回車時結束字元的輸入
str[i]=0;設定結束的標誌
for i=0 to str[i]='\0'
if str[i]!=' '&&str[i+1]==' ';如果這個字元不為空格,並且下乙個字元為空格。
cnt++;讓cnt+1;
if str[i]!=' '&&str[i+1]=='\0'如果此字元為最後乙個字元且不為空格結尾。
cnt++;
輸出 cnt 的值表示單詞個數。
一開始**是這樣的,一開始沒有考慮到結尾是空格的情況,以為cnt 只會記錄到
倒數第一,然後讓最後輸出時cnt 在加上1即可。結果是錯的。
發現這個問題後我多加了乙個if 語句就解決末尾為空格的問題,和全部為空格的問題。
可是仍然出現了段錯誤和執行超時的問題。
後來我增加了陣列的長度就解決了。
首先定義變數 n z=0 sum =0 sum計算前17位的加權求和,z是sum %11 後的數
定義字元陣列 m [12] =;和陣列a [17] =;
a陣列用來表示權數。
輸入n的值, 表示判斷的身份證的個數。
定義 flag=2 用來判斷身份證號的準確性
定義乙個長度為18的字元陣列 line[18]
while (n) 即當n等於0的時候結束迴圈
getchar () 來存放之前輸入完n之後的回車。
for i=0 to i=17
輸入line [i]的值
for i=0 to i=17
if line[i] 不為數字,
則,flag=0;
if (flag) 當flag 不為0 的時候
sum=sum+(a[i]*(line[i]-'0')); 計算加權求和的總數sum
z=sum%11,
if (line[17]!=m[z]), 說明校驗碼不正確
flag=0;
if (flag==0) 輸出line 並讓 flag=1
在重新定義初值 sum=0;z=0; 判斷下乙個身份證號
n--
在while 的迴圈外判斷
if (flag==2) 說明以上身份證都正確 ,
則輸出all passed
我剛開始的時候沒有定義flag=2 直接讓 flag=1來判斷,可是在每次
判斷完乙個身份證後重新賦值時 會對是否輸出all passed產生影響
所以就 先讓flag=2 每次重新賦值時讓flag=1 ;就能夠解決了。
本題原先是出錯在,比知道兩個字元表示乙個漢字,
以為的是乙個字元表示乙個數字,結果輸出的答案不對
鄭佳亮我的** :
鄭佳亮的**:
我的**雖然更長兩行,但是我覺得我的想法會更好,我只用兩個判斷,就能夠滿足他四個判斷的效果,所以我覺得我的**會更好一些哦
在明確定義指標指向確切的某個位址時 ,指標相加才有意義
答:若是不賦初值給指標,指標會隨機指向乙個位址,這樣對程式會有危害,導致系統崩潰,停止執行。
void slipfloat(float x,int *intpart,float *fracpart)這句是指標變數作為形參,在主調函式中,將該變數的位址或者該變數的指標作實參,在被調函式中,用指標型別形參
接受該變數的位址,並改變形參所指向變數的值。
p= a;
或者 p= &a[0]; 表示陣列元素:p=a+1 或者 p=&a[1].
char *p
char line[80]
p = line; 其初始位置在基位址處
#includevoid link(char *p1,char *p2);
int main ()
,str[80];
char *p1=line,*p2=str;
int i=0;
while ((line[i]=getchar ())!='\n')
line[i]=0;
//getchar ();
i=0;
while ((str[i]=getchar ())!='\n')
str[i]='\0';
link(p1,p2);
puts(line);
return 0;
}void link(char *p1,char *p2)
if(i>=index)
}}
說實話,我也不知道好處是什麼,比較靈活吧
對於指標的運用還是不太熟悉,尤其是指標陣列的運用。
6-2 jmu-c-二維陣列轉置並按列排序
7-2 jmu-c-十進位制轉16進製制
7-3 jmu-c-輸出字元間的字元子串
7-4 陣列元素的刪除(15 分)
以上的題目錯了
6-2 jmu-c-二維陣列轉置並按列排序,這題在裝置的地方對於j 的範圍沒定義好,結果有重新裝置回去了
for(j=0;j我就在下面轉換前加了乙個條件,即可
7-2 jmu-c-十進位制轉16進製制 這題還是不懂怎麼做,還沒想出來,不過我到時有乙個取巧的辦法,用%x輸出
7-3 jmu-c-輸出字元間的字元子串 忘記了當時那裡卡住了,反正現在是做出來了
C字元陣列
c語言 的運算子無法操作字串。在c語言中把字串當作陣列來處理,因此,對字串的限制方式和對陣列的一樣,特別是,它們都不能用c語言的運算子進行複製和比較操作。1 字元陣列的賦值只能對其元素一一賦值。2 一定要理解賦值與初始化的區別 3 系統對字串常量也自動加乙個 0 作為結束符,有了結束標誌 0 後,字...
C 字元陣列
array 直接初始化 char 陣列是特殊的,這種初始化要記得字元是以乙個 null 結尾的。include using namespace std intmain int len sizeof a1 sizeof a1 0 printf 陣列a1長度為 d n len char a2 liuke...
C語言 陣列(字元陣列)
軟體中,文字處理比數字處理更重要,而處理文字時需要用到字串,所以掌握字串的知識很重要。字串一定有 0 結尾,只有以 0 結尾的字元陣列才能稱為字串。0 是字串的標誌,也是字串結束的標誌。一 字串的定義 char arr 10 char brr 5 不是字串,沒有 0 char crr 5 最後乙個元...