不用数组也是可以的 #include<stdio.h> int main() { int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { int x=0; for(j=1;j<i;j++) if(i%j==0) { x+=j; } if(x==i) { printf("%d its factors are ",i); for(j=1;j<x;j++) { if(x%j==0) { printf("%d ",j); } } printf("\n"); } } return 0; }
写出来跟测试的结果完全一致,不知道哪里出问题了 #include<stdio.h> int main() { int n,i,j,k; scanf("%d",&n); for(i=1;i<=n;i++){ int sum=0; for(j=1;j<i;j++){ if(i%j==0){ sum+=j; } } if(sum==i){ printf("%d its factor are",i); for(k=1;k<i;k++){ if(i%k==0){ printf(" %d",k); } } printf("\n"); } } }
qz 2024-01-31 21:15:14 |
k用完之后要=0吧
#include<stdio.h> int main() { int i,j,N,l; int sum=0,k=0; int x[100]; scanf("%d",&N); for(i=1;i<=N;i++) { for(j=1;j<i;j++) { if(i%j==0) { sum+=j; x[k]=j; k++; } } if(sum==i) { printf("%d its factors are",i); for(l=0;l<k;l++) { printf(" %d",x[l]); } printf("\n"); } sum=0; k=0; } return 0; } 我这个也可以
uq_72670706696 2024-01-18 19:50:44 |
你这个和上面没啥区别就是把重置放后面了
请大佬帮忙看一下,感觉思路都一样的不知道出错在哪里 我调试的结果: 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 问题在第三行没有出现 #include<stdio.h> void main() { int i,n,u,k; int a[15],m=0; scanf("%d",&n); for(u=1;u<=n;u++) { k=u; for(i=1;i<=u/2;i++) { if(u%i==0) { k=k-i; a[m]=i; m++; } } if(k==0) { printf("%d its factors are",u); for(i=0;i<m;i++) printf(" %d",a[i]); printf("\n"); } m=0; } }
dotcpp0686717 2024-01-04 15:11:53 |
a[i]炸了
uq_72670706696 2024-01-18 19:54:08 |
应该不是吧,a【i】在这个里面最多没有超过15,难道是还没有到这个数之前有一个数有超过15个的
uq_72670706696 2024-01-18 19:57:58 |
@dotcpp0686717 我复制尝试了一下显示*** stack smashing detected ***: <unknown> terminated :Aborted溢出了
uq_72670706696 2024-01-18 19:58:16 |
@dotcpp0686717 对不起哈,我不知道怎么删除@
锐锐 2024-01-22 16:40:54 |
哪有a
#include<stdio.h> int main(void) { int N,n,sum,i,k,K; int a[]={0}; scanf("%d",&N); printf("%d",N); for(n=1;n<N;n++) { sum=0;k=0; for(i=1;i<n;i++) { if(n%i==0) { a[k++]=i; sum=sum+i; } K=k; } if(sum==n) { printf("%d its factors are ",n); for (k=0;k<K;k++) { printf("%d ",a[k]); } printf("\n"); } } printf("%d ",n); return 0; } 为什么我这个输出6那个答案之后就结束循环了啊
uq_72670706696 2024-01-18 20:03:21 |
我用你这个复制粘贴可以的,就是多输出两个1000
为什么要重置,大佬我不懂
喜欢吃东西的小东西 2023-12-15 16:17:44 |
你把重置的那步删了,就知道为啥了
uq_72670706696 2024-01-18 20:04:32 |
一个是求和重置,一个是下标重置
#include<stdio.h> int main() { int N; scanf("%d",&N); int i,j,k,tem,a[100]; for(i=1;i<=N;i++) { tem=0; k=0; for(j=1;j<i;j++) { if(i%j==0) { tem=tem+j; a[k]=j; k++; } } if(i==tem) { printf("%d its factors are ",i); for(j=0;j<k;j++) { printf("%d",a[j]); } printf("\n"); } } return 0; }
大佬们帮我看看 答案正确 但就是通过不了 为啥啊 #include<stdio.h> int main() { int a,s,b; scanf("%d",&a); for(s=0,b=1;b<a;b++) { if(a%b==0) s=s+b; } if(s==a) { printf("%d its factors are ",a); for(s=0,b=1;b<a;b++) { if(a%b==0) printf("%d ",b); } } }
2340850104史凯 2023-12-10 14:15:07 |
你没有正确输出因子吧
123456 2024-01-14 20:42:58 |
哪个符号定义重复了吧;
uq_72670706696 2024-01-18 20:08:40 |
你这个只能把输入的数和他的完数输出,题目是1000以内的所有完数
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:741 |
震宇大神的杀毒软件 (C++代码)浏览:1173 |
C语言训练-素数问题 (C语言代码)浏览:1065 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1015 |
【魔板】 (C++代码)(时间超限,希望会的帮我改正一下)浏览:804 |
用筛法求之N内的素数。 (C语言代码)浏览:711 |
大家好,我是验题君浏览:604 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:985 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
矩阵转置 (C语言代码)浏览:855 |
5eL1n 2024-02-29 15:17:18 |
确实,人家空间换时间,你时间换空间