首页 > 试题广场 >

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最

[问答题]

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

3个函数:①输入10个数;②进行处理;③输出10个数。要求用指针方法处理。

推荐

#include<stdio.h>

int main()

{void input(int*);

void max_min_value(int*);

void output(int*);

int number[10]:

input(number);

max_min_value(number);

output( number);

return 0;

}


void input(int *number)

{int i;

printf("input 10 numbers:"):

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

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

}


void max_min_ value(int *number)

{int*max,*min,*p,temp;

max=min=number;

for(p=number+1;p<number+10;p++)

if(*p>*max)max=p;

else if(*p<*min)min=p;

temp=number[0];mumber[0]=*min; *min=temp;

if(max==number)max=min;

temp=number[9];number[9]=*max;*max=temp;

}


void output(int *rmum ber)

{int *p;

printf("Now,they are:   ");

for(p=number;p<number+10;p++)

printf("%d",*p);

printf("\n”);

}



发表于 2018-03-25 10:31:40 回复(0)
#include<stdio.h>
void exchange(int* a);
void printa(int* a);
int main(void)
{
	int * a[10];

	for (int i = 0; i < 10; i++)
	{
		scanf_s("%d", &a[i]);
	}

	exchange(a);

	return 0;
}

void exchange(int* a)
{
	int i, j, max, min , n = 10 , temp;

	max = min = a[0];

	for (i = 0; i < n; i++)
	{
		if (a[i] > max)
		{
			max = a[i];
		}

		if (a[i] < min)
		{
			min = a[i];
		}

	}

	printf("max is %d , min is %d\n", max, min);


	for (i = 0; i < 10; i++)
	{
		if (a[i] == min)
		{
			temp = a[i];
			a[i] = a[0];
			a[0] = temp;
		}

		if (a[i] == max)
		{
			temp = a[i];
			a[i] = a[n - 1];
			a[n - 1] = temp;
		}
	}

	printa(a);

}

void printa(int* a)
{
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", a[i]);
	}
}

发表于 2020-07-03 16:21:19 回复(1)
#include <stdio.h>
int main() {
	void input(int*);
	void max_min_value(int*);
	void output(int*);
	int number[10];
	input(number);
	max_min_value(number);
	output(number);
	getchar();
	return 0;
}

void input(int *number) {
	printf("input 10 numbers:");
	for (int i = 0; i < 10; i++)
		scanf_s("%d", &number[i]);
}

void max_min_value(int *number) {
	int *max, *min, *p, temp;
	max = min = number;
	for (p = number + 1; p < number + 10; p++) {
		if (*p > *max)
			max = p;
		else if (*p < *min)
			min = p;
		temp = number[0];
		number[0] = *min;
		*min = temp;
		if (max == number)
			max = min;
		temp = number[9];
		number[9] = *max;
		*max = temp;
	}
}

void output(int *number) {
	int *p;
	printf("ANS:");
	for (p = number; p < number + 10; p++)
		printf("%d", *p);
	printf("\n");
}

发表于 2020-03-29 22:17:59 回复(1)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void sort(int * group){
 int index1 = 0;
 int index2 = 0;
 for(int i = 1; i < 10; i ++){
  if(* (group + index1) > * (group + i))
   index1 = i;
 }
 for(int i = 1; i < 10; i ++){
  if(* (group + index2) < * (group + i))
   index2 = i;
 }
 int trans1 = * (group + 0);
 * (group + 0) = * (group + index1);
 * (group + index1) = trans1;
 int trans2 = * (group + 9);
 * (group + 9) = * (group + index2);
 * (group + index2) = trans2;
}
int main(){
 int* group = malloc(sizeof(int) * 10);
 for(int i = 0; i < 10; i ++){
  scanf("%d", group + i);
 }
 sort(group);
 for(int i = 0; i < 10; i ++){
  printf("%d ", * (group + i));
 }
 printf("\n");
}
发表于 2020-01-02 13:39:23 回复(0)