数组元素位置交换
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
错误代码如下
#include<stdio.h>
#define x 5
/*
函数功能:找到数组中的目标元素
函数入口:整形数组与整形变量
函数返回值:无
*/
void FindandExchange(int a[], int n)
{
int max = a;
int min = a;
int i, t = 0;
//找到最数组中最大的元素,并与第一个元素交换
for (i = 0; i < n; i++)
{
if (max < a)
{
t = max;//保留原来max的数值
max = a;//将大的数值赋给max
a = t;
}
}
//找到最数组中最小的元素,并与最后一个元素交换
for (i = 0; i < n; i++)
{
if (min > a)
{
t = min;
min = a;
a = t;
}
}
}
/*
函数功能:输入数组和该数组中元素的个数
函数入口:整形数组,整形变量
函数返回值:无
*/
void input(int a [],int n)
{
int i;
for ( i = 0; i < n; i++)
{
scanf_s("%d", &a);
}
}//
void output(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d\n", a);
}
}
int main(void)
{
int score;
printf("请输入\n");
input(score, x);
FindandExchange(score,x);
printf("经过处理后的结果如下\n");
output(score, x);
return 0;
}
发生问题的区域:FindandExchange()函数错误
数组中的最大元素与最小元素都被赋值成原数组中的第一个元素
想知道我写的代码如何更改
{:10_254:} {:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_254:}{:10_254:} 用指针做也行{:10_280:}{:10_254:}{:10_257:} void FindandExchange(int a[], int n)
{
int max = a;
int min = a;
int i, t = 0;
//找到最数组中最大的元素,并与第一个元素交换
for (i = 1; i < n; i++)
{
if (max < a)
{
max = a;
t = i;
}
}
a = a;
a = max;
//找到最数组中最小的元素,并与最后一个元素交换
for (i = 0,t=0; i < n; i++)
{
if (min > a)
{
min = a;
t = i;
}
}
a = a;
a = min;
}
试一下可以不 #include<stdio.h>
#define n 10
void main() // main() 函数才是程序的入口,其他的函数都不是
{
int i, j = 0, k = 0, max, min, temp, a;
for (i = 0;i < n;i++)
scanf("%d", &a);
max = a;
//找到最数组中最大的元素,并与第一个元素交换
for (i = 1; i < n; i++)
{
if (max < a)
{
max = a;
j = i;
}
}
temp = a; // 将最大值与第1个元素交换位置
a = a;
a = temp;
min = a; // 在最大值的位置确定后,设最后一个元素为最小值
//找到最数组中最小的元素,并与最后一个元素交换
for (i = 0; i < n - 1; i++)
{
if (min > a)
{
min = a;
k = i;
}
}
temp = a; // 将最大值与第1个元素交换位置
a = a;
a = temp;
for (i = 0;i < n;i++) // 输出数组
printf("%d ", a);
printf("\n");
} 非常感谢回复我的鱼友们
但是我想知道的是
我的代码具体咋错的{:10_257:}
谁能告诉我
我就把最佳答案给他{:10_298:} 本帖最后由 采茝. 于 2020-12-6 15:58 编辑
北冰羊 发表于 2020-12-5 15:36
试一下可以不
你这个有问题
问题如图 采茝. 发表于 2020-12-6 15:55
你这个有问题
问题如图
你的代码只适用于数组首元素不为最小值的情况{:10_272:} 你的程序错误比较多,举个例子:if (max < a) 和 if (min > a) ,最大值与最小值,是元素的值,你却拿一个数组名 a 来比较,数组名一般代表的是该数组的首地址
页:
[1]