真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

指針-回調(diào)函數(shù)-創(chuàng)新互聯(lián)

? 今天學(xué)習了c語言的指針,不得不說c語言的指針真的是一塊難啃的骨頭啊,指針就一直在zu繞回來,繞回去,反復(fù)的套娃,而且今天的代碼,是我寫的最像代碼的代碼,雖然不是我寫的,但是是我照著視頻的思路一個字母一個敲出來的,雖然并沒有完全記住,想要一次性記住似乎是不可能的只有不斷的練習才可以逐漸的掌握,才可以寫出更加有意義的代碼,今天是我學(xué)習C語言的第14天,14天了,時間過得很快,我現(xiàn)在基本上每天都是在學(xué)習,c語言至少學(xué)習3小時,然后還會學(xué)習一些算法,并且還會看一些數(shù)學(xué)的知識,每日看一下高樓,以及這學(xué)期的高樓,睡前看一些哲學(xué)的視頻,給我精神食糧。好像程序的生活沒有我之前認為的那么枯燥無味,現(xiàn)在的我反而認為程序是一種美妙的存在,盡管很多的程序依舊是看不懂,盡管leetcode的算法題目一個都看不懂,但是懷揣著最初的信念,不拋棄不放棄,我還是相信能學(xué)好這一行的,未來就業(yè)應(yīng)該是可以找的到工作的。好的下面進入今天的正題-----指針,代碼內(nèi)容不完全對,有一些錯誤,歡迎指出,非常愿意接受。

創(chuàng)新互聯(lián)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計,高端網(wǎng)站設(shè)計,廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破超過千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.

目錄

1.簡單函數(shù)

2.冒泡排序

3.冒泡排序升級版


1.簡單函數(shù)

先通過一個簡單函數(shù)來引出

#define _CRT_SECURE_NO_WARNINGS 1
#include#include//實現(xiàn)一個計算器可以計算加減乘除
void menu()
{ 
	printf("*******************************\n");
	printf("*******1.Sum    2.Sub    ******\n");
	printf("*******3.Mul    4.Div    ******\n");
	printf("***********0.exit**************\n");
}
int Add(int x ,int y)
{
	return x  + y;
}
int Sub(int x,int y)
{
	return x - y;
}
int Mul(int x, int y)
{
	return x*y;
}
int Div(int x, int y)
{
	return x / y;
}
int main()
{
	int x = 0;
	int y = 0;
	int input=0;
	do
	{
		menu();
		printf("請輸入:>");
		scanf("%d ",  &input);
		switch (input)
		{
		case 1:
			printf("請輸入兩個操作數(shù):>");
			scanf("%d %d", &x, &y);
			printf("%d\n", Add(x, y));
			break;
		case 2:
			printf("請輸入兩個操作數(shù):>");
			scanf("%d %d", &x, &y);
			printf("%d\n", Sub(x, y));
			break;
		case 3:
			printf("請輸入兩個操作數(shù):>");
			scanf("%d %d", &x, &y);
			printf("%d\n", Mul(x, y));
			break;
		case 4:
			printf("請輸入兩個操作數(shù):>");
			scanf("%d %d", &x, &y);
			printf("%d\n", Div(x, y));
			break;
		case 0:
			printf("退出");
			break;
		default:
			printf("選擇錯誤");
			break;
		}
	} while (input);
}

這個代碼實現(xiàn)的是計算機的一個功能,首先是一個menu函數(shù),這個是自己定義的,設(shè)計一個菜單,1是加法2是減法3是乘法4是除法0是退出。然后自己定義了四個函數(shù),分別來定義加減乘除,再用一個do while函數(shù)來循環(huán),要有一個input變量來控制循環(huán),循環(huán)內(nèi)部是一個switch函數(shù)有6個分支,可以返回上面的函數(shù)。

2.冒泡排序

接下來是一個冒泡排序

#include#includevoid bubble_Solt(int arr[],int sz)
{
	int i = 0;
	for (i = 0; iarr[j + 1])
			{
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
}
int main()
{
	int i = 0;
	int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
	int sz = sizeof(arr) / sizeof(arr[0]); 
    bubble_Solt(arr, sz);
}

這個代碼是先創(chuàng)建個數(shù)組存放數(shù)字,然后再使用sizeof函數(shù)計算數(shù)組一共有多少個元素,并給他們一個下標,把他們放到sz變量上面,最后也是函數(shù)的主體部分,在for循環(huán)里面還有一個for循環(huán)用來控制交換的如果左邊的那個數(shù)比右邊的那個數(shù)大那么就交換一次。這個冒泡排序在前面的文章也介紹過了這里就不作詳細解說了。

3.冒泡排序升級版

在冒泡排序的基礎(chǔ)上,我們從只可以對數(shù)進行排序擴展到對字符進行排序,擴展到對小數(shù)進行排序,但是整型數(shù)組只能存放整型,字符數(shù)組只能存放字符,浮點型數(shù)組只能存放浮點型,那么怎么把他們都使用冒泡排序進行傳參調(diào)用呢,

這里就需要回調(diào)函數(shù)和qsort這個函數(shù),這個是我目前學(xué)過最復(fù)雜的代碼,由于今天晚上剛剛學(xué)完,所以我也并沒有完全搞懂,還需要在以后的學(xué)習中才能逐漸搞懂,下面代碼也會有幾個錯誤,歡迎指正

#include#include#includestruct Stu
{
	char name[20];
	int age;
};
//實現(xiàn)bubble_soft函數(shù)的程序員,他是否知道未來排序的數(shù)據(jù)類型-不知道
//那程序員也不知道帶比較的兩個元素類型
//
void Swap(char* buf1,char* buf2,int width)
{
	int i = 0;
	for (i = 0; i< width; i++)
	{
		char tmp = *buf1;
		*buf1 = *buf2;
		*buf2 = tmp;
		buf1++;
		buf2++;
	}
}
void bubble_soft(void* base, int sz, int width,int (*cmp)(void*e1,void*e2))
{
	int i = 0;
	//趟數(shù)
	for (i = 0; i< sz; i++)
	{
		int j = 0;
		//每一趟比較對數(shù)
		for (j = 0; j< sz - 1 - i; j++)
		{
			//兩個元素的比較
			if (cmp((char*)base+j*width,(char*)base+(j+1)*width)>0)
			{
				//交換
				Swap((char*)base + j*width, (char*)base + (j + 1)*width,width);
			}
		}
	}
}
int cmp_int(const void *e1,const void * e2)
{
	return *(int*)e1 - *(int*)e2;
}
int cmp_stu_by_age(const void* e1, void* e2)
{
	return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
}
int cmp_stu_by_name(const void* e1, void *e2)
{

	return strcmp (((struct Stu*)e1)->name,((struct Stu*)e2)->name);
}
void test4()
{
	int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	//使用bubble_soft的程序員一定知道自己排序的是什么數(shù)據(jù)
	//就應(yīng)該知道如何比較帶排序數(shù)組中的元素
	bubble_soft(arr,sizeof(arr[0]),cmp_int);
}
void test5()
{
	struct Stu s[3] = { {"zhangsan",19}, {"lisi",12}, {"wangwu",14} };
	int sz = sizeof(s) / sizeof(s[0]); 
	bubble_soft(s,sz,sizeof(s[0]),cmp_stu_by_age);
	bubble_soft(s, sz, sizeof(s[0]), cmp_stu_by_name);
}
int main()
{
	test4();
	test5();
	system("pause");
	return 0;
}

總結(jié):只有不斷的努力才能成功,做自己喜歡的事,讓別人說去吧。自由?。?!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前名稱:指針-回調(diào)函數(shù)-創(chuàng)新互聯(lián)
文章來源:http://weahome.cn/article/djdoco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部