(1)、找大小
描述:
首先输入整数N(0<=N<=1000),紧接着在下一行连续输入N个数。
随后输出这一组数的最小数最大数。
提示:
输入的这N数,可以有小数也可以有负数。
输出之间用换行隔开。
输入输出示例:
要解决这道题,可以利用数组思想。
首先输入整数N(0<=N<=1000):
输入 输出
示例1 5 54
1 5 3 22 54 1
#include<stdio.h>
int main(void){
int n;
scanf("%d",&n);//采用数组的方法,设置n个数
if(n==1){
printf("0\n0");//至少要两个数
}else if(n>=2){
double a[n];//定义一个数组
int i;
for(i=0;i<n;i++){//i=0,则从零开始i++,都为非零数。
scanf("%lf",&a[i]); //定义输出的每个数值都为实数,然后把输入的值赋值于数组中。
}
double max=a[0];//将数组中最大值设为输入数组第一个数
double min=a[0];//将数组中最小值设为输入数组第一个数
for(i=0;i<n;i++){//将每次输入的数都与第一个数进行比较,
if(a[i]>max){//若输入的数大于第一个数,将其赋值于max
max=a[i];/
}
if(a[i]<min){//找出数组中最小的数 //若输入的数小于第一个数,将其附值于min
min=a[i];
}
}
printf("%g\n%g",min,max);//输出最大值和最小值
}else{
printf(" ");//若输入0则不输出
}
return 0;
}
(2)、插入排序
描述:
给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序排列输出数字。
输入一个整数n表示有n个数,接着输入这n个数。
按照升序输出这n个数。
输入输出示例
样例一 输入 输出
5 2 3 4 4 5
3 2 4 5 4
#include<stdio.h>
int main() {
int k, x, N,i;
scanf("%d", &N);
int a[100];//定义一个有序数组
for ( i = 0; i < N; i++) {
scanf("%d", &a[i]);//输入n个数赋值到数组中
}
int temp, j;
for ( i = 1; i < N; i++)
{
j = i - 1;//从第一个数开始进行比较
temp = a[i];//将a[i]的值赋值到temp中。
while (a[j] > temp&&j >= 0)//进行判断a[i]是否比前面的数组大
{
a[j + 1] = a[j];//将a[i]向前移动到比它大的值前,小于它的值后
j--;//从它当前位置往前进行比较
}
a[++j] = temp;//将每次循环的a[i]都赋值于temp中
}
for ( i = 0; i < N; i++)
{
printf("%d", a[i]);//输出这些数组
if(i<N-1)
printf(" ");//在每次输出的数组间留空格
}
printf("\n");
return 0;
}