实数的方法"/>
字符串转换成实数的方法
今天遇到一个题目:
输入五个数(含负数、小数),将它们按有小到大的顺序排列起来
提示:需要排列的数字通过参数传递进来,
例如:输入:./a.out -1 2.1 -3 5 7 输出:-3 -1 2.1 5 7
这里就用到了atof函数,目的是将命令行输入的数字字符串转化成浮点型数字,然后再进行简单排序。
1、原型:double atof(char *str);
2、说明:参数str字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符‘\0’)字符时停止转换,返回实数;
3、头文件:#include <stdlib.h>
4、code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int i,j;
float arr[10];
for(i = 1;i < argc;i++)
{
arr[i-1] = atof(argv[i]);
}
float temp;
for(i = 0;i < 5; i++)
{
for(j = 0;j < 4-i; j++)
{
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i = 0;i < 5;i++)
{
printf("%.3f ",arr[i]);
}
printf("\n");
return 0;
}
这里只是介绍atof的用法,所以我选择的是最简单的冒泡排序,原型是 double atof(char *str);
相应的,还有字符串转整数值函数 int atoi(char *str) 和字符串转长整型函数 long atol(char *str);
更多推荐
字符串转换成实数的方法
发布评论