柯南的滑板


私信TA

用户名:uq_45459957643

访问量:29792

签 名:

hello world

等  级
排  名 525
经  验 4486
参赛次数 0
文章发表 7
年  龄 18
在职情况 学生
学  校 河北工业大学
专  业

  自我简介:

;

解题思路:题目要求定义三个函数,分别实现输入10个数、处理最大最小的元素、输出10个数的功能。输入函数为一个for循环,循环10次,录入10个数保存在数组a[10]中。处理函数遍历数组a,首先假设a[0]最小,当a[i]<a[0]成立时,将a[i]的值和坐标存放起来,遍历后交换最小的元素(利用坐标)与第一个元素;最大的数的处理方式同理。输出函数与输入函数同理。

注意事项:开头处定义了全局变量数组a[10];因为这样才能使你在自定义函数中输入的数字,能在main函数中可以用,如果数组a的定义在其他地方,疯狂报错······代码也考虑了负整数的情况(min=a[0],max=a[0])。最初是在vc++6.0中编写的,能通过,上传结果编译错误,发现是i在for循环定义过了,下面不用定义了,但是本站的编译器跟vs2019规则一样,把i在函数开始定义一下就行了。

参考代码:开发环境vs2019

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int a[10]; //全局变量
void shuru()
{

	for (int i = 0; i < 10; i++)
	{
		scanf("%d", &a[i]);
	}
}
void chuli()
{
	int min = a[0];
	int i;
	int t;
	//找到最小元素的坐标
	for (i = 0; i < 10; i++)
	{
		if (a[i] < min)
		{
			min = a[i];
			t = i;
		}
	}
	int temp = a[0];
	a[0] = a[t];
	a[t] = temp;
	//找到最大元素的坐标
	int max = a[0];
	for (i = 0; i < 10; i++)
	{
		if (a[i] > max)
		{
			max = a[i];
			t = i;
		}
	}
	temp = a[9];
	a[9] = a[t];
	a[t] = temp;
}
void shuchu()
{
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", a[i]);
	}
}
int main()
{
	shuru();
	chuli();
	shuchu();
	return 0;
}


 

0.0分

17 人评分

  评论区

min = arr[i]; // 记录最小元素下标
			t = i;
		}
	}
	temp = arr[0];
	arr[0] = arr[t];
	arr[t] = temp;
}


void output(int* arr) { // 输出处理完的十个元素
	int i = 0;
	for (i = 0;i < 10;i++) {
		printf("%d ", arr[i]);
	}
}


int main() {
	int arr[10] = { 0 };
	input(arr);
	deal_with(arr);
	output(arr);

	return 0;
}
2023-12-11 21:07:49
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
//  输入10个整数,将其中最小数与第一个数对换,把最大的数与最后一个数对换。写三个函数 输入10个数;进行处理 输出10个数

int input(int* arr) {  //输入十个元素
	int i = 0;
	for (i = 0;i < 10;i++) {
		scanf("%d", &arr[i]); 
	}
	return 0;
}

void deal_with(int* arr) {
	int max = arr[0], i = 0, t = 0, temp = 0;
	// 找出最大值并处理
	for (i = 0;i < 10;i++) {
		if (arr[i] >= max) {
			max = arr[i];
			t = i; // 记录最大元素下标
		}
	}
	temp = arr[9];
	arr[9] = arr[t]; // t对应着最大值的下标,
	arr[t] = temp;

	// 找出最小值并处理
	int min = arr[0];
	for (i = 0;i < 10;i++) {
		if (arr[i] < min) {
			min = arr[i]; // 记录最小元素下标
			t = i;
		}
	}
2023-12-11 21:07:00
arr[10]={0}如果不定义为全局变量,但是调用三个函数的时候把数组名作为实参参数传过去好像也可以吧,,我的提交结果是正确的,自己测试也没发现问题;
2023-12-11 21:06:29
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int a[10];
void shuru()
{int i;for(i=0;i<10;i++)
scanf("%d",&a[i]);}
void tiaoxu()
{int temp;
int t,i;
int max=a[0];
for(i=0;i<10;i++)
  {if(a[i]>max)
     {max=a[i];t=i;}///找最大值 与最后一个数调换 
  }
 temp=a[t];a[t]=a[9];a[9]=temp;
 int min=a[0]; 
 for(i=0;i<10;i++)
  {if(a[i]<min)
     {min=a[i];t=i;}///找最小值 与第一个数调换 
  }
 temp=a[t];a[t]=a[0];a[0]=temp;
}
void shuchu()
{int i;for(i=0;i<10;i++)
printf("%d ",a[i]);
 } 
int main()
{
shuru(a);
tiaoxu(a);
shuchu(a);return 0;}
  大佬们,求解
2022-01-18 18:45:32
注意事项:不可以同时找到最大数和最小数然后一起交换
来源于https://blog.dotcpp.com/a/4116的解释
2021-12-02 14:17:35
#include<stdio.h>
int shu(int a[10]) 
{
	int i;
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
}  
int pai(int a[10])
{
	int i,t,k,f;
	k=t=f=0;
	for(i=1;i<10;i++)
	{
		t=a[0];
		if(t>a[i])
		{
			t=a[i];
			k=i;	
		}	
	}
	f=a[0];
	a[0]=a[k];
	a[k]=f;
	for(i=0;i<9;i++)
	{
		t=a[9];
		if(t<a[i])
		{
			t=a[i];
			k=i;
				
		}
	}
	f=a[9];
	a[9]=a[k];
	a[k]=f;
}
int chu(int a[10])
{
	int i;
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
}
int main()
{
	int i,t,k,f;
	int a[10];
	t=k=f=0;
	shu(a);
	pai(a);
	chu(a);
	return 0;
}
答案错误,有没有大佬帮忙看看
2021-11-13 15:17:01
#include<stdio.h>
int a[11];
void scan()
{
	int i;
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
}

void sort_()
{
	int i,max=9,min=0;
	for(i=1;i<=8;i++)
	{
		if(a[i]<a[min])min=i;
		else if(a[i]>a[max])max=i;
	}
	a[0]^=a[min];
	a[min]^=a[0];
	a[0]^=a[min];
	
	a[9]^=a[max];
	a[max]^=a[9];
	a[9]^=a[max];
}

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

void main()
{

	scan();
	sort_();
	prin();
}
这个老是报结果错误。本来是在main里面定义的a[]的,然后用指针传递数据给函数,显示结果错误。然后我看了楼主的文章,把a[]定义成了全局变量,还是不行,哪位大神帮我看看,非常感谢!
2021-05-19 17:25:34
  • «
  • 1
  • »