为了账号安全,请及时绑定邮箱和手机立即绑定

利用数组处理批量数据

利用数组处理批量数据

C
踏月光 2016-11-18 08:33:09
从键盘输入一组数(10个),找出最大数和最小数,并把最大数和第0个数交换,最小数和最后一个数交换
查看完整描述

2 回答

已采纳
?
Yexiaomo

TA贡献152条经验 获得超157个赞

#include <stdio.h>
#define N 10    //这里默认数组大小为 10, 现改为其他 也可以
typedef int ElemType; //因为你没说是什么类型的数, 我这里用的是 int 类型, 并将它重命名为 ElemType

int main(){
	int i;
	int max = 0, min = 0; //max记录最大数的下标, min记录最小数的下标
	ElemType nums[N], temp;    //temp 作为交换变量

	for(i = 0; i < N; ++i){
		scanf("%d",&nums[i]);
		/*在输入数据时就开始比较并找出最大值最小值的小标*/
		if(nums[i] > nums[max])
			max = i;
		else if(nums[i] < nums[min])
			min = i;
	}
	/* 交换 数值 */
	temp = nums[max];
	nums[max] = nums[0];
	nums[0] = temp;
	
	temp = nums[min];
	nums[min] = nums[0];
	nums[0] = temp;
	
	for(i = 0; i < N; ++i){
		printf("%d ",nums[i]);
	}
	return 0;
}

交换数值 那一部分, 本来想写一个交换值的函数,想想 你可能还没学 指针, 所以就没有写, 就在主函数中 写了两边 交换

很不爽, 程序很简单, 应该能看得懂, 看不懂了, 下边回复

-------------------------

啦啦~~Imcainiao

查看完整回答
1 反对 回复 2016-11-18
?
这都不会

TA贡献72条经验 获得超92个赞

#include <stdio.h>
int main() {
	int num[10], i, temp, max, min, maxId, minId;
	//输入 
	for(i = 0; i < 10; i++) {
		scanf("%d", &num[i]);
	}
	max = min = num[0];
	maxId = minId = 0;
	//循环,查找最大最小值,并确定他们在数组里的下标 
	for(i = 0; i < 10; i++) {
		if(num[i] > max) {
			max = num[i];
			maxId = i;
		}
		if(num[i] < min) {
			min = num[i];
			minId = i;
		}
	}
	//交换 
	temp = num[0], num[0] = num[maxId], num[maxId] = temp;
	temp = num[9], num[9] = num[minId], num[minId] = temp;
	for(i = 0; i < 10; i++) {
		printf("%d ", num[i]);
	}
	return 0;
}


查看完整回答
反对 回复 2016-11-18
  • 2 回答
  • 0 关注
  • 1434 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信