可以帮我看下哪里出问题吗?

zhangyue_lala 2017-10-17 04:50:43
#include<stdio.h>
#include<stdlib.h>
#include<queue>

std::queue<int> queArr[10];
std::queue<int> collect;

int main(int argc, char* argv[]){

char buffut[100];
int i = 0;
while((buffut[i] = getchar()) != '\n')
i++;
buffut[i] = '\0';
while(buffut[i]){

switch(buffut[i]){
case '0':
queArr[0].push(0);break;
case '1':
queArr[1].push(1);break;
case '2':
queArr[2].push(2);break;
case '3':
queArr[3].push(3);break;
case '4':
queArr[4].push(4);break;
case '5':
queArr[5].push(5);break;
case '6':
queArr[6].push(6);break;
case '7':
queArr[7].push(7);break;
case '8':
queArr[8].push(8); break;
case '9':
queArr[9].push(9); break;
default:
printf("error input\n");
return -1;

}

i++;
}
i = 0;

printf("%d ",queArr[0].front());

while(i<10){

while(queArr[i].size() != 0){

collect.push(queArr[i].front());
queArr[i].pop();
}
i++;
}

while(collect.size() != 0){

printf("%d ", collect.front());
collect.pop();

}

putchar('\n');

return 0;
}
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
csulizhang 2017-10-17
  • 打赏
  • 举报
回复
while((buffut[i] = getchar()) != '\n') i++; buffut[i] = '\0'; 输入字符,直到输入回车为止,并且给buffut添加结束符号 接下来,你再调用while(buffut[i]),问题就在这里,注意,这个时候的i并不是从0开始,而是之前无数次i++之后的结果,那么此时,你的while(buffut[i])就是上面定义的结束符,没意义了,所以知道该怎么办了吧
  • 打赏
  • 举报
回复
改了几处,自己体会一下,为什么

#include<stdio.h>
#include<stdlib.h>
#include<queue>

std::queue<int> queArr[10];
std::queue<int> collect;

int main(int argc, char* argv[]) {

	char buffut[100];
	int i = 0;
	while ((buffut[i] = getchar()) != '\n')
		i++;
	buffut[i] = '\0';
	i = 0;
	while (buffut[i]) {

		switch (buffut[i]) {
		case '0':
			queArr[0].push(0);break;
		case '1':
			queArr[1].push(1);break;
		case '2':
			queArr[2].push(2);break;
		case '3':
			queArr[3].push(3);break;
		case '4':
			queArr[4].push(4);break;
		case '5':
			queArr[5].push(5);break;
		case '6':
			queArr[6].push(6);break;
		case '7':
			queArr[7].push(7);break;
		case '8':
			queArr[8].push(8); break;
		case '9':
			queArr[9].push(9); break;
		default:
			printf("error input\n");
			return -1;

		}

		i++;
	}
	i = 0;

	//printf("%d ", queArr[0].front());

	while (i < 10) {

		while (queArr[i].size() != 0) {
			collect.push(queArr[i].front());
			queArr[i].pop();
		}
		i++;
	}

	while (collect.size() != 0) {
		printf("%d ", collect.front());
		collect.pop();

	}

	putchar('\n');

	return 0;
}
狂奔吧码奴 2017-10-17
  • 打赏
  • 举报
回复
不知道你要干啥。
前端人年终技术升级 2h极速入门Vue3.0 年终岁尾,又到了打工人写总结的时候,各位前端工程师,今年你的总结里是否有“Vue3.0”的身影呢? 9月Vue3.0问世,对前端人来说,这是技术升级的一大步,同样也是一场学习效率的角逐。  不论你是: Vue2.x的老用户  or  没有接触过Vue的小白; 前端工程师  or  想从事前端岗位的学生   只要你与前端工作有关, Vue3.0的问世都可能是你脱颖而的好机会! 抢先进阶,成为首批Vue3.0开发者,升职、加薪、找工作一路绿灯!   你为Vue3.0入门,准备了多少学习时间? 三天?五天?还是七天? 完全不需要!本门课程可以您在2小时内极速入门。 即刻学习 年终完成项目升级 Vue在全球拥有超130万用户,在不同场景中均有应用;在国内Vue是最火热的前端框架,迭代后Vue3.0框架更快捷、精悍,容易维护,同时还添加了新特性,对于前端工作者来说,这是一次重要的进阶。   To 学生党&求职者:提升简历丰富度、提高自身价值,增加面试成功的几率 To 前端工程师:完成现有项目的优化升级,全面适配Vue3.0,年终总结上又可以添上一笔啦! 精华知识+名师指导 Vue小白也能快速进阶 问:没有用过Vue2.0,可以直接学习Vue3.0吗? 答:没问题,本门课程着重于基础夯实,Vue小白也能轻松掌握。   问:学完本门课程,我可以得到什么? 答:你可以建立对Vue知识的认知;       了解Vue的基本使用与调试方法;       掌握Vue的常用指令。   问:2个小时的课程,知识要点全面吗? 答:课程围绕Vue3.0入门开讲,全套知识要点浓缩在2个小时的课程中,学员每一分钟都可以Get满满干货!   问:师资力量有保障吗? 答:本门课程邀请到了南京大学软件工程硕士汤小洋,作为CSDN学院金牌讲师,汤小洋老师在本站拥有超15万学员。  汤小洋老师曾就职于擎天科技、中软国际、华为等上市公司,从事软件开发及软件教育培训多年,具有丰富的实战经验,授课耐心细致,通俗易懂,风趣幽默,善于将复杂问题简单化,曾为多家知名企业进行软件开发实训。

64,660

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧