| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1712 人关注过本帖
标题:每个数不会超过100位 怎么用C语言写啊 ,谢谢我是一只菜鸟
只看楼主 加入收藏
小心飞刀hbw
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2016-3-21
收藏
得分:0 
#include<stdio.h>
int main() {
    int n,a;
    scanf("%d,",&n);
    while(scanf("%d,",&a)!=EOF) {
        if(a%3==0)
            printf("Y\n");
        else
            printf("N\n");
    }
    return 0;
}


这个为什么不对啊?
2016-04-18 19:32
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
既然你是初学,我建议代码如下:
#include <stdlib.h>
#include<string.h>
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
while(--n){
getchar();//过滤掉多余的回车
char a[101];//不超过100位,就直接声明一个肯定比要读入的数据长的字符串变量
gets(a);
int sum=0;
for(int i=0;i<strlen(a);i++){
sum+=a[i]-'0';
}
if(sum%3)printf("不能整除\n");else printf("可以整除\n");
}
return 0;
}


[此贴子已经被作者于2016-4-18 19:42编辑过]


φ(゜▽゜*)♪
2016-04-18 19:37
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 11楼 小心飞刀hbw
引用我在前面讲的,题目一开始就讲了,这是一个不超过100位的数字,而我们的int 放不下那么大的数。不只是int,double,unsigned int,Long double 之类的都一样不行。。。
这道题必须把它当作字符串读入,然后通过ascii码表进行转换,,,充分利用“整除3的数字的特征”这个条件才能做。

另外你的第一个scanf("%d,",&n);最好把双引号里的逗号去掉。。否则你运行程序每次都必须输入逗号再回车这个scanf才能读到数据


[此贴子已经被作者于2016-4-18 19:44编辑过]


φ(゜▽゜*)♪
2016-04-18 19:41
小心飞刀hbw
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2016-3-21
收藏
得分:0 
回复 5楼 grmmylbs
我运行了一下,又报错的。
2016-04-19 22:35
快速回复:每个数不会超过100位 怎么用C语言写啊 ,谢谢我是一只菜鸟
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028621 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved