鱼C论坛

 找回密码
 立即注册
查看: 1052|回复: 4

[已解决]请大家帮我找一下错误

[复制链接]
发表于 2020-3-30 10:08:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{     
         int a,b;
                 float c;
                 printf("请输入您的年龄:");
                 scanf("%d",&a);
                 if( a > 18 )
                 {
                         printf("您好,请输入您想要充值的金额:");
                         scanf("%.2f",&c);
                         if( c > 5 && c < 10000  )
                         {
               printf("充值成功!金额为%.2f",c);                         
                         }
                         else
                         {
                           printf("请您核对您的充值金额!充值金额下限为5元!上限为10000元!");
                         }
                 }
                 else
                 {
                         printf("您未满十八周岁,禁止充值!");
                 }

                 
         
}
这是错误的提示:

Compiling...
1.c
D:\c语言练手\s\1.c(6) : error C2018: unknown character '0xa3'
D:\c语言练手\s\1.c(6) : error C2018: unknown character '0xbb'
D:\c语言练手\s\1.c(7) : error C2146: syntax error : missing ';' before identifier 'printf'
执行 cl.exe 时出错.

s.exe - 1 error(s), 0 warning(s)
最佳答案
2020-3-30 10:39:09
Juniorboy 发表于 2020-3-30 10:27
啊啊,看到了,哈哈哈,谢谢啦,请您帮我解释一下什么是位宽呢,我刚才百度没看懂,小数宽度指的是点儿几 ...

直接拿例子说事儿~~
printf("%m.nf",c)
这里面格式化字符 %m.nf  就是float类型打印,其中m是最小位宽度,n是小数点后的位数。解释一下m为什么叫最小位宽度,若m写的过小不足以显示该数据的话,就会全部显示出来,只有当m大于数据的位数,才会起作用,m更多用于数据上下对齐。

在scanf的时候可以带有m,但是不能带n。带m是读取的字符个数最多为m个,而不是最小位宽度了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-30 10:12:10 | 显示全部楼层
两处错误,
1、第6行,float c; 分号写错了,你写成中文分号了
2、第12行,scanf,格式化符号不能设定位宽和小数宽度
#include <stdio.h>

int main()
{     
         int a,b;
                 float c;
                 printf("请输入您的年龄:");
                 scanf("%d",&a);
                 if( a > 18 )
                 {
                         printf("您好,请输入您想要充值的金额:");
                         scanf("%f",&c);
                         if( c > 5 && c < 10000  )
                         {
               printf("充值成功!金额为%.2f",c);                         
                         }
                         else
                         {
                           printf("请您核对您的充值金额!充值金额下限为5元!上限为10000元!");
                         }
                 }
                 else
                 {
                         printf("您未满十八周岁,禁止充值!");
                 }                     
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 10:27:39 | 显示全部楼层
sunrise085 发表于 2020-3-30 10:12
两处错误,
1、第6行,float c; 分号写错了,你写成中文分号了
2、第12行,scanf,格式化符号不能设定位 ...

啊啊,看到了,哈哈哈,谢谢啦,请您帮我解释一下什么是位宽呢,我刚才百度没看懂,小数宽度指的是点儿几点儿几吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 10:39:09 | 显示全部楼层    本楼为最佳答案   
Juniorboy 发表于 2020-3-30 10:27
啊啊,看到了,哈哈哈,谢谢啦,请您帮我解释一下什么是位宽呢,我刚才百度没看懂,小数宽度指的是点儿几 ...

直接拿例子说事儿~~
printf("%m.nf",c)
这里面格式化字符 %m.nf  就是float类型打印,其中m是最小位宽度,n是小数点后的位数。解释一下m为什么叫最小位宽度,若m写的过小不足以显示该数据的话,就会全部显示出来,只有当m大于数据的位数,才会起作用,m更多用于数据上下对齐。

在scanf的时候可以带有m,但是不能带n。带m是读取的字符个数最多为m个,而不是最小位宽度了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-30 10:55:12 | 显示全部楼层
sunrise085 发表于 2020-3-30 10:39
直接拿例子说事儿~~
printf("%m.nf",c)
这里面格式化字符 %m.nf  就是float类型打印,其中m是最小位宽 ...

真棒!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表