解题思路:三个函数

注意事项:因为懒得申请计数的变量,我就多申请课一个数组长度


参考代码:

1】正解:

#include <stdio.h>

void change(int a[11]);

void temp(int* p1, int *p2);

void print(int a[11]);

int main()

{

int a[11], max, min;

a[0] = 1;

while (a[0] < 11)

{

scanf("%d", &a[a[0]]);

a[0]++;

}

change(a);

}

void change(int a[11])

{

int  max = a[1], min = a[1],i = 1,j = 1;

a[0] = 1;

while (a[0] < 11)

{

if (a[a[0]] > max)

{

max = a[a[0]];

i = a[0];

}

a[0]++;

}

temp(&a[10], &a[i]);

a[0] = 1;

while (a[0] < 11)

{

if (a[a[0]] < min)

{

min = a[a[0]];

j = a[0];

}

a[0]++;

}

temp(&a[1], &a[j]);

print(a);

}

void temp(int* p1,int *p2)

{

int t = 0;

t = *p1;

*p1 = *p2;

*p2 = t;

}

void print(int a[11])

{

a[0] = 1;

while (a[0] < 11)

{

printf("%d ", a[a[0]]);

a[0]++;

}

}

2】错误:

#include <stdio.h>

void change(int a[11]);

void temp(int* p1, int *p2);

void print(int a[11]);

int main()

{

for (; 1;)

{

int a[11], max, min;

a[0] = 1;

while (a[0] < 11)

{

scanf_s("%d", &a[a[0]]);

a[0]++;

}

change(a);

}

}

void change(int a[11])

{

int  max = a[1], min = a[1],i = 1,j = 1;

a[0] = 1;

while (a[0] < 11)

{

if (a[a[0]] > max)

{

max = a[a[0]];

i = a[0];

}

if (a[a[0]] < min)

{

min = a[a[0]];

j = a[0];

}

a[0]++;

}

temp(&a[1], &a[j]);

if((i!=1)&&(j!=10))

temp(&a[10], &a[i]);

print(a);

}

void temp(int* p1,int *p2)

{

int t = 0;

t = *p1;

*p1 = *p2;

*p2 = t;

}

void print(int a[11])

{

a[0] = 1;

while (a[0] < 11)

{

printf("%d ", a[a[0]]);

a[0]++;

}

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论