当前位置: 代码迷 >> C语言 >> [求助]windous为什么不让运行
  详细解决方案

[求助]windous为什么不让运行

热度:173   发布时间:2007-10-21 13:39:47.0
[求助]windous为什么不让运行
输入正整数N(N<1000),产生对应的英文字符串并输出。例如
1 ONE
2、TWO
3、THREE
……
11 ELEVEN
135 ONE HANDRED TRIRTY FIVE


昨天问了这题的算法
今天试着写了,但程序无法运行,请版主指教

/*HaPpY随心*/
#include <stdio.h>
#include <string.h>
int main()
{
int i,n,k,m;
char st[9];
char *day[9]={"ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT",
"NINE"};
char *teen[9]={"ELEVEN","TWELVE","THITRTEEN","FOURTEEN","FIFTEEN","SIXTEEN",
"SEVENTEEN","EIGHTEEN","NINETEEN"};
char *tenth[8]={"TWENTY","THIRTY","FOURTY","FIFTY","SIXTY","SEVENTY",
"EIGHTY","NINETY"};
char *a[2]={"TEN","HUNDRED"};
printf("请输入1000以内正整数:\n");
scanf("%s",st);
k=strlen(st);
for(i=0;i<k;i++)
{
if(st[i]>'9'||st[i]<'1') return 0;
}
switch(k)
{
case 1:
n=int(st[0]-'0');
printf("%s\n",*day[n-1]);
break;
case 2:
if(st[1]=='1')
{
if(st[0]=='0') printf("%s\n",*a[0]);
else
{
n=int (st[0]-'0');
printf("%s\n",*teen[n-1]);
}
}
else
{
i=int(st[1]-'0');
n=int(st[0]-'0');
}
printf("%s-%s",*tenth[i-2],*day[n-1]);
break;
case 3:
m=int(st[2]-'0');
if(st[1]=='1')
{
if(st[0]=='0') printf("%s %s %s\n",*day[m-1],*a[1],*a[0]);
else
{
n=int(st[0]-'0');
printf("%s %s %s\n",*day[m-1],*a[1],*teen[n-1]);
}
}
else
{
i=int(st[1]-'0');
n=int(st[0]-'0');
}
printf("%s %s %s-%s",*day[m-1],*a[1],*tenth[i-2],*day[n-1]);
break;
default:
printf("error!");
return 0;
}
return 0;

}
搜索更多相关的解决方案: windous  ELEVEN  int  运行  

----------------解决方案--------------------------------------------------------
/*路过,修改了一下*/
#include <stdio.h>
#include <string.h>
int main()
{
int i,n,k,m;
char st[9];
char *day[10]={"ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT",
"NINE"};
char *teen[10]={"TEN","ELEVEN","TWELVE","THITRTEEN","FOURTEEN","FIFTEEN","SIXTEEN",
"SEVENTEEN","EIGHTEEN","NINETEEN"};
char *tenth[8]={"TWENTY","THIRTY","FOURTY","FIFTY","SIXTY","SEVENTY",
"EIGHTY","NINETY"};
char *a[2]={"TEN","HUNDRED"};
printf("请输入1000以内正整数:\n");
scanf("%s",st);
k=strlen(st);
for(i=0;i<k;i++)
{
if(st[i]>'9'||st[i]<'0') return 0;
}
switch(k)
{
case 3:
n=(int)(st[k-3]-'0');
printf("%s %s",day[n],a[1]);
if(st[k-2]=='0'&&st[k-1]=='0') break;
printf(" AND ");
case 2:
if(st[k-2]=='1')
{
n=(int) (st[k-1]-'0');
printf("%s\n",teen[n]);
break;
}
else if(st[k-2]>'1')
{
n=(int)(st[k-2]-'0');
printf("%s",tenth[n-2]);
if(st[k-1]=='0') break;
printf("-");
}
case 1:
n=(int)(st[k-1]-'0');
printf("%s\n",day[n]);
break;
default:
printf("error!");
return 0;
}
getch();
return 0;

}
----------------解决方案--------------------------------------------------------
回复:(windlzf)/*路过,修改了一下*/#include
恩,谢谢指导,
修改之处我会认真看的;

另外getch();
这句是否可以删除?
----------------解决方案--------------------------------------------------------
嗯 我在win-tc下调试的,getch()用来暂停
我的DEV-C++每次启动都要初始化很久,不知道为什么
----------------解决方案--------------------------------------------------------

getch();
不可以删掉
你自己删掉以后自己再运行一遍 就会知道


----------------解决方案--------------------------------------------------------
回复:(windlzf)嗯 我在win-tc下调试的,getch()用来...
我用的平台是c-free 4.0版
不把getch();删除
编译通不过。。。
----------------解决方案--------------------------------------------------------
以下是引用HaPpY随心在2007-10-22 16:16:35的发言:
我用的平台是c-free 4.0版
不把getch();删除
编译通不过。。。

因为你没有写上conio.h头文件



by 雨中飞燕 C/C++讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
----------------解决方案--------------------------------------------------------

回复:(雨中飞燕)以下是引用HaPpY随心在2007-10-22 ...
我看了conio.h里对getch的描述是:#define getch getchar
那getch();写成getchar();就可以运行。
表示的意思一样么?
----------------解决方案--------------------------------------------------------
以下是引用HaPpY随心在2007-10-22 16:29:18的发言:
我看了conio.h里对getch的描述是:#define getch getchar
那getch();写成getchar();就可以运行。
表示的意思一样么?

不一样,并且是非常大的差别



by 雨中飞燕 C/C++讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
----------------解决方案--------------------------------------------------------

回复:(雨中飞燕)以下是引用HaPpY随心在2007-10-22 ...
楼上有人说getch();是用来暂停的。。
可我在c-free中,加与不加都一样的,
可以给我一个你们用的编程工具么?
C和C++都可以。
----------------解决方案--------------------------------------------------------
  相关解决方案