C-隨筆1

愛笑的三途川發表於2021-01-01

**

1:建立工程**

#include<stdio.h>
int main()//之前寫的一直都是viod 無返回值
{
return 0;
}

輸入運算
scanf(),把scanf、scanf改為scanf_s或者在頭部新增

#define _CRT_SECURE_NO_WARNINGS;

避免報錯;

2.C更改初始格式

增加基礎檔案main函式等
修改路徑:VS\Common7\IDE\VC\vcprojectitems

3.常量

字面常量:3|3.14 等等 直接書寫數值的叫
常屬性:const
識別符號常量:#define max 10
列舉常量:列舉-一一列舉 enum

enum

{

	man,

    wanman



};
enum Sex s=man;

4.字串

字串的預設結束隱藏字元為\0

char arr[] ="abc"
"abc"--'a','b','c','\0'

5.轉義字元

\ printf(""")

6.指標

int a = 10;

int* pc=&a;//取地址 int* pc定義指標變數

*pc = 20;//*解引用操作符

printf("%p\n", pc);//列印地址

指標變數 在32位作業系統上 是4個byte(位元組)2的32次方
在64位作業系統上是8個byte 2的64次方

7.巨集的定義

使用#define 定義常量和巨集

#define max 100
#define max(x,y)(x>y?x:y)

8.結構體

//結構體 struct關鍵字定義

struct book
{
	char name[20];
	short price;
		 
};
int main()
{
	struct book b1 = { "C語言",20 };
	struct book *bk = &b1;// bk存放b1的地址
	printf("%p\n", bk);
	printf("%s\n", (*bk).name);// 結構體.成員名
	printf("%d\n", bk->price); //結構體指標->成員
	printf("書名:%s\n", b1.name);
	printf("價格:%d\n", b1.price);
	return 0;
}

輸入一個值 scanf()

9.while

int ch = 0;
 //getchar() 獲取輸入的字元

while ((ch=getchar())!=EOF)//EOF -1
{
//輸出輸入的字元
	putchar(ch);
}

10.for

//求1-10的階乘

int i = 0;
	int ret = 1;
	int sum = 0;
	for ( i = 1; i <=10; i++)
	{
		ret = ret * i; //1*1
		sum += ret; //0+1
	}

11.二分法查詢

//二分查詢
int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; 
	int k = 7;
	int sz = sizeof(arr) / sizeof(arr[0]);//10
	int left = 0;
	int right = sz - 1;//9
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else if(arr[mid]<k)
		{
			left = mid + 1;
		}
		else
		{
			printf("找到了,下標為%d\n", mid);
			break;
		}
	}
	if (left > right)
	{
		printf("找不到\n");
	}

12.判斷100-200之間的素數 //能被自身和1整除的

int i = 0;
	for ( i = 100; i < 200; i++)
	{
		int j = 0;
		for ( j = 2; j < i; j++)
		{
			if (i%j==0)
			{
				break;
			}
		}
		if (j == i)
		{
			printf("%d\n", i);
		}
	}

13.C 庫函式 - rand()

C 標準庫 - <stdlib.h>
描述
C 庫函式 int rand(void) 返回一個範圍在 0 到 RAND_MAX 之間的偽隨機數。
RAND_MAX 是一個常量,它的預設值在不同的實現中會有所不同,但是值至少是 32767。

列印1-100之間的隨機數列印5int i, n;
	time_t t;
	n = 5;
	/* 初始化隨機數發生器 */
	srand((unsigned)time(&t));

	/* 輸出 0 到 50 之間的 5 個隨機數 */
	for (i = 0; i < n; i++) {
		printf("%d\n", rand()%100);