早教吧作业答案频道 -->其他-->
一个c++程序超时问题输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个
题目详情
一个c++程序超时问题
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000. 输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成. Output对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行. Sample Input0051231232050775 Sample Output0 77 12312320问题要求时间是1000ms,我的程序如下,总是超时,求指导#include "stdio.h"#include "stdlib.h"#include "string.h"int cmp (const void *a,const void *b){ return *(int*)a>*(int*)b?1:-1;}int main(){ int i,j,n,flag; char c[1000]; long int number[500],tempsum; while((scanf("%s",c))) { i=strlen(c),j=0; for(n=0;j<i;n++) { flag=0; tempsum=0; for(;c[j]!='5'&&j<i;j++) { tempsum=tempsum*10+(c[j]-'0'); flag=1; } number[n]=tempsum; j++; if(!flag) n--; } qsort(number,n,sizeof(long int),cmp); for(i=0;i<n;i++) printf("%ld ",number[i]); printf("\n"); } return 0;}
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000. 输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成. Output对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行. Sample Input0051231232050775 Sample Output0 77 12312320问题要求时间是1000ms,我的程序如下,总是超时,求指导#include "stdio.h"#include "stdlib.h"#include "string.h"int cmp (const void *a,const void *b){ return *(int*)a>*(int*)b?1:-1;}int main(){ int i,j,n,flag; char c[1000]; long int number[500],tempsum; while((scanf("%s",c))) { i=strlen(c),j=0; for(n=0;j<i;n++) { flag=0; tempsum=0; for(;c[j]!='5'&&j<i;j++) { tempsum=tempsum*10+(c[j]-'0'); flag=1; } number[n]=tempsum; j++; if(!flag) n--; } qsort(number,n,sizeof(long int),cmp); for(i=0;i<n;i++) printf("%ld ",number[i]); printf("\n"); } return 0;}
▼优质解答
答案和解析
while((scanf("%s",c))) 这里面要有& scanf("%s",&c)
注意涉及到scanf都有&,其他错误慢慢自己琢磨
如果搞不出来的话,可以告诉我题号我把代码给你给参考
注意涉及到scanf都有&,其他错误慢慢自己琢磨
如果搞不出来的话,可以告诉我题号我把代码给你给参考
看了一个c++程序超时问题输入一行...的网友还看了以下:
关于股票的计算题某一股票其上一年度的每股收益为0.6元,如果预期该股票以后每年的收益维持在该水平, 2020-05-12 …
阅读材料:1919年5月2日,北京《晨报》发表《外交警报敬告国民》一文,指出:“胶州亡矣!山东亡矣 2020-05-13 …
一元二次方程的应用题.题目有点长,小丽,小红和小强三为同学到某超市参加了社会实践活动,他们进行某种 2020-05-16 …
excel如何在一个单元格中显示公式,另一个单元格中显示该公式的计算结果?如何在一个单元格中显示公 2020-05-16 …
要把甲乙两种不同价格的糖果混合,甲种糖果每千克10.4元,乙种糖果每千克18.8元,现在要求混合后 2020-05-20 …
如果某股票销售价格为25元,该股票的看跌期权的执行价格为20元,如果该期权还有90天到期,那么,该看 2020-05-22 …
甲单位接受乙单位委托的研究任务完成一项发明创造。在双方事前无协议约定的情况下,对该成果的专利 2020-05-22 …
在Word2003编辑中,如果需要连续的用“格式刷”按键复制格式,应该()“格式刷”按钮。 2020-05-31 …
三年级数学暑假作业把1个大方格分成16个小方格,每个小方格分别画有一种水果,方格右面,下边分别是每 2020-06-10 …
某商品有甲乙两种型号,单价分别为5元和6元.已知价格低的甲型商品的销售量是乙型商品的2倍,试求该商 2020-06-26 …