输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7输出: -3 -1 2.1 5 7
来源:互联网 发布:淘宝网怎么装修 编辑:程序博客网 时间:2024/05/19 13:09
#include<stdio.h>
#define False 0
#define True 1
double StrToFloat(const char *str)
{
if (str == NULL)
{
return -1;
}
double s = 0.0;
double d = 10.0;
int flag = False;
while (*str == ' ') //跳过多余的空格
{
str++;
}
if (*str == '-') //负号处理,防止True标志,并跳至下一位
{
flag = True;
str++;
}
if (!(*str >= '0' && *str <= '9')) //如果遇到的第一个非数字则返回0.0
{
return s;
}
while (*str <= '9' && *str >= '0') //整数部分先转化为int型
{
s = s * 10.0 + *str - '0';
str++;
}
if (*str == '.') //到达小数点
{
str++;
}
while (*str >= '0' && *str <= '9') //处理小数部分,转换为浮点型
{
s = s + (*str - '0') / d;
d *= 10;
str++;
}
return s * (flag? -1.0 : 1.0); //负数则返回-1*s
}
void Swap(double *a, double *b)
{
double temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void Sort(double *Arr, int n) //冒泡排序
{
int i = 0;
int j = 0;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (Arr[j] > Arr[j + 1])
{
Swap(&Arr[j], &Arr[j + 1]);
}
}
}
}
void PrintArr(const double *Arr, int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
if (Arr[i]) //除去第一个执行命令的0.0,打印排序好的数字
{
printf ("%g ", Arr[i]);
}
}
printf ("\n");
}
int main(int argc, char *argv[])
{
int i = 0;
double Arr[100];
for (i = 0; i < argc; i++)
{
Arr[i] = StrToFloat(argv[i]); //将输入的浮点数字符串转换为浮点型放到数组中
}
Sort(Arr, argc); //排序
PrintArr(Arr, argc); //打印数组
return 0;
}
#define False 0
#define True 1
double StrToFloat(const char *str)
{
if (str == NULL)
{
return -1;
}
double s = 0.0;
double d = 10.0;
int flag = False;
while (*str == ' ') //跳过多余的空格
{
str++;
}
if (*str == '-') //负号处理,防止True标志,并跳至下一位
{
flag = True;
str++;
}
if (!(*str >= '0' && *str <= '9')) //如果遇到的第一个非数字则返回0.0
{
return s;
}
while (*str <= '9' && *str >= '0') //整数部分先转化为int型
{
s = s * 10.0 + *str - '0';
str++;
}
if (*str == '.') //到达小数点
{
str++;
}
while (*str >= '0' && *str <= '9') //处理小数部分,转换为浮点型
{
s = s + (*str - '0') / d;
d *= 10;
str++;
}
return s * (flag? -1.0 : 1.0); //负数则返回-1*s
}
void Swap(double *a, double *b)
{
double temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void Sort(double *Arr, int n) //冒泡排序
{
int i = 0;
int j = 0;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (Arr[j] > Arr[j + 1])
{
Swap(&Arr[j], &Arr[j + 1]);
}
}
}
}
void PrintArr(const double *Arr, int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
if (Arr[i]) //除去第一个执行命令的0.0,打印排序好的数字
{
printf ("%g ", Arr[i]);
}
}
printf ("\n");
}
int main(int argc, char *argv[])
{
int i = 0;
double Arr[100];
for (i = 0; i < argc; i++)
{
Arr[i] = StrToFloat(argv[i]); //将输入的浮点数字符串转换为浮点型放到数组中
}
Sort(Arr, argc); //排序
PrintArr(Arr, argc); //打印数组
return 0;
}
阅读全文
0 0
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7输出: -3 -1 2.1 5 7
- 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1
- 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来,
- 题目:输入 5 个数(含负数、小数)将它们按由小到大的顺序排列起来。提示:需要排序的数字通过参数传递进来。
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
- 2.输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
- 整数算法训练03—输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
- 初入C语言!整数算法训练2:输入5个数(含负数、小数),将它们按由小到大的顺序排列起来。
- demo3.c(输入5个数(含负数小数)按由小到大顺序排列)
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132
- 输入3个字符串,按由小到大的顺序排列。
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 23.输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- 矩阵快速幂
- 安卓开发之把布局转换成图片,再把图片保存至本地,踩坑后至终极解决方案
- Counting Divisors HDU
- JavaScript中的this
- Web报表系统葡萄城报表:自由报表
- 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7输出: -3 -1 2.1 5 7
- 数据结构——链式队列
- cookie 和session 的区别详解
- 以字节码通信时的乱码
- Android 开发之干货推荐
- 操作符函数及重载(2)
- QQ物联对接
- 如何在报表中实现数据预警
- 如何运行vue项目