MT1301·1的补码
c 语言代码实现
#include <stdio.h>
int main() {
long n = 0;
long b = 0;
scanf("%ld", &n);
int i = 0;
//
while (b < n) {
b = b * 16 + 0xf;
}
printf("%ld", b - n);
return 0;
}
MT1302·二进制转格雷码
c 语言代码实现
#include <stdio.h>
#include <string.h>
int main() {
char s[10];
fgets(s, sizeof(s), stdin);
for (int a = 3; a >= 1; a--) {
if(s[a] != s[a - 1]) s[a] = '1';
else s[a] = '0';
}
printf("%s",s);
return 0;
}
MT1303·格雷码转二进制
c 语言代码实现
#include <stdio.h>
#include <string.h>
int main() {
char s[10];
fgets(s, sizeof(s), stdin);
for (int a = 1; a <= 3; a++) {
if (s[a] != s[a - 1])
s[a] = '1';
else
s[a] = '0';
}
printf("%s", s);
return 0;
}
MT1304·十进制与格雷码
c 语言代码实现
#include <stdio.h>
int main() {
int n, cnt = 3, A[4], ans;
scanf("%d", &n);
while (n) {
A[cnt--] = n % 2;
n /= 2;
}
for (int a = 3; a >= 2; a--) {
if (A[a] != A[a - 1])
A[a] = 1;
else
A[a] = 0;
}
for (int b = 3, k = 1; b >= 1; b--, k = k * 2)
ans += A[b] * k;
printf("%d",ans);
return 0;
}
MT1305·三位数
C语言代码实现
#include <stdio.h>
int main() {
int number;
// 遍历可能的自然数范围
for (number = 1; number < 729; number++) { // 729 是 9^3,最大三位数的九进制数
// 获取七进制表示
int base7 = number;
int digit7[3];
for (int i = 2; i >= 0; i--) {
digit7[i] = base7 % 7;
base7 /= 7;
}
// 获取九进制表示
int base9 = number;
int digit9[3];
for (int i = 2; i >= 0; i--) {
digit9[i] = base9 % 9;
base9 /= 9;
}
// 检查七进制和九进制是否反向相等
if (digit7[0] == digit9[2] && digit7[1] == digit9[1] && digit7[2] == digit9[0]) {
printf("%d\n", number);
}
}
return 0;
}
MT1306·牛顿迭代法
c语言代码实现
#include <stdio.h>
#include <math.h>
double f(double x) {
return 2 * x * x * x + 4 * x * x - 7 * x - 6;
}
double f_prime(double x) {
return 6 * x * x + 8 * x - 7;
}
int main() {
double x0 = 1.5; // 初始值
double tolerance = 1e-6; // 收敛阈值
double x1;
// 牛顿迭代法
do {
x1 = x0 - f(x0) / f_prime(x0);
if (fabs(x1 - x0) < tolerance) {
break;
}
x0 = x1;
} while (1);
// 输出结果
printf("%.6f\n", x1);
return 0;
}
MT1307·对分法
c 语言代码实现
#include <stdio.h>
double halving(double x) { return x * x - 6 * x - 1; }
int main() {
double left = -10; // 区间左端点
double right = 0; // 区间右端点
double middle; // 中点
double tolerance = 1e-6; // 收敛阈值
if (halving(left) * halving(right) >= 0) {
return 1;
}
// 二分法
do {
middle = (left + right) / 2; // 计算中点 可以提前计算
if (halving(middle) == 0.0) {
break; // 找到根
} else if (halving(middle) * halving(left) < 0) {
right = middle; // 根在左半区间
} else {
left = middle; // 根在右半区间
}
} while (right - left > tolerance); // 判断是否收敛
// 输出结果
printf("%.6f", middle);
return 0;
}
MT1308·4个自然数
c语言代码实现
#include <stdio.h>
int main() {
int p, q, r;
// 遍历 p, q, r, s
for (p = 2; p <= 4; p++) {
for (q = p; q <= 6; q++) {
for (r = q; r <= 12; r++) {
int mem = p * q * r;
int denominator = p * q * r - q * r - p * r - p * q;
if (denominator)
if ((mem % denominator == 0) && (mem / denominator >= r))
printf("%d %d %d %d\n", p, q, r, mem / denominator);
}
}
}
return 0;
}
MT1309·最大和
c 语言代码实现
#include <stdio.h>
int main() {
int length;
scanf("%d", &length);
int array[length];
for (int i = 0; i < length; i++) {
scanf("%d", &array[i]);
}
int max_current = array[0]; // 当前最大连续子序列
int max_global = array[0]; // 全局最大
for (int i = 1; i < length; i++) {
max_current = (array[i] > max_current + array[i] ? array[i]: (max_current + array[i]));
if(max_current > max_global){
max_global = max_current;
}
}
printf("%d",max_global);
return 0;
}
MT1310·最大乘积
c语言代码实现
#include <stdio.h>
int main() {
int N;
// 输入数组长度
scanf("%d", &N);
long long int arr[N];
// 输入数组元素
for (int i = 0; i < N; i++) {
scanf("%lld", &arr[i]);
}
long long int max = arr[0];
for (int i = 0; i < N; i++) {
long long int x = 1;
for (int j = i; j < N; j++) {
x *= arr[j];
if (x > max)
max = x;
}
}
printf("%lld",max);
return 0;
}
以上就是这期c语言内容的详解了 有其他的问题可以在评论区评论 或者私聊 看到一定回复 有其他关于计算机的所有问题都可以问 只需要一个小小的关注
标签:main,MT1301,MT1310,int,max,return,double,码题,include From: https://blog.csdn.net/xinfanyyds/article/details/142739588