HDOJ 排序(pow函数的调用值及返回值类型)

注:pow函数包含在头文件math.h中,pow(a,b)既表示a的b次幂。pow函数的调用值与返回值都为浮点型,

既double N=pow(double a,double b)或float N(float a,float b)。

例题:

排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 36580    Accepted Submission(s): 10362

Problem Description

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

Input

输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。

Output

对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。

Sample Input

0051231232050775

Sample Output

0 77 12312320

这道题也算花了不少时间,首先是在算法上的错误,后来又是pow函数的类型错误。

代码如下:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int main()
{
	int L,len,i,j,t,k;
	double a[1100],b[1100];
	char str[1100];
	while(scanf("%s",str)!=EOF)
	{
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		j=0;t=0;
		L=strlen(str);
		for(i=0;i<L;i++)
		{
			if(str[i]=='5'&&i==0)//处理第一个数字为5的情况
			   continue;
			if(str[i]=='5'&&str[i-1]=='5')//处理有连续5出现的情况
			   continue;
			if(str[i]=='5')//处理遇到5时将5前面数存入数组b[t];
			{
				for(k=0;k<j;k++)
				{
					b[t]=b[t]+(a[k]*pow(10*1.0,(j-1-k)*1.0));//pow的类型及书写
				}
				j=0;
				memset(a,0,sizeof(a));
				t++;
				continue;
			}

			a[j++]=str[i]-'0';

			if(str[i]!='5'&&i==L-1)//处理最后一个数字不是5的情况
			{
			   	for(k=0;k<j;k++)
				{
					b[t]=b[t]+(a[k]*pow(10*1.0,(j-1-k)*1.0));
				}
				j=0;
				t++;
			}
		}
		sort(b,b+t);
		printf("%.0lf",b[0]);//注意输出为double型,不输出小数位
		for(i=1;i<t;i++)
		  printf(" %.0lf",b[i]);
		printf("\n");
	}
	return 0;
}
时间: 2024-12-24 02:40:23

HDOJ 排序(pow函数的调用值及返回值类型)的相关文章

javascript函数的声明,及返回值

<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--js中声明函数的方法--> <script type="text/javascript"> //因为javascript是弱类型的语言,所以参数不需要加类型.函数的也不需要像c#那样要求所以路径都需要有返回值(这个不像c#语言,而且c#

如何在函数外部获取ajax的返回值?

问题:今天在开发的过程中,遇到一个小问题,就是在将ajax获取数据部分的代码封装在函数内,将ajax获取的值作为函数的返回值. 抱着爱钻研的精神,最终得到了解决方案,在这里整理出来方便以后查阅. 尝试1:同步调用,直接在ajax函数中return值 function getAjax(){ var result = 1; $.ajax({ url : 'test.php', type : "post", data : {}, async : false, success : functi

C#中的函数(二) 有参有返回值的函数

接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写一个小例子,用来测试 跟上一个例子差不多,区别就是MyFunction有二个参数a,b,返回二个数相加的值 F5调试运行,中断后转到反汇编 这里很明显看到不同了 这里就得讲到参数传递的方式,参数从左向右依次存入寄存器ecx edx 但是不同的编程语言有不同的传递参数的方式,有空再写一篇文章介绍下 要

JS中函数的调用和this的值

调用每一个函数会暂停当前函数的执行,传递控制权和参数给新函数.除了声明时定义的形式参数,每个函数还接收两个附加的参数:this 和 arguments. 参数this在面向对象编程中非常重要,他的值取决于调用的模式. 在JS中一共有4中调用模式:方法调用模式.函数调用模式.构造器调用模式和apply调用模式.这些模式在如何初始化关键参数this上存在差异. 方法调用模式 当一个函数被保存为对象的一个属性时,我们称为一个方法.当一个方法被调用时,this被绑定到该对象. var myObject

&lt;10&gt; 无参无返回值+ 无参有返回值函数的定义+有参无返回值函数定义+ 有参有返回值函数定义+函数的参数+函数的参数传递过程

无参无返回值: 1 #include <stdio.h> 2 3 4 /** 5 * 定义一个无参无返值函数 6 * 7 */ 8 void print_line(){ 9 10 printf("-----------------\n"); 11 12 } 13 14 15 16 int main(int argc, const char * argv[]) { 17 //调用函数 18 print_line(); 19 20 return 0; 21 } 无参有返回值函数

Process类调用exe,返回值以及参数空格问题

(方法一)返回值为int fileName为调用的exe路径,入口参数为para,其中多个参数用空格分开,当D:/DD.exe返回值为int类型时. Process p = new Process(); string fileName = @"D:/DD.exe"; string para ="aa bb"; ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(fileName, para); p.S

C++基础知识(八)---函数返回值(返回值,返回指针,返回对象,返回引用)---引用---复制构造函数(拷贝构造函数)

一.函数返回值 1.返回值: int test () { int a=1; return a; } 返回值时最简单的方式,它的操作主要在栈上,变量a在函数结束后会删除,为了返回a的值,系统会在内部建立一个临时变量保存a的值,以返回给调用该函数的表达式,调用结束后变量便不再存在.如果a是简单地数据类型也无所谓,不是很占用内存,如果a是大的自定义类型的数据,那么对a的复制将会占用比较大的内存.函数返回值是右值,不能进行运算符操作. 2.返回指针: int *test2() { int *b=new

函数(定义,有无返回值,参数以及传参问题)

1.定义 def test(): x+=1 return x好处:*减少代码重用 *保持一致性和易维护性 *可扩展性2.关于有无返回值 无:过程就是没有返回值的函数 有:一个————返回本身 def test(): s=[5,4,32,556,22] return s print(test()) #打印结果 [5, 4, 32, 556, 22] 多个————返回元祖 def test(): l=[5,4,32,556,22] s='fjy' return l,s print(test()) #

JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

“JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是将一组需求分解成一组函数与数据结构的技能. 1.函数的功能 代码重复性使用 模块化编程 2.语法: 使用函数前要先定义才能使用 函数定义有三个部分:函数名,参数列表,函数体 格式: 1 function 函数名([参数1, 参数2, ...]){ 2 3 函数执行部分; 4 5 return 表达式; 6 7