s99q


私信TA

用户名:20206805

访问量:17571

签 名:

在否定中提升自己

等  级
排  名 290
经  验 5662
参赛次数 0
文章发表 91
年  龄 19
在职情况 学生
学  校 东大
专  业 软件工程

  自我简介:

代码是大一上学期写的,格式等都不规范,请多包涵。编写的代码,有些是为了练习库函数的使用,所以看着可能比较怪或者难以理解。

解题思路:三个函数

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


参考代码:

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 人评分

  评论区

  • «
  • »