C语言看程序写算法分析。要是给流程图加分采纳。懒得做word文档在纸上写下来,拍照片,上传图片也给分。

2020-04-29 科技 106阅读
#include
#define n 4
#define Y(x) (2*x*x*x-3*x*x*x*x+6*x*x*x*x*x-4*x+50)//这个是目标函数
/*
*主要通过0,2,4,6,8,10,12,14,16,18,20的x值求出对应的y的值,输出每个x和y的值,然后比较y值,找出其中最大的和最小的,并输出
*/
int main()
{
float y,x,loop=0,max,min;
float x_max,x_min;
max=min=Y(0); //初始化
for(loop=0;loop<=20;loop+=2) //循环改变x的值
{
x=(float)loop/10;
y=Y(x);
printf("x=%.1f\t,y=%.6f\n",(float)loop/10,y);//打印此时的x和y
if (max {
max=y;
x_max=(float)loop/10;
}
if (min>y) //找出最小的y
{
min=y;
x_min=(float)loop/10;
}
}
printf("最大值是%.6f,此时x为%.1f\n",max,x_max);
printf("最小值是%.6f,此时x为%.1f\n",min,x_min);
}
//时间复杂度为n,空间复杂度为1
#include
/*
*寻找对角线的所有元素逐一比较,找出最小的
*/
int func(int p[5][5])
{
int i,j,min = 999999;
for(i=0;i<5;i++)//根据题意修改了下
{
if(p[i][i] < min)
min=p[i][i];
if(p[i][4-i] < min)
min=p[i][4-i];
}
return min;
}
void main()
{
int i,j,m,a[5][5];
printf("请输入a[5][5]:\n");
for(i=0;i<5;i++)//输入元素
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
printf("a[5][5]:\n");
for(i=0;i<5;i++)//展示输入结果
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
m=func(a);
printf("主对角线上元素的最小值为:%d",m);
}
//算法空间复杂度为n,时间复杂度为n;
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com