1.空心正方形图案
解题思路:
这里我们只把四条边的内容打印成*,其他内容打印成空格即可。
解题代码:
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
for (i = 0; i < n; i++) //外循环为行
{
int j = 0;
for (j = 0; j < n; j++) //内循环为列
{
if (i == 0 || i == n - 1 || j == 0 || j == n - 1)//找规律
printf("* ");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
2.空心三角形图案
解题思路:
这里我们需要把两个边和对角打印*,其余的地方打印空格即可。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j <= i; j++)
{
if (j == 0 || i == n - 1 || i == j)
printf("* ");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
3.平均身高
解题思路:
把五个值加起来,再除以五即可。
解题代码:
#include<stdio.h>
int main()
{
int i = 0;
double h = 0.0;
double sum = 0.0;
for (i = 0; i < 5; i++)
{
scanf("%lf", &h);
sum += h;
}
printf("%.2lf", sum / 5.0);
return 0;
}
4.HTTP状态码
解题思路:
这里我们使用switch,case语句完成。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while((scanf("%d", &n)) != EOF)
{
switch (n)
{
case 200:
printf("OK\n");
break;
case 202:
printf("Accepted\n");
break;
case 400:
printf("Bad Request\n");
break;
case 403:
printf("Forbidden\n");
break;
case 404:
printf("Not Found\n");
break;
case 500:
printf("Internal Server Error\n");
break;
case 502:
printf("Bad Gateway\n");
break;
}
}
}
5.数字三角形
解题思路:
这里和打印*号三角形逻辑差不多。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
while ((scanf("%d", &n)) != EOF)
{
int i = 0;
for (i = 1; i <= n; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d ", j);
}
printf("\n");
}
}
return 0;
}
6.公务员面试
解题思路:
这题的关键是如何找出最大值和最小值。
解题代码:
#include<stdio.h>
int main()
{
int n = 0;
int sum = 0;
int max = 0;//假设我们最大值
int min = 100;//假设我们最小值
while (1!=EOF)
{
int i = 0;
for (i = 0; i < 7; i++)
{
scanf("%d", &n);
sum += n;
if (n > max)//每比较一次就更改一次最大值,直到最后,里面就是最大值
max = n;
if (n < min)//每比较一次就更改一次最小值,直到最后,里面就是最小值
min = n;
}
}
printf("%.2lf", (sum - max - min) / 5.0);
return 0;
}
方法2:
我们创建一个数组,然后把数据存在数组里面,再把数组冒泡排序,再减去下标为0和下标为6的数字除以5即可。
解题代码:
#include<stdio.h>
int main()
{
int arr[7] = { 0 };
int i = 0;
int sum = 0;
for (i = 0; i < 7; i++)
{
scanf("%d", &arr[i]);
sum += arr[i];
}
for (i = 0; i <= 6; i++)
{
int j = 0;
for (j = 0; j < 7 - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
printf("%.2lf", (sum - arr[0] - arr[6]) / 5.0);
return 0;
}