6道题都要做吗?数列没有规则怎么做
每个题目都封装成一个函数了,代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
//题目1
void fun1()
{
double a,b,c;
printf("请输入3个实数:");
scanf("%lf %lf %lf",&a,&b,&c);
double max = a > (b > c?b:c)?a:(b > c?b:c);
double min = a < (b < c?b:c)?a:(b < c?b:c);
double avg = a + b + c - max - min;
{
a = max;
b = avg;
c = min;
printf("降序:%g > %g > %g\n",a,b,c);
}
{
a = min;
b = avg;
c = max;
printf("升序:%g < %g < %g\n",a,b,c);
}
}
//题目2
void fun2()
{
int x,d;
printf("输入x:");
scanf("%d",&x);
if(x > 0) d= 1;
else if(x == 0) d= 0;
else d= -1;
printf("y=%d\n",d);
}
//题目3
void fun3()
{
double sm = 0.0;
int i = 0;
for (i = 1; i <=50;i++)
{
sm += 1.0/i;
}
printf("sum = %f\n",sm);
}
//题目4
void fun4()
{
int i,j; // i, j控制行或列
for(i=1;i<=9;i++) {
for(j=1;j<=9;j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i*j);
printf("\n");
}
}
//题目5
int fun5(int n)
{
if(n == 0) return 0;
else if(n==1 || n==2) return 1;
else return fun5(n-1)+fun5(n-2);
}
//题目6
void fun6(int n)
{
int i;
int* p = (int*)malloc(n*sizeof(int));
p[0] = 0;
p[1] = 1;
p[2] = 1;
for (i = 3; i<=n;i++)
p[i] = p[i-1] + p[i-2];
for(i = 0; i<n; i++)
printf("%d ",p[i]);
printf("\n");
free(p);
}
int main()
{
int i = 0;
//题目1
fun1();
//题目2
fun2();
//题目3
fun3();
//题目4
fun4();
//题目5
for(i = 0; i < 30; i++)
printf("%d ",fun5(i));
printf("\n");
//题目6
fun6(30);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632