user-0 提问: 萌新求大佬帮助

回复:
user: user-1
content: 好多坑！

user: user-0
content: 引用 10 楼 yu6daddy的回复:第一个错误是 定义数组不能 int n,array[n]; 不对呀大佬，在下没这么写啊

user: user-0
content: 引用 10 楼 yu6daddy的回复:第一个错误是 定义数组不能 int n,array[n]; 大佬是说不用int而用array?我发现我的代码和别人的不一样在于她们输入相同的数时都会排列过去，而我只换了4个数的位置

user: user-0
content: 引用 8 楼 yu6daddy的回复:上面的人们 我都不忍吐槽了 “不会就学啊”这句话最没营养了 要是都会谁还问你啊 呵呵 不用指针就不能做了？？ c语言的指针是c语言最渣的一部分 于是后来做了java 摒弃了指针这些东西 所以具体的我来教楼主 先吐个槽。 你是一个亲切的大佬

user: user-2
content: 引用 8 楼 yu6daddy 的回复:上面的人们 我都不忍吐槽了 “不会就学啊”这句话最没营养了 要是都会谁还问你啊 呵呵 不用指针就不能做了？？ c语言的指针是c语言最渣的一部分 于是后来做了java 摒弃了指针这些东西 所以具体的我来教楼主 先吐个槽。 用c语言很难绕开指针，不喜欢可以去搞别的语言没问题

user: user-3
content: 第一个错误是 定义数组不能 int n,array[n];

user: user-1
content: 5 3 2 1 3 1

user: user-1
content: 好多坑！

user: user-0
content: 引用 5 楼 赵4老师的回复:好多坑！  我也发现好多坑，一样的数字好像也要排过去

user: user-4
content: 引用 3 楼 Eldeidge 的回复:[quote=引用 2 楼 自信男孩的回复:]#include <stdio.h>  void find_keys(int *arr, int len, int *max, int *min); void swap(int *a, int *b);  int main(void) {  	int num_list[10]; 	int i, n, max, min; 	while (scanf("%d", &n) != EOF) { 		if (n > 10 || n < 0) { 			printf("n is invalid!\n"); 			continue; 		} 		for(i = 0; i < n; i++) 			scanf("%d", &num_list[i]); 		find_keys(num_list, n, &max, &min); 		//printf("Max = %d, min = %d\n", max, min);  		swap(&num_list[0], &num_list[min]); 		swap(&num_list[n-1], &num_list[max]); 		 		for(i = 0; i < n; i++) 			printf("%d ", num_list[i]); 		putchar(10); 	} 	return 0; }  void find_keys(int *arr, int len, int *max, int *min) { 	int i;  	*max = *min = 0; 	for (i = 1; i < len; i++) { 		if (arr[*max] < arr[i]) 			*max = i; 		if (arr[*min] > arr[i]) 			*min = i; 	} }  void swap(int *a, int *b) { 	int c; 	c  = *a; 	*a = *b; 	*b = c; } 参考一下吧  首先先找到最大值和最小值的位置，即对应的数组的下表；然后就是交换； 大佬，在下不会指针[/quote] 不会不能学吗？学习C语言不学好指针有啥用？ 不要害怕，只要用C语言编程，总要跟指针打交道的，避免不了。

user: user-0
content: 引用 2 楼 自信男孩的回复:#include <stdio.h>  void find_keys(int *arr, int len, int *max, int *min); void swap(int *a, int *b);  int main(void) {  	int num_list[10]; 	int i, n, max, min; 	while (scanf("%d", &n) != EOF) { 		if (n > 10 || n < 0) { 			printf("n is invalid!\n"); 			continue; 		} 		for(i = 0; i < n; i++) 			scanf("%d", &num_list[i]); 		find_keys(num_list, n, &max, &min); 		//printf("Max = %d, min = %d\n", max, min);  		swap(&num_list[0], &num_list[min]); 		swap(&num_list[n-1], &num_list[max]); 		 		for(i = 0; i < n; i++) 			printf("%d ", num_list[i]); 		putchar(10); 	} 	return 0; }  void find_keys(int *arr, int len, int *max, int *min) { 	int i;  	*max = *min = 0; 	for (i = 1; i < len; i++) { 		if (arr[*max] < arr[i]) 			*max = i; 		if (arr[*min] > arr[i]) 			*min = i; 	} }  void swap(int *a, int *b) { 	int c; 	c  = *a; 	*a = *b; 	*b = c; } 参考一下吧  首先先找到最大值和最小值的位置，即对应的数组的下表；然后就是交换； 大佬，在下不会指针

user: user-4
content: #include <stdio.h>  void find_keys(int *arr, int len, int *max, int *min); void swap(int *a, int *b);  int main(void) {  	int num_list[10]; 	int i, n, max, min; 	while (scanf("%d", &n) != EOF) { 		if (n > 10 || n < 0) { 			printf("n is invalid!\n"); 			continue; 		} 		for(i = 0; i < n; i++) 			scanf("%d", &num_list[i]); 		find_keys(num_list, n, &max, &min); 		//printf("Max = %d, min = %d\n", max, min);  		swap(&num_list[0], &num_list[min]); 		swap(&num_list[n-1], &num_list[max]); 		 		for(i = 0; i < n; i++) 			printf("%d ", num_list[i]); 		putchar(10); 	} 	return 0; }  void find_keys(int *arr, int len, int *max, int *min) { 	int i;  	*max = *min = 0; 	for (i = 1; i < len; i++) { 		if (arr[*max] < arr[i]) 			*max = i; 		if (arr[*min] > arr[i]) 			*min = i; 	} }  void swap(int *a, int *b) { 	int c; 	c  = *a; 	*a = *b; 	*b = c; } 参考一下吧  首先先找到最大值和最小值的位置，即对应的数组的下表；然后就是交换；

user: user-0
content: 在下提交一直wrong