一、前言
提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀
二、正文
1.第一题
#include<stdio.h>
// 变小写字母为大写字母
char change(char ch);
void main()
{
char s[100];
int i = 0;
printf("请输入一串字母:");
scanf("%s", s);
while (s[i] != '\0')
{
s[i++] = change(s[i]);
}
printf("\n结果为:%s\n", s);
}
char change(char ch)
{
if (ch >= 'a' && ch <= 'z')
{
ch -= 32;
}
return ch;
}
运行结果示例:
手写版:
2. 第二题
#include<stdio.h>
// 勒让德多项式
double p(int n, double x);
void main()
{
printf("P4(1.5)=%lf\n", p(4, 1.5));
}
double p(int n, double x)
{
if (n == 0)
{
return 1;
}
if (n == 1)
{
return x;
}
if (n > 1)
{
return ((2 * n - 1) * x * p(n - 1, x) - (n - 1) * p(n - 2, x)) / n;
}
}
运行结果示例:
手写版:
3.第三题
#include<stdio.h>
#define N 1000
// 判断n是否是完数,是则返回1,否则返回0
int judge(int n);
void main()
{
printf("1000以内的完数有:\n");
for (int i = 1; i < 1000; i++)
{
if (judge(i))
{
printf("%d ", i);
}
}
}
int judge(int n)
{
int sum = 0;
for (int i = 1; i <= n / 2; i++)
{
if (n % i == 0)
{
sum += i;
}
}
if (sum == n)
{
return 1;
}
return 0;
}
运行结果示例:
手写版:
4.第四题
#include<stdio.h>
// 初始高度
#define H 100
// 落下次数
#define N 10
void main()
{
double s = H, h = H / 2;
for (int i = 2; i <= N; i++)
{
s += h * 2;
h /= 2;
}
printf("第%d次落地时,经过%lf米,第%d次反弹的高度为:%lf米\n", N, s, N, h);
}
运行结果示例:
手写版:
5.第五题
#include<stdio.h>
#define N 100
void main()
{
char s[N];
int a[N], i = 0, n, sum = 0, flag;
printf("请输入字符串:\n");
scanf("%s", s);
while (1)
{
flag = 0;
n = 0;
while (s[i] >= '0' && s[i] <= '9')
{
n = n * 10 + s[i] - '0';
i++;
flag = 1;
}
if (flag == 1)
{
a[sum++] = n;
}
if (s[i] == '\0')
{
break;
}
i++;
}
printf("共有%d个整数:\n", sum);
for (i = 0; i < sum; i++)
{
printf("%d ", a[i]);
}
}
示例数据:
A123x456$%1789>3560tab587
运行结果示例:
手写版: