| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3488 人关注过本帖
标题:求一个正整数的所有因数(能整除该数且小于其本身的数),数与数之间用空格 ...
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 20楼 wp231957
是我理解错了,向万哥道个歉。

重剑无锋,大巧不工
2015-04-17 07:35
渣渣渣
Rank: 2
等 级:论坛游民
帖 子:26
专家分:17
注 册:2015-3-23
收藏
得分:0 
其可以直接在子函数中输出不必要一定得返回值之后再输出,只要最终的返回值类型对了就可以了。
2015-04-17 07:46
castcm
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-4-17
收藏
得分:0 
纳兰其实可以把"\n"加在%d后  printf   \n那句可以不要
2015-04-17 09:34
阿牛的逆袭
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-10-18
收藏
得分:0 
#include"stdio.h"
void  yinshu(int n,int *result);
void  output(int *result);
main()
{
    int s,r[100];//注意r数组没有初始化
    scanf("%d",&s);
    yinshu(s, r );
    output(r);
}

 void  yinshu(int n,int *result)
{
    int i;
    for(i=1;i<n;i++)
    if(n%i==0)
    *result++=i;
   *result=0;以零作为终止符
}
void  output(int *result)
{
    while(*result!=0)
    printf("%d ",*result++);
}

[ 本帖最后由 阿牛的逆袭 于 2015-4-18 23:22 编辑 ]
2015-04-18 23:19
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
对于一个正整数n,在大于n/2小于n的区间内是不存在n的因数的,所以,for(i=1;i<n;i++)这句可以改为for(i=1;i<=n/2;i++)  这样,循环次数可以减少一半
2015-04-19 19:25
Weken
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-23
收藏
得分:0 
因子要用数组储存??
2015-04-19 19:49
jack陈
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-19
收藏
得分:0 
#include<stdio.h>
int main()
{
    int a;
    int i=0;
    scanf("%d",&a);
    for(i=1;i<a;i++)
    {
        if(a%i==0)
        printf("%d ",i);

    }
    return 0;
}
2015-04-19 20:08
梦巷
Rank: 2
等 级:论坛游民
帖 子:14
专家分:15
注 册:2015-4-18
收藏
得分:0 
#include <stdio.h>
int  yinshu(int n,int *result)
 {
     int i;
     int k=0;
     for(i=1;i<n;i++)
     {
         if(n%i==0)
         {
             k++;
             *result=i;
             result++;
         }
     }
     return k;
 }

void  output(int *result,int k)
 {
     int i;
     for(i=0;i<k;i++)
     {
         printf("%d ",*(result+i));
     }
 }
int main()
 {
     int s;
     int r[1000]={0};
     printf("请输入一个整数:");
     scanf("%d",&s);
     int k=yinshu(s,r);
     output(r,k);
 }
这样也可以,就不用再声明子函数了。
2015-04-19 22:12
快速回复:求一个正整数的所有因数(能整除该数且小于其本身的数),数与数之间用 ...
数据加载中...
 
   



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

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