求解,scanf函数中数组表字符串如何运用

该程序段对比了使用`%s`和`%c`格式化字符串从标准输入读取数据时的区别。在第一段代码中,正确地使用`%s`读取字符串到字符数组`a`。而在第二段代码中,尝试用`%c`读取字符串并指定`&a[9]`作为目标,导致了问题。由于`%c`会按单个字符读取,这将导致意外的结果,可能只读取一个字符或者在遇到空格时停止,因此输出为0。
摘要由CSDN通过智能技术生成
#include<cstdio>
int main()
{
    char a[10];
    double s,m;
    scanf("%s%lf%lf\n",a,&s,&m);
    printf("TOTAL = R$ %.2lf\n",s+m*0.15);
    return 0;
}

%s表示字符串,%c是单个字符,a前可以不加&因为a本身就有地址,以上是正确代码,那么写成这样为什么不对呢?

#include<cstdio>
int main()
{
    char a[10];
    double s,m;
    scanf("%c%lf%lf\n",&a[9],&s,&m);
    printf("TOTAL = R$ %.2lf\n",s+m*0.15);
    return 0;
}

答案为0,求解是什么地方出了问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值