Juniorboy 发表于 2020-3-30 10:08:22

请大家帮我找一下错误

#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)

sunrise085 发表于 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("您未满十八周岁,禁止充值!");
               }                     
}

Juniorboy 发表于 2020-3-30 10:27:39

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

啊啊,看到了,哈哈哈,谢谢啦,请您帮我解释一下什么是位宽呢,我刚才百度没看懂,小数宽度指的是点儿几点儿几吧

sunrise085 发表于 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个,而不是最小位宽度了

Juniorboy 发表于 2020-3-30 10:55:12

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

真棒!谢谢!
页: [1]
查看完整版本: 请大家帮我找一下错误