游客 Signup | Login
中文 | En

1246 - C语言10.16

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

Input

用空格隔开的10个整数。

Output

输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。

请注意行尾输出换行。

Examples

Input

1 5 2 4 9 0 3 8 7 6

Output

0 5 2 4 6 1 3 8 7 9 

Solution C

#include<stdio.h>
int main() 
{ 
	int a[11],i,temp,min,max,j,k; 
	for(i=0;i<10;i++) 
		scanf("%d",&a[i]); 
	min=a[0];
	max=a[0];
	for(i=1;i<10;i++)
	{
		if(min>a[i])
			min=a[i],j=i;
		if(max<a[i])
			max=a[i],k=i;
	}
	temp=a[0];
	a[0]=min;
	a[j]=temp;

	temp=a[9];
	a[9]=max;
	a[k]=temp;

	for(i=0;i<10;i++)
		printf("%d ",a[i]);

	
	printf("\n");
}

Solution C++

#include <stdio.h>
int main() {
	int a[10];
	int i, t;
	int *min_pos, *max_pos;
	for (i = 0;i < 10;i++)
		scanf("%d", &a[i]);
	min_pos = a;
	for (i = 1;i < 10;i++)
		if (a[i] < *min_pos)
			min_pos = a + i;
	max_pos = a;
	for (i = 1;i < 10;i++)
		if (a[i] > *max_pos)
			max_pos = a + i;
	t = a[0]; a[0] = *min_pos; *min_pos = t;
	t = a[9]; a[9] = *max_pos; *max_pos = t;
	for (i = 0;i < 10;i++)
		printf("%d ", a[i]);
	printf("\n");
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题