2018年江苏大学885代码题(含答案)

一、前言

提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀

二、正文

1.第一题

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

#define N 10

// 函数计算
double FT(double a, double b, double c);

void main()
{
	double a[N], b[N], c[N];
	int i;
	FILE* fp;
	// 打开或创建文件
	if (!(fp = fopen("data.txt", "a+")))
	{
		printf("cannot open the file!\n");
		exit(0);
	}
	// 输入数据
	for (i = 0; i < N; i++)
	{
		printf("请输入第%d组a,b,c:", i + 1);
		scanf("%lf%lf%lf", &a[i], &b[i], &c[i]);
		printf("\n");
	}
	// 计算,保存和显示结果
	for (i = 0; i < N; i++)
	{
		printf("a=%.2lf,b=%.2lf,c=%.2lf,T=%lf\n", a[i], b[i], c[i], FT(a[i], b[i], c[i]));
		fprintf(fp,"a=%.2lf,b=%.2lf,c=%.2lf,T=%lf\n", a[i], b[i], c[i], FT(a[i], b[i], c[i]));
	}
	// 关闭文件
	if (fclose(fp))
	{
		printf("cannot close the file!\n");
	}
}

double FT(double a, double b, double c)
{
	double up, down;
	up = 4.25 * (a + b) + log(a + b + sqrt(a + b) + 1 / (a + b));
	down = 4.25 * c + log(c + sqrt(c) + 1 / c);
	return up / down;
}

运行结果示例:
在这里插入图片描述
在这里插入图片描述
验算结果:
时间问题,只验算了一组数据(3,4,5)
在这里插入图片描述手写版:

2. 第二题

在这里插入图片描述

#include<stdio.h>

// 判断一个自然数是否是降序数,是则返回1,否则返回0
int judge(long int num);

void main()
{
	long int num;
	while (1)
	{
		printf("请输入一个自然数:\n");
		scanf("%d", &num);
		if (num >= 0) {
			break;
		}
	}
	if (judge(num))
	{
		printf("%ld是降序数\n", num);
	}
	else
	{
		printf("%ld不是降序数\n", num);
	}
}

int judge(long int num)
{
	int l, r = 0;
	if (num < 10)
	{
		return 1;
	}
	else
	{
		while (num)
		{
			l = num % 10;
			if (l < r)
			{
				return 0;
			}
			r = l;
			num /= 10;
		}
	}
	return 1;
}

运行结果示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
手写版:

3.第三题

在这里插入图片描述

#include<stdio.h>
#include<math.h>

// 原函数
double F(double x);
// 导数
double G(double x);

void main()
{
	double x = -1, y;
	do {
		y = x;
		x = y - F(y) / G(y);
	} while (fabs(x - y) > 1e-6);
	printf("方程的近似根为:%lf\n", x);
}

double F(double x)
{
	return pow(x, 41) + x * x * x + 1;
}

double G(double x)
{
	return 41 * pow(x, 40) + 3 * x * x;
}

运行结果示例:
在这里插入图片描述
在这里插入图片描述

手写版:

→返回总目录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值