蓝桥杯——基础训练04--数列特征

数列特征:

问题描述
  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
  第一行为一个整数n。
  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
  输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9

主要是数组、排序问题。

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {
	int i, n, min, max, total=0;
	int arr[10000];
	
	scanf("%d",&n);
	for(i=0; i<n; i++){
		scanf("%d",&arr[i]);
		if(arr[i]>=-10000 && arr[i]<=10000){
			continue;
		}
		else
			scanf("%d",&arr[i]);		
	}
	
	min=arr[0];
	max=arr[0];
	
	for(i=0; i<n; i++){
		 
		if(arr[i] <= min){
			min=arr[i];
		}
		if(arr[i] >= max){
			max=arr[i];
		}
		total += arr[i];
	}

	printf("%d\n%d\n%d\n", max, min, total);
	
	return 0;
}

或者,稍微改动一下,看看下面:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {
	int i, n, min, max, total=0;
	int arr[10000];
	
	scanf("%d",&n);
	for(i=0; i<n; i++){
		scanf("%d",&arr[i]);
		if(arr[i]>=-10000 && arr[i]<=10000){
			continue;
		}
		else
			scanf("%d",&arr[i]);		
	}
	
	min=arr[0];
	max=arr[0];
	
	for(i=0; i<n; i++){
		max = max>arr[i] ? max:arr[i];			//这样也可以
		min = min<arr[i] ? min:arr[i];

		total += arr[i];
	}

	printf("%d\n%d\n%d\n", max, min, total);
	
	return 0;
}

还有更好的,正在学习中~

猜你喜欢

转载自blog.csdn.net/weixin_44566432/article/details/88735390