#include
int main()
; int leap_month[12] = ;
int year, day, i;
int leap_flag;
int r_flag = 1;
while (r_flag == 1)
else
if (day>365 && leap_flag == 0 || day>366 && leap_flag == 1)
else
}if (leap_flag == 1)
printf("years=%d,month=%d,day=%d", year, i + 1, day);
}else
printf("years=%d,month=%d,day=%d", year, i + 1, day);
}return
0;}
第二題
取十個1-100的隨機整數,並倒序列印出來(用指標,不要用陣列下標)
#include
#include
#include
#define n 10
void func(int
*num)
int main()
; int
*p = num;
func(num);
for (p = num + n - 1; p >= num; --p)
printf("%d ", *p);
// 把p的下標移動到陣列的最後一位,然後從後往前迴圈遍歷,
// 如果當前下標的位址大於陣列的首位址,那就每次往前移動乙個int,同時列印出來
printf("\n");
return
0;}
通過隨機函式獲取到26個小寫英文本母,儲存到陣列裡並小寫字母順序列印出來。
這題對我而言還是比較難的,直接參考原文吧-_-||
#include
#include
#include
#define len 26
void func(char *s)//用這個函式直接實現按順序把字母放進去,就不用在後面再排序!!!
}}int main()
; func(a);
for (int i = 0; i < len; ++i)
printf("%c\n", *(a + i));
printf("\n");
return
0;}
將字串「we are family!」,去除空格後列印出來。(wearefamily!)
先按照我自己的思路寫一下試試吧ヾ(◍°∇°◍)ノ゙
#include
char *func(char *str)
}*(str + j) = '\0';
return
str;
}int main()
輸入乙個字串,判斷其是否是回文。(回文:即正讀和反讀都一樣,如abcba, abccba)
兩種方法:1。
#include
#include
#define n 50 //50個足夠了
int func(char *p, int len) // 獲取字串的首位址,和字串長度
int main(void)
; // 建立乙個長度為50的字串
scanf("%s", str); // scanf()接收使用者輸入的字串
if(func(str, strlen(str))) // 這裡做了三步:1.獲取字串長度,並且和字串首位址一起傳給被呼叫函式的形參
// 2. 呼叫了func()函式,同時接收函式的返回值
// 3. 接收函式的返回值,決定了分支語句的執行
printf("yes! %s is huiwen! \n", str);
else
printf("sorry! %s is not huiwen! \n", str);
return
0;}
方法2
int func(char *p, int len) // 獲取字串的首位址,和字串長度
int main(int argc, char *argv)
輸入一段字串,無論是否有重複字母出現,都只列印出現過的小寫字母,並按照小寫字母順序列印。(如輸入qewqwr322rqw<>211qesfsserazz, 列印aeqrwz)感覺和第三題差不多,只是判斷條件有點區別
#include
#include
#define n 500
int main()
; // 儲存使用者輸入的字串
char str2[n] = ; // 儲存要列印的字串
scanf("%s", str1); // 接收使用者輸入
int index = 0;
for (int i = 0; *(str1 + i) != '\0'; ++i) // 遍歷str1字串,直到字串結尾'\0'
for (int i = 97; i < 26 + 97; ++i) // 下標從97開始,迴圈遍歷str2
if( *(str2 + i) == '+') // 如果遍歷到的下標有 + 號標記,之前判斷這裡是有出現過字母,
printf("%c ", i); // 那麼就列印這個下標對應的字母ascii碼,也就是列印字母了。
printf("\n");
return
0;}
輸入某個月的第n周和這一周的第m天,通過int *getday() 函式獲取引數並返回結果,來得出這一天是這個月的第多少天。
(如輸入:3,4,即這個月的第3周的第4天,即這個月的第18天)
#include
int *getday(int n, int m)
, ,,,
};return &calc[n-1][m-1];
// 返回陣列下標的位址,陣列下標是從0開始的,所以要減 1
}//如果函式返回區域性變數的值,程式是不會出錯的
//如果函式返回區域性變數的位址,雖然你把位址返回了,但是位址裡的值已經被銷毀了
// 如果其他程式用了這塊記憶體,那麼程式執行結果將不可預估
// 作用域: 表示某個變數的作用範圍,一般在某個**塊了,用 {} 分隔
// 生命週期: 決定這個變數什麼時候被銷毀,靜態變數的生命週期是整個源程式
int main(int wk, int dy, char y)
printf("the days is %d\n", *getday(wk, dy));
printf("if you want again, inpyt 'y' (other for quit): \n");
scanf("%c", &y)
}while(y == 'y')
printf("\n \n");
}
這個思路好棒,看來還需要加油啊! C語言學習筆記02 指標
指標也是一種變數,占有記憶體空間,用來儲存記憶體位址。在指標宣告時,號代表所宣告的變數為指標。在指標使用時,號表示操作指標所指向的記憶體空間的值。p相當於通過位址 p變數的值 找到一塊記憶體,然後操作記憶體。p放在等號的左邊賦值 給記憶體賦值 p放在等號的右邊取值 從記憶體獲取值 指標變數和它所指向...
C語言學習筆記(四) 指標
c語言學習筆記 四 指標 include intmain p就是乙個指標,p就是取出p指向位址的值 陣列 相同型別的資料集合 include intmain 在這個程式中,p是乙個指標,a是乙個陣列,若p a 0 或者p a就是p指向陣列的第乙個元素,接下來就可以對p進行 1或 1進行偏移操作 in...
C語言學習(三) 指標
指標的定義int p char p float p指標變數所佔記憶體的大小 跟前面定義的型別無關 而跟系統有關 16bits作業系統 2b 32bits作業系統 4b 64bits作業系統 8b 指標指向乙個值所在的第乙個位元組 通常乙個位址存放乙個位元組 const修飾指標 指標指向乙個字串時 如...