点赞(0)
 

0.0分

311 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 135 条评论

暗中讨饭 2年前 回复TA
@暗中讨饭 @luokeli 但是上面不是说了j<i了吗,不是原本就取不到i吗?k是从0开始的吧,如果因子是三个那么就是k0,k1,k2;下面l<k的话,不是只有了l[0],l[1]两个因子了吗?
0205李少明19 2年前 回复TA
@暗中讨饭 这样的话就会把i也加进去,原题说的不用加i,例如1+2+3=6是没有加6的
暗中讨饭 2年前 回复TA
为什么是l<k,而不是l<=k?
1021王俊峰 2年前 回复TA
@寡妇村村长 你是来搞笑的吗
绝恋红尘lx 2年前 回复TA
#include<stdio.h>
#define max 1001
int main()
{
    int N,a,b,i,k,m[max],n;
    scanf("%d",&N);
    for(i=1;i<N;i++)
    {
        a=0;
        k=0;
        for(b=1;b<i;i++)
        {
            if(i%b==0)
            {
                a=a+b;
                m[k++]=b;
            }
        }
        if(a==i)
        {
        printf("%d its factors are  ",i);
        for(n=0;n<k;n++)
        printf("%d\t",m[n]);
        printf("\n");
        }
    }
    return 0;
}
我这有啥问题啊!
格温之死 3年前 回复TA
#include<stdio.h>
#define max 1001
int main()
{
	int i,j,s,n,a[max],l,k=0;
	 scanf("%d",&n);
	 for (i=2;i<=n;i++)
	 {
	 	s=0;
	 	for(j=1;j<i;j++)
	 	{if(i%j==0)
			 {s+=j;a[j]=j;}
		 if(s==i){printf("%d its factors are\n",i);
		 for(l=0;l<k;l++){printf("%d",a[l]);}
	 	printf("\n");
	}
	 }
	 return 0;
	 }
} 请问这个能过编译,但是是错的,能告诉我错哪里吗?
白色枫叶 3年前 回复TA
@白色枫叶 稍微提一嘴,楼主的数组长度用变量定义,这是c99的语法,如果是准备二级的人的话,这不能用(二级用的是ANSI C)题主的解法挺好看的,比我这堆清爽的多:)
白色枫叶 3年前 回复TA
#include <stdio.h>

int main()
{
	int n=0;
	int i=0;
	int a;
	int b;
	int sum;
	int c=0;
	int d;
	
	scanf("%d",&n);
	
	for(i=2;i<=n;i++){
		sum=0;
		for(a=1;a<i;a++){
			b=i%a;
		 if(b==0){
		 	sum+=a;
		 }
		 if(a==i-1){
		 	if(sum==i){
		 	printf("%d its factors are ",i);
		 	for(c=1;c<sum;c++){
		 		d=sum%c;
		 		if(d==0){
		 			printf("%d ",c);
		 		}
		 		if(c==sum-1){
		 			printf("\n");
		 		}
		 	}
		 }
		 }
		}
	}
	
	return 0;
}
没用数组,但麻烦:(
北极星 3年前 回复TA
@孙兴磊 输出的格式也不对
编程菜鸟 3年前 回复TA
谢谢作者啦