定義迴圈變數i,兩個陣列a[4],b[4]
for i=0 to 3
a[i]*p取各個位
*p/=10
endfor i=0 to 3
b[i]*q取各個位
*q/=10
end分別對*p和*q重新賦值
本題沒有多大問題,就是想再找一種更簡單的做法。
if形參n不再月份範圍內
return null
定義指標陣列*a並賦值十二個月份
剛開始我用的switch語句來判斷月份,後來在舍友提醒下改成了陣列來存放英文並直接返回。
解決辦法:加入if判斷若不在範圍內,就返回null
定義*a存放ptr,迴圈變數i,計數變數count
while(*ptr)
if *ptr 是字母
將*ptr存放到*(a+i)中 i++
else count++ 記錄非字母
ptr++繼續迴圈
end*(a+i)賦值結束符
return count非字母個數
這道題前面一直在對p直接判斷,導致提交執行超時,後來利用另乙個指標來存放符合題意的字元並返回,就不會執行超時。
char * strcpy(char * dest, const char * src) // 實現src到dest的複製
char *strdest = dest; //儲存目標字串的首位址
while ((*strdest++ = *strsrc++)!='\0'); //把src字串的內容複製到dest下
return strdest;
}
void *memcpy(void *memto, const void *memfrom, size_t size)
1、複製的內容不同。strcpy只能複製字串,而memcpy可以複製任意內容,例如字元陣列、整型、結構體、類等。
2、複製的方法不同。strcpy不需要指定長度,它遇到被複製字元的串結束符"\0"才結束,所以容易溢位。memcpy則是根據其第3個引數決定複製的長度。
#include "assert.h"
char *strcpy(char *strdest, const char *strsrc) //使用const來約束strsrc,提高程式的健壯性。如果函式體內的語句試圖改動strsrc的內容,編譯器將指出錯誤。
&(變數名)=>獲取變數的位址
*(變數名)=>將變數當作位址,到相應的位址取值
int *p,i;
p=&i;
p=0;
p=null;
p=(int *) 1732;(表示p指向位址為1732的int型變數)
陣列名就是乙個位址,指向這個資料的開端
*p==a[0]
*(p+n)==a[n]
*p+=1,(*p)++,++*p將指標p所指向的變數值加1
*p++,*(p++)先取*p的值作為表示式的值,在將指標p的值加1
void bubble (int a,int n)
}
void choose (int a,int n)
}
int bsearch(int *p, int n, int x) \\ 二分查詢函式
if(low <= high)
return mid; \\ 找到返回下標
else
return -1; \\找不到返回-1
這道題尤其要注意最後乙個空n=n-1,平時很容易忽略掉
C語言第九次部落格作業 指標
函式傳入位址,給形參s 定義flag,i為迴圈變數,k為字串數。k strlen s 1。for i 0 to i k 如果s i s k 則flag 1。i k end如果flag 0 則返回true 其他 則返回false 定義環境變數i,j 0,count 0,length,陣列circle ...
C語言第九次作業
問題 答案這個作業屬於那個課程 c語言程式設計1 這個作業要求在 我在這個課程的目的是 學習並掌握c語言 這個作業在那個具體方面幫助我實現目標 幫助我更好的理解conmunit語句,並熟練的打 參考文獻 c語言程式設計 資料表達 x,count 0 k,i,j都是整形變數。資料處理 for int ...
第九次作業
1 osi七層模型,描述每層的功能 應用層 為應用程式提供網路服務 表示層 資料格式標準化,加密,解密 會話層 建立 維護 管理會話鏈結 傳輸層 建立 維護 管理端到端間的鏈結 網路層 ip尋找和路由選擇 資料鏈路層 管理網路層和物理層之間的通訊 物理層 使用位元流傳輸 2 交換機只學源mac的位址...