qq_31956465 2015-10-24 16:59 采纳率: 75%
浏览 1603

一道ACM题,为什么会这样?

Description
输入一个字符串,判断其是否是C++的合法标识符。

Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。输入保证不为C++的关键字(保留字)。

Output
对于每组输入数据,输出一行。如果输入数据是C++的合法标识符,则输出"yes",否则,输出“no”。

Sample Input
3
12ajf
fi8x_a
ff ai_2
Sample Output
no
yes
no

这是我的代码;
#include
#include
using namespace std;
int main()
{
char a[49],f[1];
int e;
cin >> e;
for (int j = 1; j <= e; j++)
{
cin.ignore();
cin.getline(a, 50); int b = 0, c, d;
c = strlen(a);
d = c - 1;
if ((a[0] >= 65 && a[0] <= 90) || (a[0] == 95) || (a[0] >= 97 && a[0] <= 122))
{
for (int i = 1; i <= c-1; i++)
{
if ((a[i]57 && a[i]90 && a[i]122))
{
cout << "no" << endl; break;
}
else b++;
}
if (b == d)cout << "yes" << endl;
}
else cout << "no" << endl;
}
return 0;
}

为什么到第二次执行时就从第二个字符开始判断,第三次执行时又从第三个字符开始判断?图片说明

  • 写回答

1条回答 默认 最新

  • qq_26431047 2015-10-24 19:23
    关注

    你的图和你的问题没有矛盾

    评论

报告相同问题?

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线