| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 527 人关注过本帖
标题:帮忙改下,谢谢啦!!
取消只看楼主 加入收藏
冯浩123
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-12-1
结帖率:0
收藏
已结贴  问题点数:2 回复次数:2 
帮忙改下,谢谢啦!!
#include<stdio.h>
int main()
{
    int i,j,k,s,
        a[100]={0},
    b[10]={0};
    char c[]={0};
    b[0]=1;
    j=0;
    while((c[j]=getchar())!='\n')
        j++;
    k=j;
    for(j=0,i=0;j<k;j++)
        switch(c)
    {
        case '0':{a[i]=0;i++;k=i;};break;
        case '1':{a[i]=1;i++;k=i;};break;
        case '2':{a[i]=2;i++;k=i;};break;
        case '3':{a[i]=3;i++;k=i;};break;
        case '4':{a[i]=4;i++;k=i;};break;
        case '5':{a[i]=5;i++;k=i;};break;
        case '6':{a[i]=6;i++;k=i;};break;
        case '7':{a[i]=7;i++;k=i;};break;
        case '8':{a[i]=8;i++;k=i;};break;
        case '9':{a[i]=9;i++;k=i;};break;
        default: ;break;
    }
    for(i=0;i<k;i++)
    {
        b[i]*=10;
        a[i]=a[i]*b[i];
    }
    for(i=0;i<k;i++)
        s+=a[i];
    for(i=s-1;i>=1;i--)
        if(s%i==0)
        {
            printf("%d\n",i);
            break;
        }
        return 0;
}
搜索更多相关主题的帖子: include 
2013-01-07 21:19
冯浩123
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-12-1
收藏
得分:0 
不好意思啊,之前写的太麻烦了,现已解决,
这是题目:

描述
对于给定的字符序列,从左至右将所有数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31),计算并输出该整数的最大因子(如果是素数或0,则其最大因子为自身)。         
输入说明
有多组数据;每组数据为一行字符序列,当输入一个空行时表示输入结束。
输出说明
对每个字符序列,求出所得整数的最大因子;若字符序列中没有数字或找出的整数为0,则输出0。每个整数占一行输出。
输入样例
sdf0ejg3.f?9f
?4afd0s&2d79*(g
abcde
输出样例
13
857
0

         
2013-01-18 20:56
冯浩123
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-12-1
收藏
得分:0 
以下便是了:


#include<stdio.h>
#include<ctype.h>

int join(int array[],int count);
int factor(int n);

int main(void)
{
    int array[100];
    char n;
    int num,i,count;
    while(getchar()!='\n')
    {
        for(count=0,i=0;i<100;)
        {
            n=getchar();
            if(isdigit(n))
            {
                array[i]=(int)(n-'0');
                count++;
                i++;
            }
            if(n=='\n')
            break;
        }
        num=join(array,count);
        if(num==0)
        printf("0\n");
        else
        printf("%d\n",factor(num));
    }
    return 0;
}
int join(int array[],int count)
{
    int i,sum=0;
    for(i=0;i<count;i++)
    sum=sum*10+array[i];
    return sum;
}
int factor(int n)
{
    int j;
    if(n==1)
        return n;
    for(j=n-1;j>1;j--)
    {
        if(n%j==0)
        break;
    }
    if(j==1)
        return n;
    else
        return j;
}
2013-04-03 21:08
快速回复:帮忙改下,谢谢啦!!
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019469 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved