求分析

阿白菜带 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;

}

答案错误为什么
...全文
111 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
赵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;

}
参考一下吧~
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 小灸舞
申请成为版主
帖子事件
创建了帖子
2017-11-05 08:21
社区公告
暂无公告