一个程序。运行总是出错。大家帮我看看。

Thorwein 2007-09-19 12:12:44
#include <stdio.h>
const int F=3;// #define F 3

struct Dtran //¹¹Ôìת»»±í
{
int input_a;
int input_b;
}T[4]={{1,2},{1,3},{1,2},{1,2}};

int move(int s,char c ) //ת»»º¯Êý
{
if(c!='a'&&c!='b')
return 0;
return c=='a'?T[s].input_a:T[s].input_b;
}


int main(int argc, char *argv[])
{
char *string=argv[1];//¶ÁÈë²ÎÊý
int next_s=0;//³õʼ״̬£¬"ÏÂÒ»¸ö"״̬;

int i=0;
char nextchar=string[0];

while('\0'!=nextchar)
{
if(!(next_s=move(next_s,nextchar)))
{
next_s=!F;//²»½ÓÊÜ״̬
break;
}
nextchar=string[++i];
}

if(next_s==F)
printf("Your string are accepcted!\n");
else
printf("Your string are refused!\n");

return 0;
}

--------------------------
编译可以通过。运行提示错误。“0x00401324”指令引用的“0x00000000”内存。
昨天运行是成功的。今天不知怎么搞的拿去交作业的时候,就不行了。我晕咯。
大家帮我看看 谢谢 :)
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Thorwein 2007-09-19
  • 打赏
  • 举报
回复
在给呢! 猴急什么! +_+!一直没给成功! 我在试试。 谢谢你呀。
星羽 2007-09-19
  • 打赏
  • 举报
回复
分捏 - -
Thorwein 2007-09-19
  • 打赏
  • 举报
回复
真想打自己一巴掌。-_-0 问题解决了 。谢谢大家。
cceczjxy 2007-09-19
  • 打赏
  • 举报
回复
你运行时没加参数吧
星羽 2007-09-19
  • 打赏
  • 举报
回复
改成输入方式把

#include <stdio.h>
const int F=3;// #define F 3

struct Dtran //¹¹Ôìת»»±í
{
int input_a;
int input_b;
}T[4]={{1,2},{1,3},{1,2},{1,2}};

int move(int s,char c ) //ת»»º¯Êý
{
if(c!='a'&&c!='b')
return 0;
return c=='a'?T[s].input_a:T[s].input_b;
}


int main(int argc, char *argv[])
{
char string[128];
int next_s=0;//³õʼ״̬£¬"ÏÂÒ»¸ö"״̬;

int i=0;
char nextchar = 0;

scanf("%s", string);

nextchar = string[0];

while('\0'!=nextchar)
{
if(!(next_s=move(next_s,nextchar)))
{
next_s=!F;//²»½ÓÊÜ״̬
break;
}
nextchar=string[++i];
}

if(next_s==F)
printf("Your string are accepcted!\n");
else
printf("Your string are refused!\n");

return 0;
}

星羽 2007-09-19
  • 打赏
  • 举报
回复
因为 char *string=argv[1]; 是空的

你要用命令行参数的方式启动

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧