C++ //练习 5.13 下面显示的每个程序都含有一个常见的编程错误,指出错误在哪里,然后修改它们。

发布于:2024-02-12 ⋅ 阅读:(54) ⋅ 点赞:(0)

C++ Primer(第5版) 练习 5.13

练习 5.13 下面显示的每个程序都含有一个常见的编程错误,指出错误在哪里,然后修改它们。

(a) unsigned aCnt = 0, eCnt = 0, iouCnt = 0;
	char ch = next_text();
	switch(ch){
		case 'a': aCnt++;
		case 'e': eCnt++;
		default: iouCnt++;
	}
(b) unsigned index = some_value();
	switch(index){
		case 1:
			int ix = get_value();
			ivec[ix] = index;
			break;
		default:
			ix = ivec.size() - 1;
			ivec[ix] = index;
	}
(c) unsigned evenCnt = 0, oddCnt = 0;
	int digit = get_num() % 10;
	switch(digit){
		case 1, 3, 5, 7, 9:
			oddcnt++;
			break;
		case 2, 4, 6, 8, 10:
			evencnt++;
			break;
	}
(d) unsigned ival = 512, jval = 1024, kval = 4096;
	unsigned bufsize;
	unsigned swt = get_bufCnt();
	switch(swt){
		case ival:
			bufsize = ival * sizeof(int);
			break;
		case jval:
			bufsize = jval * sizeof(int);
			break;
		case kval:
			bufsize = kval * sizeof(int);
			break;
	}
环境:Linux Ubuntu(云服务器)
工具:vim

 

解释
(a) unsigned aCnt = 0, eCnt = 0, iouCnt = 0;
	char ch = next_text();
	switch(ch){
		case 'a': aCnt++; break;
		case 'e': eCnt++; break;
		case 'i':
		case 'o':
		case 'u': iouCnt++; break;
		default: break;
	}
(b) unsigned index = some_value();
	switch(index){
		case 1:
			int ix;
			ix = get_value();
			ivec[ix] = index;
			break;
		default:
			ix = ivec.size() - 1;
			ivec[ix] = index;
			break;
	}
(c) unsigned evenCnt = 0, oddCnt = 0;
	int digit = get_num() % 10;
	switch(digit){
		case 1:
		case 3:
		case 5:
		case 7:
		case 9: oddCnt++; break;
		case 2:
		case 4:
		case 6:
		case 8:
		case 10: evenCnt++; break;
		default: break;
	}
(d) constexpr unsigned ival = 512, jval = 1024, kval = 4096;
	unsigned bufsize;
	unsigned swt = get_bufCnt();
	switch(swt){
		case ival:
			bufsize = ival * sizeof(int);
			break;
		case jval:
			bufsize = jval * sizeof(int);
			break;
		case kval:
			bufsize = kval * sizeof(int);
			break;
		default: break;
	}
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到