原题链接:[编程入门]自定义函数之整数处理
解题思路以及注意事项:
主要得注意传参的问题,不要在自定义函数里面定义数组然后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分
34 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> fun3(int *pa) { int i; for(i=0;i<10;i++) { printf("%d ",pa[i]); } } void fun2(int *pa) { int i,max=0,min=0,temp; for(i=1;i<10;i++) { if(pa[max]<pa[i]) { max=i; } if(pa[min]>pa[i]) { min=i; } } temp=pa[0]; pa[0]=pa[min]; pa[min]=temp; temp=pa[9]; pa[9]=pa[max]; pa[max]=temp; } void fun1(int *pa) { int i; for(i=0;i<10;i++) { scanf("%d",&pa[i]); } } int main(void) { int a[10]; fun1(a); fun2(a); fun3(a); return 0; }#include<stdio.h> void Input(int a[10]); void Dw(int a[10]); void Output(int a[10]); int main() { int a[10]; Input(a); Dw(a); Output(a); } void Input(int a[]) { int i; for(i=0;i<10;i++) scanf("%d",&a[i]); } void Dw(int a[]) { int i,tem; int max=a[0],min=a[0],maxidx=0,minidx=0; for(i=0;i<10;i++) { if(a[i]>max) { max=a[i]; maxidx=i; } if(a[i]<min) { min=a[i]; minidx=i; } } tem=a[0]; a[0]=a[minidx]; a[minidx]=tem; tem=a[9]; a[9]=a[maxidx]; a[maxidx]=tem; } void Output(int a[]) { int i; for(i=0;i<10;i++) { printf("%d ",a[i]); } } 看不出哪里有问题#include<stdio.h> #define N 10 void input_num(int a[],int n) { int i; for(i=0;i<n;i++) { scanf("%d",&a[i]); } } void process_data(int a[],int n) { int i,t,flag; t=a[0]; for(i=0;i<n;i++) { if(t>=a[i]) { t=a[i]; flag=i; } } a[flag]=a[0]; a[0]=t; t=a[0]; for(i=0;i<n;i++) { if(t<a[i]) { t=a[i]; flag=i; } } a[flag]=a[9]; a[9]=t; } void output_num(int a[],int n) { int i; for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } int main() { int a[N]; input_num(a,N); process_data(a,N); output_num(a,N); return 0; } 各位可以参考一下#include <stdio.h> int i,t,y; int a[10] = { 0 }; void shuru() { for (i = 0; i < 10; i++) { scanf("%d", &a[i]); } } void chuli() { t = a[0]; y = a[0]; for (i = 0; i < 10; i++) { if (t < a[i + 1]) { t=a[i + 1] ; } } for (i = 0; i < 10; i++) { if (t == a[i]) { int e = a[9]; a[9] = a[i]; a[i] = e; } } for (i = 0; i < 10; i++) { if (y > a[i + 1]) { y = a[i + 1]; } } for (i = 0; i < 10; i++) { if (y == a[i]) { int e = a[0]; a[0] = a[i]; a[i] = e; } } } void shuchu() { for (i = 0; i < 10; i