一个很诡异的问题
  • 板块P2104 二进制
  • 楼主Domoo
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/13 02:15
  • 上次更新2023/11/13 13:14:24
查看原帖
一个很诡异的问题
535848
Domoo楼主2023/11/13 02:15

如图,我是参考题解思路写的,但是发生了一件诡异的事,就是明明最后结束符'\0'在c[n]并且c[n-1]也有值但是直接用cout它只输出到c[n-2]...真的很费解,然而用for循环它的输出就没问题

#include<iostream>
#include<cstdio>
using namespace std;

int n, m;
string c;
char oper;

int main()
{
	cin >> n >> m >> c;
	while(m--){
		cin >> oper;
		if(oper == '*') c[n++] = '0';
		if(oper == '/') c[--n] = '\0';
		if(oper == '+'){
			int i = n - 1;
			while(c[i] == '1') c[i--] = '0';
			c[i] = '1';
		}
		if(oper == '-'){
			int i = n - 1;
			while(c[i] == '0') c[i--] = '1';
			c[i] = '0';
		}
	}
	for(int i = 0; i < n; i++) 
		cout << c[i];
//	cout << c[4];
//	cout << '\n' << c;
	
	return 0;
}
 
2023/11/13 02:15
加载中...