注册 登录
编程论坛 C语言论坛

关于sscanf()的用法

鲸落南北 发布于 2020-01-30 12:06, 2701 次点击
#include<stdio.h>

int main()
{
    char str[10];
    int n,a,b,c;
   
    gets(str);
   
    sscanf(str,"%d",&n);
    sscanf(str,"%ld%ld%ld",&a,&b,&c);
   
    if(a*a*a + b*b*b + c*c*c == n)   
    {   
        printf("yes\n");           
    }
        
    else   
    {   
        printf("no\n");
    }   
   
    return 0;
 }
编译的时候编译器跳过了if放后面的的语句,直接输出else后面的语句
不知道怎么改,才能输出正确的答案
6 回复
#2
纯蓝之刃2020-01-30 13:22
你输入了什么,想要输出什么要交代清楚啊,不然我们怎么你想要得到什么样的结果。
sscanf是从字符串读取格式化输入的函数,为了是取到一个字符串内不同的数据表达方式,你这个取得的三个数据都是长整型,且中间没有其他标志中断,sscanf怎么知道应该从什么地方中断得到a,b,c.
#3
lijingui20102020-01-30 15:45
#include<stdio.h>

int main()
{
    char str[10];
    int n,a,b,c;

    gets(str);

    sscanf(str,"%d %d %d %d",&n,&a,&b,&c);

    if(a*a*a + b*b*b + c*c*c == n)
    {
        printf("yes\n");
    }

    else
    {
        printf("no\n");
    }

    return 0;
 }

输入:3 1 1 1 试试
#4
鲸落南北2020-01-30 15:47
回复 2楼 纯蓝之刃
嗯嗯,用你的方法输出来啦

[此贴子已经被作者于2020-1-30 16:02编辑过]

#5
鲸落南北2020-01-30 15:53
回复 3楼 lijingui2010
好的输出来啦!
#6
鲸落南北2020-01-30 15:54
回复 3楼 lijingui2010
好的,输出来啦!
#7
jinxiao662020-01-31 08:44
学习了!
1