题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1

本文介绍了一个使用C语言编写的简单程序,该程序通过命令行参数接收一系列浮点数,利用冒泡排序法对这些数值进行排序,并输出排序后的结果。程序首先将命令行参数转换为浮点数并加入到数组中,然后通过两层循环实现冒泡排序,最后输出排序后的浮点数。
#include <stdio.h>
#include <stdlib.h>
#define MAX 999 //足够大的数使其正数参加排序


int main(int argc,char *argv[])
{
int i,j;
float a[100],temp = 0.0;


for(i = 0;i < argc;i++)
{
printf("%s ",argv[i]);


a[i]= atof(argv[i])+MAX;//字符串转换为浮点型数存入数组


}


printf("\n");


    //冒泡法排序
for(j = 0;j < argc-2;j++)
{
for(i = 1;i < argc-1-j;i++)
if(a[i] > a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
printf("The sorted is\n");


for(i = 1;i < argc;i++)
{
printf("%.3f ",a[i]-MAX);
}


printf("\n");


    return 0;
}
#ACM0025. 樱花庄的日常 ID: 38 传统题 1000ms 256MiB 尝试: 29 已: 12 难度: 1 上传者: anxiao_snow 标签> 题目描述 真白每天都在粘着空太不想离开,nanami 强制抵制真白的猫猫行为,于是以锻炼真白的思维为理由,每天给真白出一道学题,没写完学题之前不能去找空太 (败犬行为,笑),但是真白学很差,你能帮帮她嘛? 给定一个三位,要求各位不能相同。例如, 352 352 是符合要求的, 112 112 是不符合要求的。将这个三位的三个数字重新列,得到的最大的,减去得到的最小的,形成一个新的三位。对这个新的三位可以重复上述过程。amazing,结果一定是 495 495 ! 现在,输入的三位,你能过编程得出,这个三位经过多少次变换能够得到 495 495 吗? 输入格式 第一行一个正整 T T( 1 ≤ T ≤ 100 1≤T≤100),代表测试样例的组。 之后每行输入一个正整 n n( 100 < n < 999 100<n<999) ,代表给定的三位输出格式 输出一行,包一个整 C C,表示经过 C C 次变换得到 495 495。 样例 #1 样例输入 #1 2 352 654 样例输出 #1 4 5 提示 对于第一个样例: 重新352 352,得到的最大532 532,最小数235 235,它们的差是 297 297; 变换 297 297,得到 972279 = 693 972279=693; 变换 693 693,得到 963369 = 594 963369=594; 变换 594 594,得到 954 − 459 = 495 954−459=495。 因此,经过 4 4 次变换得到了 495 495
最新发布
10-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值