求分析

阿白菜带 2017-11-05 08:21:13


#include <stdio.h>

#include <string.h>

#include <math.h>

int main()

{

int i,length,num=0,n=0;

char s[102];

while(1)

{

gets(s);

if(s[0]=='0')

break;

length = strlen(s);

for(i=0;i<length;i++)

{

num += (s[i]-'0')*(int)pow(10,length-1-i); //注意pow返回值类型为double

}

num = num/10-num%10*5;

if(0 == num%17)

printf("1\n");

else

printf("0\n");

num = 0;

}

return 0;

}

答案错误为什么
...全文
183 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-06
  • 打赏
  • 举报
回复
边界条件 输入输出格式 ……
阿白菜带 2017-11-06
  • 打赏
  • 举报
回复
输入最多十行加上去并没有什么作用,输出就是按行输出
阿白菜带 2017-11-06
  • 打赏
  • 举报
回复
他的输入要求最大可以输入100位的数,你这个long long int应该表示不了那么大的数
自信男孩 2017-11-06
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define MAX_NUM     10

int main(void)
{

#if 1
    unsigned long long num, diff;
    int cnt = 0, s_digit;

    while (1 == scanf("%llu", &num) && num > 0) {
        if (cnt++ > MAX_NUM)
            break;
        s_digit = num % 10;
        diff = llabs(num / 10 - s_digit * 5);

        if (diff % 17 == 0)
            printf("1\n");
        else
            printf("0\n");

    }
#else
    int i,length,num=0,n=0;

    char s[102];

    while(1)
    {

        gets(s);

        if(s[0]=='0')

            break;

        length = strlen(s);

        for(i=0;i<length;i++)

        {

            num += (s[i]-'0')*(int)pow(10,length-1-i); //注意pow返回值类型为double

        }

        num = num/10-num%10*5;

        if(0 == num%17)

            printf("1\n");

        else

            printf("0\n");

        num = 0;

    }
#endif
    return 0;

}
参考一下吧~

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧