1,
标题 :找大小
描述:
首先输入整数N(0<=N<=1000),紧接着在下一行连续输入N个数。
随后输出这一组数的最小数,和最大数。
提示.# 003800310036003400340036367
输入的这N数,可以有小数也可以有负数.# 003800310036003400340036367
输出之间用换行隔开.# 003800310036003400340036367
输入输出示例:
输入 | 输出 | |
示例 1 | 5 1 5 3 22 54 |
54 1
扫描二维码关注公众号,回复:
13190393 查看本文章
|
解题思路:从题意已知有n个数输入,用循环将所有数输入即可,并已知n的范围即可定义两个数,输出最大最小,然后用if语句判断大小比置换,最后输出最大最小值即可。
#include<stdio.h>
int main()
{
int i=0,n;
double x,y=0,a=1000;//定义有y,a用n的最大最小值
scanf("%d",&n);
if(n!=0)
{
while(i<n)
{
scanf("%lf",&x);
if(x>y)
{
y=x;//不断置换大值,直到最后换出最大值
}
if(x<a)
{
a=x;//不断置换小值,直到最后得出最小值
}
i++;
}
printf("%g\n",a);
printf("%g\n",y);}
else if(n==0)//排除特殊情况
{
printf(" ");
}
return 0;
}
插入排序
描述
给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序排列输出数字。
输入一个整数n表示有n个数,接着输入这n个数。
按照升序输出这n个数。
输入输出示例
样例一 | 输入 5 3 2 4 5 4 |
输出 2 3 4 4 5 |
7 3 6 9 5 1 4 0 |
0 1 3 4 5 6 9 |
解题思路:题意知将数组内部按大小排序,先用循环将数据输入数组中,之后用两个循环将相邻的数比较大小,若不符合升序则将其通过一个中间数置换,不断进行直至完成,最后用一个循环将置换好的数组输出。
#include<stdio.h>
int main()
{
int n,i=0;
scanf("%d",&n);//用循环不断将数据输入数组
char a[n];
while(i<n)
{
scanf("%d",&a[i]);
i++;
}
int b,j,c;
for(b=0;b<n-1;b++)
{
for(j=0;j<n-1-b;j++)//用两个循环将相邻数组有序按大小置换
{
if(a[j]>a[j+1])
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
for(b=0;b<n;b++)//最后用一个循环输出数组中的所有数
if(b==n-1)
{
printf("%d\n",a[b]);
}
else
printf("%d ",a[b]);
}
return 0;
}