C语言编程问题,初学者,不太会,谢谢啦

2024年11月28日 15:50
有3个网友回答
网友(1):

#include

int f(int *a,int n)

{

int max,min;

max=min=0;

for(int i=0;i

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

max=i;

else if(a[i]

min=i;

int t;

t=a[max];

a[max]=a[n-1];

a[n-1]=t;

t=a[min];

a[min]=a[0];

a[0]=t;

}

int main()

{

int a[111],n=0;

do{

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

}while(getchar()!='\n');//回车结束输入; 

f(a,n);//调用函数 

for(int i=0;i

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

return 0; 

}

网友(2):

#include "stdio.h"


void f(int x[],int n)

{

int max=x[0],min=x[0],i;

int max_locate=0,min_locate=0;

for(i=1;i

{

if (max < x[i])

{

max = x[i];

max_locate=i;

}

if(min > x[i])

{

min = x[i];

min_locate=i;

}

}

x[max_locate]=x[n-1];

x[n-1]=max;

x[min_locate]=x[0];

x[0]=min;

}

int main()

{

int x[10] = {},i;

printf("输入10个数:");

for(i=0;i<10;i++)

scanf("%d",&x[i]);

f(x,10);

printf("对换后:");

for(i=0;i<10;i++)

printf("%d ",x[i]);

printf("\n");

return 0;

}

网友(3):

你可以按照以下方式编写自定义函数f和主函数:

```python
def f(x):
min_index = x.index(min(x)) # 找到最小值的索引
x[0], x[min_index] = x[min_index], x[0] # 将最小值与第一个数对换

max_index = x.index(max(x)) # 找到最大值的索引
x[-1], x[max_index] = x[max_index], x[-1] # 将最大值与最后一个数对换

def main():
# 输入数组
nums = input("请输入以空格分隔的数字: ").split()
nums = [int(num) for num in nums]

# 调用自定义函数f
f(nums)

# 输出结果
print("交换后的数组:", nums)

# 调用主函数
main()
```

在主函数中,首先输入一组以空格分隔的数字,然后将其转换为整数类型的列表。接下来,调用自定义函数f,传入这个列表作为参数。在自定义函数f中,通过找到最小值和最大值的索引,并与第一个数和最后一个数进行对换。最后,在主函数中输出交换后的数组结果。

注意:这个函数假设输入的n个数互不相同。若输入包含相同的数,则可能出现重复的数被交换的情况。