解题思路以及注意事项:
主要得注意传参的问题,不要在自定义函数里面定义数组然后return到主函数,这是行不通的,因为自定义函数调用结束后,其中的数据会发生意想不到的结果。
交换值得用到第三者。
代码比较长,但还是挺简单的,一定要静下心来写代码。
实例代码:
#include"stdio.h" void putin(int a[],int n); void list(int a[],int n); void putout(int a[],int n); int main() { int a[10]; putin(a,10); list(a,10); putout(a,10); return 0; } void putin(int a[],int n) { int i; for(i=0;i<n;i++) { scanf("%d",&a[i]); } } void list(int a[],int n) { int i,max,min,maxi=0,maxj=0,trans1,trans2; max=a[0]; min=a[0]; for(i=1;i<n;i++) { if(a[i]<min) { min=a[i]; maxi=i; } if(a[i]>max) { max=a[i]; maxj=i; } } trans2=a[0]; a[0]=min; a[maxi]=trans2; for(i=1;i<n;i++) { if(a[i]>max) { max=a[i]; maxj=i; } } trans1=a[9]; a[9]=max; a[maxj]=trans1; } void putout(int a[],int n) { int i; for(i=0;i<n;i++) { printf("%d ",a[i]); } }
看看大家还有什么问题,请在下方评论区留言,小方会在看到的第一时间为您解疑
0.0分
40 人评分
#include<stdio.h> int a[10]; void in(int a[]) { int i; for(i=0;i<10;i++) scanf("%d",&a[i]); } void ch(int a[]) { int min,max,i,j=0,k=0,t; min=a[0]; max=a[0]; for(i=1;i<10;i++) {if(a[i]<min) min=a[i],j=i; if(a[i]>max) max=a[i],k=i; } t=a[j]; a[j]=a[0]; a[0]=t; t=a[k]; a[k]=a[9]; a[9]=t; } void on(int a[]) { for(int i=0;i<10;i++) printf("%d ",a[i]); } void main() { in(a); ch(a); on(a); } 大婶们帮忙看看哪里错了,提交结果错误
用指针来排序 #include"stdio.h" int main() { void In(int* num); void Sort(int* str); void Out(int* num); int nums[10]; In(nums); Sort(nums); Out(nums); return 0; } void In(int* num) { int i; for(i=0;i<10;i++) scanf("%d",num+i); } void Sort(int* str) { int* a,x; int i,min=0,max=0; a=str; for(i=1;i<10;i++) if(*(str+max)<*(a+i))max=i;\\找到最大的坐标后,立即交换数据 x=*(str+9); *(str+9)=*(a+max); *(a+max)=x; for(i=1;i<10;i++) if(*(str+min)>*(a+i))min=i; x=*str; *str=*(a+min); *(a+min)=x; } void Out(int* num) { int i; for(i=0;i<10;i++) printf("%
#include<stdio.h> int input(int a[],int n) { int i; for(i=0; i<n; i++) scanf("%d",&a[i]); return 0; } int deal(int a[],int n) { int i,min,t,k,p,max; min=a[0]; for(i=1; i<10; i++) { if(a[i]<min) { k=i; min=a[i]; } } t=a[0]; a[0]=min; a[k]=t; max=a[1]; for(i=2; i<10; i++) { if(a[i]>max) { max=a[i]; p=i; } } t=a[9]; a[9]=max; a[p]=t; return 0; } int output(int a[],int n) { int i; for(i=0; i<n; i++) print
斌哥 2019-11-01 19:25:04 |
#include<stdio.h> void input(int * x) { for (int i = 0; i < 10; i++) scanf("%d",&x[i]); } void fun(int * x) { int maxi=0, mini=0; int max = x[0]; int min = x[0]; for (int i = 1; i < 10; i++) { if (max < x[i]) { max = x[i]; maxi = i; } if (min > x[i]) { min = x[i]; mini = i; } } int t = x[0]; x[0] = x[mini]; x[mini] = t; t = x[9]; x[9] = x[maxi]; x[maxi] = t; } void getout(int * x) { for (int i = 0; i < 10; i++) printf("%d ", x[i]); } int main() { int x[10] = {0}; input(x); fun(x); getout(x); return 0; }
#include<stdio.h> int a[10]; void input() { for(int i=0;i<10;i++) scanf("%d",&a[i]); } void exchange() { for(int i=1;i<10;i++) { if(a[0]>a[i]) { int temp; temp=a[0]; a[0]=a[i]; a[i]=temp; } } for(int i=0;i<9;i++) { if(a[9]<a[i]) { int temp; temp=a[9]; a[9]=a[i]; a[i]=temp; } } } void print() { for(int i=0;i<10;i++) printf("%d ",a[i]); } int main() { input(); exchange(); print(); return 0; }//为什么我的显示错%50?(哭唧唧
Rollins 2019-11-16 15:00:02 |
咋每个函数都没形参?
#include <stdio.h> void ace(int b[]); void mvp(int b[]); void one(int b[]); int main() { int a[10]; ace(a); mvp(a); one(a); return 0; } void ace(int b[]) { int i; for(i=0;i<10;i++) { scanf("%d",&b[i]); } } void mvp(int b[]) { int i,j,k,m,n; int min=b[0],max=b[0]; for(i=1;i<10;i++) { if(b[i]>max) { max=b[i]; j=i; } } m=b[j]; b[j]=b[9]; b[9]=m; for(i=1;i<10;i++) { if(b[i]<min) { min=b[i]; k=i; } } n=b[k]; b[k]=b[0]; b[0]=n; } void one(int b[]) { int i; for(i=0;i<10;i++) { printf("%d ",b[i]); } } 对上面调整一下就行了
逆反的01串 (C++代码)(依旧推荐switch)浏览:1003 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:685 |
点我有惊喜!你懂得!浏览:2754 |
C语言训练-计算1977!* (C语言代码)浏览:940 |
C二级辅导-阶乘数列 (C语言代码)浏览:642 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1059 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:627 |
C二级辅导-进制转换 (C语言代码)浏览:657 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:613 |
【金明的预算方案】 (C++代码)浏览:996 |
圣者psy素爱 2019-10-15 09:57:34 |
检查一下语法
jj 2020-02-09 22:05:48 |
优质题解本身就是错的,你将输入改为:22 1 3 4 5 6 7 8 10 9就会发现输出结果不符合要求,因为楼主没有考虑全边界值的情况