// 1. 四舍五入
#include "stdio.h"
int main()
{
float fd;
scanf("%f", &fd);
int id = (int)(fd + 0.5f);
printf("%f 四舍五入 = %d", fd, id);
return 0;
}
// 2. 反序
#include "stdio.h"
int main()
{
int d, t;
scanf("%d", &d);
printf("%g 反序 =", d);
while (d != 0 && ((d % 10) == 0)) d/=10;
do{
printf("%d", d % 10);
}while (d /= 10);
return 0;
}
// 3. 字母 ascii
#include "stdio.h"
#include "conio.h"
int main()
{
char ch = getch();
printf("%c ascii = %d", ch, (int)ch);
return 0;
}
// 4. 平均成绩
#include "stdio.h"
int main()
{
float d1, d2, d3;
scanf("%f,%f,%f", &d1, &d2, &d3);
printf("平均成绩 = %.2f", (d1+d2+d3)/3.f);
return 0;
}
// 5. 分区间计算y
#include "stdio.h"
int main()
{
float x, y;
scanf("%f", &x);
if (-10 < x && x < 0){ y = x + 10; }
else if (0 <= x && x < 10) { y = 2 * x; }
else { y = x* x; }
printf("y = %f", y);
return 0;
}
// 6. 成绩评定
#include "stdio.h"
int main()
{
int x;
scanf("%d", &x);
char res;
switch (x / 10)
{
case 10:
case 9: res = 'A'; break;
case 8: res = 'B'; break;
case 7: res = 'C'; break;
case 6: res = 'D'; break;
default:res = 'E'; break;
}
printf("x = %c", res);
return 0;
}
// 7. 最10个数中的最大值
#include "stdio.h"
int main()
{
int a[10], max, i;
for (i = 0; i < 10; ++i){
scanf("%d", &a[i]);
}
max = a[0];
for (i = 1; i < 10; ++i){
if (max < a[i]){
max = a[i];
}
}
printf("max = %d\n", max);
return 0;
}
// 8. 输出金字塔
#include <stdio.h>
int main()
{
int i, j, k, n = 5;
for (i = 0; i < n; i++)
{
for (j = 1; j < n - i; j++)
printf(" ");
for (k = 0; k < i + 1; k++)
printf("%d", k + 1);
for (k = i; k--;)
printf("%d", k + 1);
printf("\n");
}
return 0;
}
// 9. 数组插入
#include <stdio.h>
int main(){
int i, j, num;
int a[10] = { 2, 4, 6, 8, 10 };
printf("数组为:");
for (i = 0; i < 5; i++)
printf("%4d", a[i]);
printf("\n输入一个数:");
scanf("%d", &num);
for (i = 0; i < 6; i++){
if (num < a[i])
break;
}
for (j = 5; j > i; j--){
a[j] = a[j - 1];
}
a[j] = num;
printf("结果为:");
for (i = 0; i < 6; i++)
printf("%4d", a[i]);
return 0;
}
// 10. 偶数字符串
#include <stdio.h>
int main()
{
int i, j;
char s[100] = {}, d[100] = {};
printf("输入字符串:");
gets(s);
for (i = 0, j = 0; s[i]; i++){
if ((s[i] % 2) == 0) d[j++] = s[i];
}
printf("结果为:%s", d);
return 0;
}
// 11. 各位数求和
#include "stdio.h"
int fun(int x)
{
int r = 0;
do{
r += x % 10;
} while (x /= 10);
return r;
}
int main()
{
int d;
printf("输入整数:");
scanf("%d", &d);
printf("%d 求和 = %d", d, fun(d));
return 0;
}
// 13. 交换最大最小数
#include "stdio.h"
void fun1(int* x)
{
int i;
printf("输入10个整数:");
for (i = 0; i < 10; ++i){
scanf("%d", &x[i]);
}
}
void fun2(int* x)
{
int i;
int *minp = x;
int *maxp = x;
for (i = 0; i < 10; ++i){
if (*minp > x[i]) minp = x + i;
if (*maxp < x[i]) maxp = x + i;
}
int temp = *minp; *minp = x[0]; x[0] = temp;
temp = *maxp; *maxp = x[9]; x[9] = temp;
}
void fun3(int* x)
{
int i;
printf("结果为:");
for (i = 0; i < 10; i++)
printf("%4d", x[i]);
}
int main()
{
int d[10];
fun1(d);
fun2(d);
fun3(d);
return 0;
}
// 14. 围圈报数
#include<stdio.h>
int baoshu3(int* p, int n)
{
int m = n;
for (int i = 0; i < n; ++i) {
*(p + i) = i + 1;
}
for (int i = 0, k = 1; m > 1; ++i) {
if (*(p + i) != 0) {
k += 1;
if (k == 4) {
k = 1;
*(p + i) = 0;
m -= 1;
}
}
if (i == n - 1) {
i = -1;
}
}
for (int i = 0; i < n; ++i) {
if (*(p + i) != 0) {
return *(p + i);
}
}
return -1;
}
int main() {
int n; int d[300];
printf("请输入人数n: ");
scanf("%d", &n);
printf("最后留下的是%d号\n", baoshu3(d, n));
return 0;
}