帮帮忙啊,再线等,十万火急啊!!!!!!!!!!!
#include <stdio.h>
void main()
{
char shijian;
float benji;
double quchu;
printf( "请输入您要存入的金额: ");
scanf( "%d ",&benji);
printf( "请输入你要存的时间(一年、两年、三年、或五年: ");
fflush(stdin);
scanf( "%c ",&shijian);
if(shijian== '一 '){
quchu=benji*(1+2.25/100);
printf( "一年后取出的金额为:%f ",quchu);
}
if(shijian== '两 '){
quchu=benji*(1+2.7/100);
printf( "两年后取出的金额为:%f ",quchu);}
else if(shijian== '三 '){
quchu=benji*(1+3.24/100);
printf( "三年后取出的金额为:%d ",quchu);}
else if(shijian== '五 ')
{ quchu=benji*(1+3.6/100);
printf( "五年后取出的金额为:%f ",quchu);}
else
printf( "您的输入有误,请重试 ");
}
为什么,我输入相应的字符它不给我算啊
[解决办法]
"一 " 是两个字符,不是一个 char
[解决办法]
汉字也是两个字符,不能 '两 ' '三 ' '五 '
[解决办法]
汉字占两个字节,没办法用 ' ',
[解决办法]
jf
[解决办法]
接分,呵呵。
[解决办法]
"一 " 是两个字符,不是一个 char
--------------------------------
"一 "是三个字符,一 上汉字算两个字符,再加一个结束符 '\0 '
[解决办法]
if(shijian== '一 ')
--------------------
这条语句要改:
fflush(stdin);
----------------
不要这样用,虽然你在VC下这样可以编译运行,但是在gcc等编译器下会报错的,fflush(stdin);是一个未定义的行为,c99中并没有规定有这样的用法,只是一些编译器默认了种方法,在这可以用一个getchar ();来替换
[解决办法]
char shijian;
--------------
改:char shijian[3];
scanf( "%c ",&shijian);
if(shijian== '一 ')
--------------------
这条语句要改:
scanf ( "%s ", shijian);
if (strcmp (shijiang, "一 " ) == 0)
fflush(stdin);
----------------
不要这样用,虽然你在VC下这样可以编译运行,但是在gcc等编译器下会报错的,fflush(stdin);是一个未定义的行为,c99中并没有规定有这样的用法,只是一些编译器默认了种方法,在这可以用一个getchar ();来替换
[解决办法]
错误不只那一个,你的字符输入有好多是在 智能ABC 下输入的;
scanf( "%d ",&benji);中的benji是 float 你怎么能用%d输入?
顺便在吧 排版改改~
[解决办法]
在TC下 尽量使用英文 UCDOS对中文支持不太好