一、前言
提示:以下是博主自己写的代码,仅供参考,欢迎有兴趣的朋友们留言讨论呀
二、正文
1.第一题
#include<stdio.h>
void main()
{
double x = 0, k;
for (k = 1; k <= 100; k++)
{
x += k;
}
for (k = 1; k <= 50; k++)
{
x += k * k;
}
for (k = 1; k <= 10; k++)
{
x += 1 / k;
}
printf("结果为:%lf", x);
}
运行结果示例:
手写版:
2. 第二题
#include<stdio.h>
// 判断是否是水仙花数,是则返回1,否则返回0
int judge(int n);
void main()
{
printf("水仙花数有:\n");
for (int i = 100; i < 1000; i++)
{
if (judge(i))
{
printf("%d ", i);
}
}
}
int judge(int n)
{
int a = n, a1, a2, a3;
a1 = a % 10;
a /= 10;
a2 = a % 10;
a /= 10;
a3 = a;
if (a1 * a1 * a1 + a2 * a2 * a2 + a3 * a3 * a3 == n)
{
return 1;
}
return 0;
}
运行结果示例:
手写版:
3.第三题
#include<stdio.h>
void main()
{
int v[] = { 0,0,0,0 }, k, sum = 0, a = -1;
printf("开始计票:\n");
// 输入
while (1)
{
scanf("%d", &k);
if (k >= 1 && k <= 4)
{
v[k - 1]++;
sum++;
}
else if (k == -1)
{
break;
}
}
printf("zhang,wang,li,zhao的得票是:%d,%d,%d,%d\n", v[0], v[1], v[2], v[3]);
for (int i = 0; i < 4; i++)
{
if (v[i] > sum / 2)
{
a = i;
}
}
if (a == -1)
{
printf("无当选者\n");
}
if (a == 0)
{
printf("当选者是zhang\n");
}
if (a == 1)
{
printf("当选者是wang\n");
}
if (a == 2)
{
printf("当选者是li\n");
}
if (a == 3)
{
printf("当选者是zhao\n");
}
}
运行结果示例:
手写版:
4.第四题
#include<stdio.h>
// 画整幅图
void p1(int n);
// 画行。x个字母,y个空格
void p2(int x, int y);
void main()
{
char ch;
int n;
// 输入
while (1)
{
printf("请输入一个英文字母:");
scanf("%c", &ch);
if (ch >= 'A' && ch <= 'Z')
{
n = ch - 'A' + 1;
break;
}
if (ch >= 'a' && ch <= 'z')
{
n = ch - 'a' + 1;
break;
}
}
// 画图
p1(n);
}
void p1(int n)
{
/*
* 第i行画i*2-1个字母
* 左右各画n-1个空格
*/
// 画上三角
for (int i = 1; i <= n; i++)
{
p2(i * 2 - 1, n - i);
}
// 画下三角
for (int i = n - 1; i >= 1; i--)
{
p2(i * 2 - 1, n - i);
}
}
void p2(int x, int y)
{
char c1 = 'A' + (x + 1) / 2 - 1, c2 = ' ';
// 画左边空格
for (int i = 0; i < y; i++)
{
printf("%c", c2);
}
// 画中间字母
for (int i = 0; i < x; i++)
{
printf("%c", c1);
}
// 画右边空格(其实画不画右边的空格都无所谓)
for (int i = 0; i < y; i++)
{
printf("%c", c2);
}
printf("\n");
}
运行结果示例:
手写版: