C语言作业:【问题描述】 输入2个正整数m和n(m≥1,n≤10 000),输出m ~n 之间所有的Fibonacci数。

供稿:hz-xin.com     日期:2025-01-13
急!!!!输入2 个正整数m 和n(m≥1,n≤1 000),输出m ~n 之间的所有完数,完数就是因子和与它本身相等的

# include
int factorsum(int number);
int main()
{
int m,n,i;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=m;i<=n;i++)
{
if(factorsum(i)==i)
printf("%5d",i);
}
printf("
");
return 0;
}
int factorsum(int number)
{
int k,t,sum=0;
for(k=1;k<number;k++)
{
t=number%k;
if(t==0)
sum=sum+k;
}
return sum;
}

if(prime(m)==1)
里面的不能是m啊 应该是i啊

我也在做这道题,借鉴了你的调用函数,上传后没问题的~
#include<stdio.h>
int main(void){
int m,n,k,i;
int fib(int i);

printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);

for(k=m;k<=n;k++)
for(i=1;fib(i)<=n;i++){
if(k==fib(i))
printf("%.d ",k);
}
return 0;
}

int fib(int i){

if(i==1)
return 1;
if(i==2)
return 1;
else
return fib(i-1)+fib(i-2);
}

将FOR里面的i<=n改成fib(i)<=n,就可以了

你这个很明显是while导致一直循环 因为你m和n总是满足while里面的条件,结果就会一直做while循环里的语句。导致死循环了。可以的话把while删了或者换成if就行了

酱油~~~~~~~~

while(m>=1&&n<=10000&&m<=n)
{
for(i=1;i<=n;i++)
if(fib(i)>=m&&fib(i)<=n)
printf("%d ",fib(i));
break;
}//加一句break;

洛谷刷题C++语言 | P1065 作业调度方案
理解洛谷上C++语言的学习与备考过程中的各类题目。【题目描述】在m台机器上加工n个工件,每个工件包含m道工序。每道工序在特定机器上完成,有各自加工时间。安排顺序规定了每个操作的执行次序。在安排后续操作时,不可改变先前操作的状态。给定的安排顺序简化为数字序列,如1 1 2 3 3 2。安排需遵循两...

C语言函数 【问题描述】 输入一批正整数(以零或负数为结束标志)_百度...
个正整数(0结束输入):",n+1);while(scanf("%d",&sz[n])==1 && sz[n] != 0){n++;printf(" 请输入第 %d 个正整数(0结束输入):",n+1);}for(i=0;i<n;i++)if(sz[i]%2)hj+=sz[i];printf(" 输入了 %d 个正整数,其中奇数和为:%d\\n",n,hj);return 0;} ...

四个c语言编程题,求高手的帮助。谢谢!!
h> int main(){ int a[10], i, ok = 1;scanf("%d", a);for(i = 1; i < 10; ++i){ scanf("%d", &a[i]);if(a[i] == a[i-1])ok = 0;} if(ok)printf("Yes\\n");else printf("No\\n");} 分别是四个程序 你把注释去掉就能用了 没事干赚分 哈哈 ...

如何输入两行数字,用C语言,请会的大师帮帮忙!谢谢!
1#4#9#16#9#7#4#9#11 11#7#9#16#4#1 是没有问题的 但是如果这样输入(你的样例输入就是这样)1#4#9#16#9#7#4#9#11 11#7#9#16#4#1 我的程序就出错了 如果真的是上面那样,就要用gets()读取一行,再提取行中数组,具体方法请看我写的另一个程序 http:\/\/zhidao.baidu.com\/...

c语言作业,前驱、后继字符
c语言作业,前驱、后继字符 【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。【输入形式】从键盘输入一个字符【输出形式】... 【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的...

C语言作业《使字符串首尾的*号不多于n个》
include <string.h> include <stdio.h> define N 100 int main(){ char a[N];int n,len,count=0;int i;gets(a);scanf("%d",&n);len=strlen(a);for(i = 0;i != len;i++)\/\/统计末尾有多少个 { if(a[i]=='*') count++;else count = 0;} if(count<=n) puts(a);\/\/...

【跪求C语言 大神】删数问题。小弟实在走投无路。
【跪求C语言 大神】删数问题。小弟实在走投无路。【问题描述】输入一个高精度的大正整数S(S最长可达240位),去掉其中任意N位数字后剩下的数字按原次序组成一个新的正整数S’。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数S’最小。【输入形式】输入有两行: 1.第一行是大整数S。其中S最长可....

C语言中两个两位正整数的乘积竖式怎样编写
说清楚一些 ,是要在控制台输出这个算式吗?需不需要支持负数?这其实就是一个格式化输出问题啊。include <stdio.h> int main (){ int a, b;scanf("%d %d", &a, &b);printf (" %d\\n", a);printf (" * %d\\n", b);printf ("---\\n");printf ("%5d\\n", a*(b%10));pr...

C语言中---统计各类字符的个数
C语言中---统计各类字符的个数 10 【问题描述】输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。【输入形式】【输出形式】【样例输入】Reold123?【样例输出】letter=5,blank=1,digit=3,other=... 【问题描述】输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

c语言程序求改错 【问题描述】 输入三位数字N,求两位数AB(其中个位数字...
这个程序a无法循环到2以上,只能是1 --- 你的大括号乱用,for (a=1...)的循环体内有句 return 0; 怎么可能到达a==2嘛!且怎样加入条件a!=b,我尝试加在b<=9的后面 --- 因为条件有a<b,所以,这句for(b=1;b<=9;b++) 直接改成 for(b=a+1;b<=9;b++)不就是了,同时for(...