问题描述】5.4 输入2个正整数m和n(m≥1,n≤10000),输出m~n之间所有的Fibonacci数,以整数输出。Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。
【输入输出样例1】
【输入输出样例2】
【样例说明】
输出结束后需要换行。
输入提示符中冒号为英文字符,后面无空格。
/5.4 输入2个正整数m和n(m≥1,n≤10000),
输出m~n之间所有的Fibonacci数,
以整数输出。
Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。
要求定义并调用函数fib(n),
它的功能是返回第n项Fibonacci数。
例如,fib(7)的返回值是13。/
#include<stdio.h>
#define N 1000
int fib(int n);//函数声明
int main()
{
int n,m,i;//scanf("%d",&i);
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);//输入
for(i=0;i<1000;i++)
if(fib(i)<=n&&fib(i)>=m)//判断是否在区间内
printf("%d\n",fib(i));//函数调用
return 0;
}
int fib(int n)//函数定义
{
int a[N],j;
a[1]=1;a[0]=1;
for(j=2;j<=n;j++){
a[j]=a[j-1]+a[j-2];
}
return a[n-1];
}
问题描述】5.9 在数组中查找指定元素。输入一个正整数n(1<n≤10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应的最小下标,否则输出“Not Found”。要求定义并调用函数search(list,n,x),它的功能是在数组list中查找元素x,若找到则返回相应的最小下标,否则返回-1。
【输入输出样例1】
【输入输出样例2】
【样例说明】
输出结束后需要换行。
输入提示符中冒号为英文字符,后面无空格。
/*在数组中查找指定元素
输入一个正整数n(1<n≤10)
#include<stdio.h>
int search(int list[],int n,int x);
int main()
{
int n,a[10],i,x;
printf("Input n:");
scanf("%d",&n);
printf("Input %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Input x:");
scanf("%d",&x);
if(search(a,n,x)==-1)printf("Not Found\n");
else printf("Index=%d",search(a,n,x));
return 0;
}
int search(int list[],int n,int x)
{
int i;
for(i=n-1;i>=0;i--)
if(list[i]==x)
return i;
return -1;
}
【问题描述】5.10 输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素,要求在主函数中输入A和B数组,并输出交集中的元素,在被调函数中实现求这两个集合的交集,返回交集元素的个数。定义函数为mix(a,b,c),功能为将数组A和B中的交集赋给数组C,函数返回值为交集元素的个数。
【输入输出样例】
【样例说明】
输出结束后不需要换行。
输入提示符中冒号为英文字符,后面无空格。
交集元素输出格式为%4d。
/输入两个由整型数构成的集合
(元素个数均为5)
分别放到数组A和B中
求这两个集合的交集
(交集的元素由两个集合中的相同元素构成)
最后输出交集中的元素
要求在主函数中输入A和B数组
并输出交集中的元素
在被调函数中实现求这两个集合的交集
返回交集元素的个数
定义函数为mix(a,b,c)
功能为将数组A和B中的交集赋给数组C
函数返回值为交集元素的个数/
#include<stdio.h>
int mix(int a[],int b[],int c[]);
int main()
{
int a[4],b[4],c[4],i;
printf("PLease Enter Array A,5 digits:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("PLease Enter Array B,5 digits:");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
mix(a,b,c);
return 0;
}
int mix(int a[],int b[],int c[])
{
int i,j,count=0;
printf("A B intersection is:");
for(i=0;i<5;i++){
for(j=0;j<5;j++)
if(a[i]==b[j]){
c[count]=b[j];
count++;
printf("%4d",b[j]);}
}
return count;
}