宣告:由于作者水平有限,本文難免有錯誤和不準確之處,本人也很想知道這些錯誤,懇望讀者批評指正,
【聯系方式】1583598623@qq.com
【更新記錄】2021年4月10日(第一次更新 )
【勘誤記錄】暫無
1.區域變數優先
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int a = 100;
int main()
{
int a = 10;
printf("a=%d\n", a);
return 0;
}

2.陣列結束標志是"\n",如下程式沒有給出具體\n位置,所以輸出是隨機值,
strlen是用來獲取字串的有效長度的,結尾標記’\0’不包含在內,strlen獲取的規則非常簡單:從前往后一次檢測,直到遇到’\0’是就終止檢測,而arr是一個字符陣列,不是一個有效的字串,因為后面沒有放置’\0’,因此strlen在求解時,將有效字符檢測完之后,還會繼續向后檢測,直到遇到’\0’是才終止,
int main()
{
char arr[] = { 'b','i','t' };
printf("%d\n", strlen(arr));
return 0;
}

3.一般寫代碼不建議把函式的名字全大寫,最多首字母
int Max(int x, int y)//一般寫代碼不建議把函式的名字全大寫
{
if (x > y)
return x;
else
return y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m=Max(a, b);
printf("%d\n", m);
return 0;
4.c語言中由";"隔開的就是一條陳述句,
5.switch陳述句當中,switch里邊可以接常變數,case不能接
int main()
{
int n = 1;
int m = 2;
switch (n)//沒問題
{
case 1:m++;
}
printf("m=%d\n", m);
return 0;
}

int main()
{
int n = 1;
int m = 2;
switch (1)
{
case n:m++;//編譯器報錯
}
printf("m=%d\n", m);
return 0;
}

6.沒有break的switch陳述句
int func(int a)
{
int b;
switch (a)
{
case 1: b = 30;
case 2: b = 20;
case 3: b = 16;
default: b = 0;
}
return b;
}
switch的每個case之后如果沒有加break陳述句,當前case執行結束后,會繼續執行緊跟case中的陳述句, func(1)可知,在呼叫func時形參a的值為1,switch(a)<==>switch(1),case 1被命中,因為該switch陳述句中所有分支下都沒有增加break陳述句,因此會從上往下順序執行,最后執行default中陳述句回傳,
7.輸入三個數,從大到小輸出(真的自己動手寫下,想著很簡單,有時候自己敲下發現各種錯誤)
void Max(int *x, int *y)
{
int a = 0;
a = *x;
*x = *y;
*y = a;
}
int main()
{
int x = 0;
int y= 0;
int z = 0;
scanf("%d%d%d", &x,& y,& z);
if (x < y)
Max(&x,&y);
if (x < z)
Max(&x, &z);
if (y < z)
Max(&y, &z);
printf("%d %d %d", x, y, z);
return 0;
}
8.寫代碼將三個整數數按從大到小輸出,
例如:
輸入:2 3 1
輸出:3 2 1
void Max(int *x, int *y)
{
int a = 0;
a = *x;
*x = *y;
*y = a;
}
int main()
{
int x = 0;
int y= 0;
int z = 0;
scanf("%d%d%d", &x,& y,& z);
if (x < y)
Max(&x,&y);
if (x < z)
Max(&x, &z);
if (y < z)
Max(&y, &z);
printf("%d %d %d", x, y, z);
return 0;
}
9.寫一個代碼列印1-100之間所有3的倍數的數字
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int x = 0;
for (x = 0; x <= 100; x++)
{
if (x % 3 == 0)
printf("%d\n", x);
}
return 0;
}
10.給定兩個數,求這兩個數的最大公約數
例如:
輸入:20 40
輸出:20
int Gys(int a, int b)
{
int i = a;
for (i = a; i > 0; i--)
if (a % i == 0 && b % i == 0)
return i;
}
int main()
{
int a, b, ret;
printf("請輸入倆個數");
scanf("%d%d", &a, &b);
if (a > b)
{
int ret=Gys(b, a);
printf("最大公約數是%d\n", ret);
}
if (a < b)
{
int ret=Gys(a, b);
printf("最大公約數是%d\n", ret);
}
return 0;
}
11.列印1000年到2000年之間的閏年
int main()
{
int a = 1000;
for (a = 1000; a <= 2000; a++)
{
if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0);
printf("1000至2000之間的閏年有%d年\n", a);
}
return 0;
}
%d\n", ret);
}
return 0;
}
### 11.列印1000年到2000年之間的閏年
```c
int main()
{
int a = 1000;
for (a = 1000; a <= 2000; a++)
{
if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0);
printf("1000至2000之間的閏年有%d年\n", a);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/274781.html
標籤:其他
上一篇:雙向回圈鏈表講解及實作
下一篇:資料結構-順序表
