|
这里显示一个警告,不知道怎么解决;然后请帮忙检查一下我这代码有没有什么要改进的地方,谢谢啦!
#include<iostream>
using namespace std;
int main()
{
int i, k, m, n, t, x;
int *a = new int[10000];
char *b = new char[10000];
cin >> b; // 以字符串方式输入高精度整数
for (n = 0, i = 0; b[i] != '\0'; i++)
{
n++;
a[i] = b[i] - 48;
}
cin >> k;
t = 0; m = 0; x = 0;
i = t + 1;
while (x < k && i <= n) // 删除的数字后已无递增区间,脱离循环
{
if (t >= 0 && a[t] < a[i]) // 出现递增,删除递增的首数字
{
a[t] = -1; // 删除的数字标记-1
while (t >= 0 && a[t] == -1)
t--; // 从删除数字的前一位非-1数字开始查找递增区间
x = x + 1; // x统计删除数字的个数
}
else t = i++;
}
for (i = 0, x = 0; x < n - k; i++) // 打印左边的n-k个非-1数字
{
if (a[i] != -1)
{
cout << a[i];
x++;
}
}
cout << endl;
delete[] b;
delete[] a;
return 0;
}
只是一个警告 你用的编译器版本应该比较高,他会做一个代码检查,我用2013 VC6.0并没有提示,你的是不是2017或者2019
|
上一篇: 《实用VC编程之玩转控件》第11课:Spin数值调节控件下一篇: RegQueryInfoKey查询返回错误
|