C语言经典编程282例07 您所在的位置:网站首页 c语言经典编程282例源码 C语言经典编程282例07

C语言经典编程282例07

2024-06-19 12:16| 来源: 网络整理| 查看: 265

036 小球下落问题

一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第十次反弹多高?

小球从100米高处自由下落,第一次落地时经过100米,这个需单独考虑,从第一次弹起到第二次落地前经过的路程为前一次的高度的一半×2,加上前面弹起的路程——因为每次都有弹起和下落两个过程。 在这里插入图片描述

#include #include #include #include #include main() { float meter = 100, high = 100; int i; for(i = 0; i int x[7], y[7], s, i; s = 2520 / 6; //平均每个人平分多少个苹果 for(i = 2; i x[i] = y[i] - y[i -1] * 1 / (10 -i); } for(i = 1; i int n; float sum1, sum2; for(n = 11 ; ; n++) { sum1 = (n + 9) / 10.0; sum2 = (9 * n + 171) / 100.0; if(sum1 != (int)sum1) { continue; } if(sum2 != (int)sum2) { continue; } if(sum1 == sum2) { break; } } printf("共有 %d 个学生\n 将糖果分成 %d份", (int)(n / sum1), n); printf("\n"); } 039 IP地址形式输出

任意输入32位的二进制数,编程实现将该二进制数转换成IP地址形式: 如: 输入: 11111111 11111111 11111111 11111111 11111111 输出: 255.255.255.255

#include #include #include #include #include int bin_dec(int x, int n) { if(n == 0) { return 1; } return x * bin_dec(x, n-1); } main() { int i, j, ip[4]= {0}; char a[33]; scanf("%s", a); for(i = 0; i ip[0] += bin_dec(2, 7 - i); } } for(i = 8; i ip[1] += bin_dec(2, 15 - i); } } for(i = 16; i ip[2] += bin_dec(2, 23 - i); } } for(i = 24; i ip[3] += bin_dec(2, 31 - i); } if(a[i] == '\0') { break; } } printf("%d . %d . %d . %d", ip[0], ip[1], ip[2], ip[3]); printf("\n"); }

//调用函数不同

#include #include #include #include #include int bin_dec(int x, int n) { if(n == 0) { return 1; } return pow(2, n); } main() { int i, ip[4] = {0}; char a[33]; scanf("%s", a); for(i = 0; i ip[0] += bin_dec(2, 7 - i); } } for(i = 8; i ip[1] += bin_dec(2, 15 - i); } } for(i = 16; i ip[2] += bin_dec(2, 23 - i); } } for(i = 24; i ip[3] += bin_dec(2, 31 - i); } if(a[i] == '\0') { break; } } printf("%d . %d . %d . %d", ip[0], ip[1], ip[2], ip[3]); printf("\n"); } 040 特殊的完全平方数

在3位整数100 ~ 999 中查找符合如下条件的整数并在屏幕上:这个数既是完全平方数,又有2个数字相同,如121(11的平方)、144(12的平分)。 在这里插入图片描述

// ____________ Me ______________ #include #include #include #include #include main() { int i, j; int hun, ten, data; for(i = 100; i if(i == j * j) { hun = i / 100; data = i - hun *100; ten = data / 10; data = data - ten * 10; if(hun == ten || hun == data || ten == data) { printf("% 5d\n", i); } } j++; } } printf("\n"); } #include #include #include #include #include main() { int i, j,x1, x2, x3; float s; for(i = 100; i s = sqrt(i); if(s == (int)s) //判断是否是整数 { printf("%d \n", i); } else { continue; } } } printf("\n"); } 041 一数三平方

有这样一个6位数,它本身是一个整数的平分,其高三位和低三位也分别是一个整数的平分,如 225625 = 475的平分,求满足上诉条件的所有6位数。

sqrt函数的返回值是一个double,若将开平分后得到的小数其小数点后的部分为0,则将其强制转换为其他整型也不会产生数据的流失。

// —————————————————————— 官方 ——————————————————————————— #include #include #include #include #include main() { long i, n, n1, n2, n3, n4, count = 0; printf("这样的数有:\n"); for(i= 100000; i n1 = i / 1000; n2 = i % 1000; n3 = (long) sqrt(n1); n4 = (long) sqrt(n2); if(n1 == n3 *n3 && n2 == n4 * n4) { count++; printf("%5d\n", i); } } } printf("\n满足条件有%d个\n", count); printf("\n"); } // —————————————————————————— ME ———————————————————— #include #include #include #include #include main() { int i, j, num; int hun, ten, data; float s_l, s_h, s; for(num= 100000; num j++; //计算个数 printf("%5d\n", num); } } printf("一共%d个\n", j); printf("\n"); } 042 求等差数列

老师给学生由前向后发糖果,每个学生得到的糖果数目成等差数列,前4个学生得到的糖果数目之和是26,积是880,编程前29名学生每个人得到的糖果数目。 在这里插入图片描述 在这里插入图片描述

—————————————————————————————— 官方—————————————————— #include #include #include #include #include main() { int j, n, number; for(number = 1; number if((4 * number + 6 * n == 26) && ((number * (number + n) * (number + 2 * n) * (number + 3 * n)) == 880)) { printf("%d %d\n", number, n); for(j = 1; j printf("\n"); } } } } } printf("\n"); } ———————————————— ME———————————————————————— //多了一个变量。 include #include #include #include #include main() { int i, a, d, num; for(a = 1; a if((4 * a + 6 * d == 26) && ((a * (a + d) * (a + 2 * d) * (a + 3 * d)) == 880)) { printf("%d %d\n", a, d); for(i = 0; i int j, i, k, a_n, b_n; for(i = 1; i if(i % j == 0) //求因子 { a_n += j; } } for(k = 1; k b_n += k; } } if(b_n == i && i != a_n && i long i, j, k1, k2, k3, a[10] = {0}, num, m, n, sum; printf("请输入一个数表示范围:\n"); scanf("%ld", &num); printf("结果是:"); for(j = 0; j a[n] = j % k1; //将分离出的数存在数组中 n++; //记录位数 k1 *= 10; //最小位数 m = m / 10; } k1 = k1 / 10; k3 = k1; for(i = 1; i printf("%5ld", sum); } } printf("\n"); }

一些知识点回顾: 看常用数据类型https://blog.csdn.net/qq_41070511/article/details/110523111



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有