c语言 求n do while编程,帮忙看看这道c语言编程题,关于do-while的

该程序旨在将1000到3000之间的阿拉伯数字转换为罗马数字,并持续运行直至用户输入'e'或'E'退出。然而,存在一个问题:程序在while循环中跳过了用户输入的环节,导致无法正常终止。问题可能出在条件判断语句上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求编一个程序,把1000到3000之间的阿拉伯数字转换成罗马数字,保持程序持续运行下去,直到用户输入“e”或者“E”。前面都不成问题,但是运行时,在while那里,直接循环,跳过让用户输入的选项。哪里有问题?帮忙看看。加急!!!!!!!谢谢

#include

要求编一个程序,把1000到3000之间的阿拉伯数字转换成罗马数字,保持程序持续运行下去,直到用户输入“e”或者“E”。前面都不成问题,但是运行时,在while那里,直接循环,跳过让用户输入的选项。哪里有问题?帮忙看看。加急!!!!!!!谢谢

#include

#include

int main()

{

char *a[][10]={"","I","II","III","IV","V","VI","VII","VIII","IX",

"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",

"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",

"","M","MM","MMM"};

int n, t, i, m, d, f;

char asd;

do

{

printf("Please enter an four-digit integer Arabic number from 1000 to 3000:");

scanf("%d",&n);

printf("%d=",n);

for(m=0, i=10000; m<4; m++, i=i/10)

{

d=n%i;

f=i/10;

t=d/f;

printf("%s", a[3-m][t+1]);

}

printf("\n");

printf("Press Enter to continue. If you want to end this program, please enter 'e' or 'E'.\n");

asd=getchar();

printf("\n");

}while(!(asd='e'||'E'));

system("pause");

return 0;

}

展开

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值