用指向指針的指針的方法對n個整數排序並輸出 要求將排序單獨寫成一個函數。n個整數在主函數中輸入,最后在主函數中輸出


用指向指針的指針的方法對n個整數排序並輸出。要求將排序單獨寫成一個函數。n個整數在主函數中輸入,最后在主函數中輸出。

點我看視頻講解+可運行代碼,記得收藏視頻,一鍵三連
解題思路: 指向指針的指針其實就是二級指針,使用二級指針的保存一級指針的地址,讓這個一級指針指向具體的數據空間。排序就是按照每個元素指針指向空間中的數據進行比對排序即可。

答案:

#include<stdio.h>
#include<string.h>
void sort(int *s[], int len)
{
	int i, j;
	for (i = 0; i < len; i++) {
		for (j = i; j < len; j++) {
            //s[i]就是s指針數組中第i個元素保存的一級指針,再次解引用就是最終的數據空間
			if (*(s[i]) > *(s[j])) {
				int tmp = *(s[i]); //指針的好處在於直接通過賦值可以改變指向
				*(s[i]) = *(s[j]);  //只要交換了字符串的地址就實現了字符串的交換
				*(s[j]) = tmp;//因此通過指針指向的交換就能夠實現數組中字符串的排序
			}
		}
	}
}
int main()
{
	int *integers;
	int count = 0;
	printf("Please enter the number of count: ");
	scanf_s("%d", &count);
	integers = (int*)malloc(count * sizeof(int));//為指針申請count個int空間用於存放輸入的數據
	int **p = (int **)malloc(count * sizeof(int*));//為指針申請count個int*空間用於存放int空間的首地址
	printf("Please enter %d integers: \n", count);
	for (int i = 0; i < count; i++) {
		p[i] = integers + i; //將數組中每個int元素空間的首地址賦值給指針數組中的各個元素
		scanf_s("%d", p[i]);//p[i]就保存時第i個數據的地址,因此這里不用取地址
	}
	sort(p, count);
	for (int i = 0; i < count; i++) {
		printf("%d ", integers[i]);
	}
	printf("\n");
	free(integers);
	free(p);
	system("pause");
	return 0;
}

用指向指針的指針的方法對n個整數排序並輸出 要求將排序單獨寫成一個函數。n個整數在主函數中輸入,最后在主函數中輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 用指向指針的指針的方法對n個整數排序並輸出要求將排序單獨寫成一個函數。n個整數在主函數中輸入,最后在主函數中輸出 10.21用指向指針的指針的方法對n個整數排序並輸出。要求將排序單獨寫成一個函數。n和正整數在主函數中輸入。最后在主函數中輸出。 10.4 有n個整數,使前面各數順序向后移m個位置,最后m個數變成前面m個數,見圖。寫一函數:實現以上功能,在主函數中輸入n個數和輸出調整后的n個數。 編寫一個判斷素數的函數,在主函數輸入一個整數時,輸出是否素數的信息。 8.2寫一個判斷素數的函數,在主函數輸入一個整數,輸出是否是素數的消息。 寫一個判斷素數的函數,在主函數輸入一個整數,輸出是否是素數的消息。 輸入一個正整數n,將其轉換為二進制后輸出。要求定義並調用函數dectobin(n),它的功能是輸出 有n個整數,使前面各數順序向后移m個位置,最后m個數變成最前面m個數,見圖8.43。 寫一函數實現以上功能,在主函數中輸人n個整數和輸出調整后的n個數 有n個整數,使前面各數順序向后移m個位置,最后m個數變成最前面m個數,見圖8.43 寫一函數實現以上功能,在主函數中輸人n個整數和輸出調整后的n個數 有n個整數,使前面各數順序向后移m個位置,最后m個數變成最前面m個數,見圖8.43。 寫一函數實現以上功能,在主函數中輸人n個整數和輸出調整后的n個數
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM