检验C语言合法标识符的题目,为什么我的代码wrong answer?

网址:http://acm.hdu.edu.cn/showproblem.php?pid=2024
#include <iostream>
#include <string>
using namespace std;

int main()
{
int n;
char ch[50];
int index;

char temp[20];
int i;
int flag;

string sys[32] = {"auto", "break", "case", "char", "const", "continue", "default",
"do", "double", "else", "enum", "extern", "float", "for", "goto",
"if", "int", "long", "register", "return", "short", "signed",
"sizeof", "static", "strUCt", "switch", "typedef", "union", "unsigned",
"void", "volatile", "while"};

cin>>n;
cin.get();
for(i=0; i<n; i++)
{

for(index=0; index<50; index++)
ch[index]=0;
cin.getline(ch,sizeof(ch));

for(index=0; index<32; index++)
{
strcpy(temp,sys[index].c_str());
if(strcmp(ch,temp)==0)
break;
}
if(index!=32)
{
cout<<"no"<<endl;
continue;
}

if(!((ch[0]=='_')||(ch[0]>='A' && ch[0]<='Z') || (ch[0]>='a' && ch[0]<='z')))
cout<<"no"<<endl;
else
for(index=49; index>0; index--)
{
if((ch[index]=='_')||(ch[index]>='A' && ch[index]<='Z') || (ch[index]>='a' && ch[index]<='z'))
{
flag=index;
break;
}
}//end for
for(index=1; index<=flag; index++)
{

if(ch[index]=='_'||(ch[index]>='A' && ch[index]<='Z') || (ch[index]>='a' && ch[index]<='z')
||(ch[index]>='0' && ch[index]<='9'))
continue;
cout<<"no"<<endl;
break;
}
}

return 0;
}

第1个回答  2009-09-27
首先,buffer不够大。

检验C语言合法标识符的题目,为什么我的代码wrong answer?
首先,buffer不够大。

C语言合法标识符(奇怪)
while(cin>>n) 这里变成死循环了 改成 cin>>n;while(--n) 后面还要改,自己先试试,不会了再问

判断其是否是C的合法标识符?
yes 还有一点就是如果输入 dsgf+-*^%报错 除0-9还有a-z,A-Z _ $ 之外的字符,就可以了,只要考虑这么多就可以前几天就AC了这道题,你自己再想想吧。

C语言中,为什么会报这样的错?
1、一般是你在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses — 不明确的运算需要用括号括起2: Ambiguous symbol xxx — 不明确的符号3: Argument list syntax error — 参数表...

C++语言合法标识符
C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注...

c语言编程中出现的纠错英文语句是啥意思?
Define directive needs an identifier (Define指令必须有一个标识符) 分析与处理:#define 后面的第一个非空格符必须是一个标识符,若该位置出现其它字符,则会引起此类错误。 Division by zero (除数为零) 分析与处理:当源文件的常量表达式出现除数为零的情况,则会造成此类错误。 Do statement must have while (...

C语言 随机生成10个加法算式,输入每个算式的计算结果,判断计算是否正确...
=0){result = a \/ b;}break;default:break;}return result;}int main(){int a1, b1, c1,jieguo,shuru;int jishu = 0;int secore=0;srand((unsigned)time(NULL));for (int i = 0; i < 3000; i++){a1 = rand() % 100;b1 = rand() % 100;c1 = rand() % 4;jieguo = ...

设计一个C语言程序计算长方体体积和表面积,长宽高通过键盘输入???
1、C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2、C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序...

为什么我的C语言程序在调用函数时出现错误?
我也去答题访问个人页 关注 展开全部 1、一般是你在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses — 不明确的运算需要用括号括起2: Ambiguous symbol xxx — 不明确的符号...

为什么c语言调用函数时会报错?
我也去答题访问个人页 关注 展开全部 1、一般是你在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses — 不明确的运算需要用括号括起2: Ambiguous symbol xxx — 不明确的符号3:...

相似回答
大家正在搜