user-0 提问: 请求大佬帮忙。写一个c语言程序。要c6.0的。

回复:
user: user-0
content: 引用 3 楼 宾灬的回复: #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <math.h> int num; //输入数字的个数 int * data; //存输入的数字 0-9  数组  int * nums; // 存组成的数 数组 int numsIndex = 0; //组成的数的下标   /**  * 交换  * @param arr    [description]  * @param index1 [description]  * @param index2 [description]  */ void swap(int * arr, int index1, int index2){ 		int temp = arr[index1]; 		arr[index1] = arr[index2]; 		arr[index2] = temp; } /**  * [quickSort 快速排序]  * @param start [description]  * @param end   [description]  */ void quickSort(int start, int end){ 	if(start >= end){ 		return; 	} 	int low = start, high = end; 	int middle = nums[start];//基数 	while(low < high){ 		//从右往左找 		while(low < high && nums[high] > middle){ 			high --; 		} 		//从左往右找 		while(low < high && nums[low] <= middle){ 			low ++; 		} 		//交换 		swap(nums, low, high); 	} 	//交换 	swap(nums, start, low); 	quickSort(start, low-1); 	quickSort(low+1, end); } /**  * [createNums 创建N-1位数字]  * @param arr [description]  * @param len [description]  */ void createNums(int arr[], int len){ 	int  x = 0; 	for(int i = 1; i < len; i++){ // 如果要创建N位数字（全排列） i从0开始 		if(arr[1] == 0){ //0是第一个数，不要 			return; 		} 		x += arr[i] * pow(10,len - i -1); 	} 	//存到数组中 	nums[numsIndex++] = x; 	 } /**  * 全排列   *思路:第一个数和后面的数（包括自己）交换，每个交换结果又用第二个数和后面的数交换，交换结果又用第三个数和后面的数交换....最后一个数和最后一个数交换。  * @param arr   [数组]  * @param index [交换数位置]  * @param num   [最后一个数的位置]  */ void perm(int arr[], int index, int endIndex){ 	if(index == endIndex){ //一次递归结束 		createNums(arr, endIndex+1); 	}else{ 		for(int i = index; i <= endIndex; i++){ 			swap(arr, index, i); //交换数(index)和后面的数（包括自己）交换 			perm(arr, index+1, endIndex); //递归 index+1 			swap(arr, i, index); //交换完了，要换回来 以便 下一次循环 		} 	} }  /**  * [showNums 打印数字]  */ void showNums(){ 	for(int i = 0; i < numsIndex; i++){ 		if(i % 3 == 0){ 			printf("\n"); 		} 		printf("%d ", nums[i] );  	} }  /**  * [enterNum 输入数字]  */ void enterNum(){ 	printf("要输入数字的个数:"); 	scanf("%d", &num); 	printf("%d\n", num); 	data = (int*)calloc(num, sizeof(int)); //分配内存 	nums = (int*)calloc(num - 1, sizeof(int));  	for(int i = 0; i < num; i++){ 		printf("请输入第%d个数:",   i+1); 		scanf("%d", data + i); 		printf("%d\n", data[i]); 	} 	perm(data, 0, num -1); }   int main(){  	enterNum(); 	printf("----------------------组成的数字如下:----------------"); 	showNums(); 	quickSort(0, numsIndex-1); 	printf("\n------------------------排序后:-------------------\n"); 	showNums(); 	free(data); 	free(nums); 	return 0; }   非常感谢大佬，感谢

user: user-0
content: 感谢，非常感谢大佬

user: user-1
content: #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <math.h> int num; //输入数字的个数 int * data; //存输入的数字 0-9  数组  int * nums; // 存组成的数 数组 int numsIndex = 0; //组成的数的下标   /**  * 交换  * @param arr    [description]  * @param index1 [description]  * @param index2 [description]  */ void swap(int * arr, int index1, int index2){ 		int temp = arr[index1]; 		arr[index1] = arr[index2]; 		arr[index2] = temp; } /**  * [quickSort 快速排序]  * @param start [description]  * @param end   [description]  */ void quickSort(int start, int end){ 	if(start >= end){ 		return; 	} 	int low = start, high = end; 	int middle = nums[start];//基数 	while(low < high){ 		//从右往左找 		while(low < high && nums[high] > middle){ 			high --; 		} 		//从左往右找 		while(low < high && nums[low] <= middle){ 			low ++; 		} 		//交换 		swap(nums, low, high); 	} 	//交换 	swap(nums, start, low); 	quickSort(start, low-1); 	quickSort(low+1, end); } /**  * [createNums 创建N-1位数字]  * @param arr [description]  * @param len [description]  */ void createNums(int arr[], int len){ 	int  x = 0; 	for(int i = 1; i < len; i++){ // 如果要创建N位数字（全排列） i从0开始 		if(arr[1] == 0){ //0是第一个数，不要 			return; 		} 		x += arr[i] * pow(10,len - i -1); 	} 	//存到数组中 	nums[numsIndex++] = x; 	 } /**  * 全排列   *思路:第一个数和后面的数（包括自己）交换，每个交换结果又用第二个数和后面的数交换，交换结果又用第三个数和后面的数交换....最后一个数和最后一个数交换。  * @param arr   [数组]  * @param index [交换数位置]  * @param num   [最后一个数的位置]  */ void perm(int arr[], int index, int endIndex){ 	if(index == endIndex){ //一次递归结束 		createNums(arr, endIndex+1); 	}else{ 		for(int i = index; i <= endIndex; i++){ 			swap(arr, index, i); //交换数(index)和后面的数（包括自己）交换 			perm(arr, index+1, endIndex); //递归 index+1 			swap(arr, i, index); //交换完了，要换回来 以便 下一次循环 		} 	} }  /**  * [showNums 打印数字]  */ void showNums(){ 	for(int i = 0; i < numsIndex; i++){ 		if(i % 3 == 0){ 			printf("\n"); 		} 		printf("%d ", nums[i] );  	} }  /**  * [enterNum 输入数字]  */ void enterNum(){ 	printf("要输入数字的个数:"); 	scanf("%d", &num); 	printf("%d\n", num); 	data = (int*)calloc(num, sizeof(int)); //分配内存 	nums = (int*)calloc(num - 1, sizeof(int));  	for(int i = 0; i < num; i++){ 		printf("请输入第%d个数:",   i+1); 		scanf("%d", data + i); 		printf("%d\n", data[i]); 	} 	perm(data, 0, num -1); }   int main(){  	enterNum(); 	printf("----------------------组成的数字如下:----------------"); 	showNums(); 	quickSort(0, numsIndex-1); 	printf("\n------------------------排序后:-------------------\n"); 	showNums(); 	free(data); 	free(nums); 	return 0; }

user: user-0
content: 引用 1 楼 user-2的回复:听过说c89,c99,c11,也听说过vc 6.0 vc 2005 vc 2008，却从未听说过c6.0. vc6.0，打错了😂😂😂😂

user: user-2
content: 听过说c89,c99,c11,也听说过vc 6.0 vc 2005 vc 2008，却从未听说过c6.0.