原题链接:[编程入门]自定义函数之整数处理
0.0分
32 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> #include <string.h> #define N 1000 #define n 10 void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } int *Handle(int *arr)//处理函数 { int min=arr[0],max=arr[0],item1,item2; for(int i=0;i<n;i++){ if(arr[i]<=min){ min=arr[i]; item1=i; } if(arr[i]>=max){ max=arr[i]; item2=i; } } swap(&arr[0],&arr[item1]); swap(&arr[9],&arr[item2]); return arr; } void OutPut(int *arr)//输出函数 { for(int i=0;i<n;i++){ printf("%d ",arr[i]); } } int main(void) { int arr[N]; for(int i=0;i<n;i++){ scanf("%d",&arr[i]); } int *arr2=Handle(arr); OutPut(arr);#include<stdio.h> int main() { int a[10]={0}; int i; for (i = 0; i < 10; i++) scanf("%d", &a[i]); int min=0, max = 0; for (i=0; i < 10; i++) { if (a [i] > a[i+1]&&a[i]>=a[max]) max = i; } if (a[9] > a[max]) max = 9; for (i = 9; i >=0; i--) if (a[i] < a[i - 1]&&a[i]<=a[min]) min = i; if (a[0]<a[min]) min=0; int temp_min, temp_max; temp_min = a[0]; a[0] = a[min]; a[min] = temp_min; if(max != 0){ temp_max = a[9]; a[9] = a[max]; a[max] = temp_max; } else{ tempelse if (arr[i] == max) { tmp = arr[9]; arr[9] = max; arr[i] = tmp; } } } void Output(int arr[]) { int i = 0; for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[10] = { 0 }; Input(arr); Order(arr); Output(arr); return 0; }void Input(int arr[]) { int i = 0; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } } void Order(int arr[]) { int i = 0; int tmp = 0; int min = arr[0]; int max = arr[0]; for (i = 0; i < 10; i++) { if (min > arr[i]) { min = arr[i]; } } for (i = 0; i < 10; i++) { if (max < arr[i]) { max = arr[i]; } } for (i = 0; i < 10; i++) { if (arr[i] == min) { tmp = arr[0]; arr[0] = min; arr[i] = tmp; }#include<stdio.h> int main(){ int i,a[10],tmp,max,min; for(i=0;i<10;i++){ scanf("%d",&a[i]); } min=0; max=9; for(i=1;i<10;i++){ if(a[min]>a[i]){ min=i; } } for(i=8;i>0;i--){ if(a[i]>a[max]){ max=i; } } tmp=a[0];a[0]=a[min];a[min]=tmp; tmp=a[9];a[9]=a[max];a[max]=tmp; for(i=0;i<10;i++){ printf("%d ",a[i]); } } 为什么结果错误家人们#include<stdio.h> int enter(int *pstr) { int *q=pstr; for(int i=0;i<10;++i) { scanf("%d", (q++)); } } int work(int *pstr) { int *max=pstr,*min=pstr,*p=pstr,temp; for(int i=1;i<10;++i) { if(*max<p[i]) max=&p[i]; else if(*min>p[i]) min=&p[i]; } temp=*min; *min=p[0]; p[0]=temp; temp=*max; *max=p[9]; p[9]=temp; for(int i=1;i<8;++i) { for(int j=i+1;j<9;++j) { if(*(p+i)>*(p+j)) { temp=p[i]; p[i]=p[j]; p[j]=temp; } } } } int put(int *pstr) { int *p=pstr; for(int i=0;i<10;++i) printf("%d ", (*p++)); } int main(void) { int str[10];指针代码中,为什么for后面没有大括号{}?编译能通过也没报错