C语言经典100题(手把手 编程) 每日更新若干题代码//P1程序代码#include#pragma warning(disable : 4996)int main()/*我的这个思想是边判断变输出思想就是每个位都能输出1234四个数但是必须每位不一样在进行位赋值之后判断是否一样如果一样那么使用continue过掉这个一样的数值进行自加那么久两位就不会一样了。*//*老师的思想更简单就是所有赋值完之后再判断每个位是否一样这样就等于将所有数据进行判断筛选出每个位不一样的进行输出也是另一种思路而且老师的这个长远看来适合复杂的数据*//*总结编程模块化很重要一个地方能处理的话就不要两个地方去处理。*/int g, s, b;//分别是百位十位个位int T;//总数for (g 1; g 5; g)for (s 1; sif (s g)continue;for ( b 1; b 5 ; b)if (b g || b s)continue;T g * 100 s * 10 b * 1;printf(%d\n, T);return 0;/////////////////////////////////////////////////////////////////////////P2程序代码#include#pragma warning(disable : 4996)void main()//***************************定义***********************************typedef long float lf; // 定义了一个long float类型的别名lflf Percent10000, Rank10000; //分红比例档位数值lf benificial, bonus 0.00; //利润分红int rank 0, times; //第几个档位。需要几档lf range10000; //各个档位区间范围//*****************************档位设置******************************printf(请将公司利润分为若干档位不同档位同时设置不同分红比例\n);printf(请设置若干个档位);scanf(%d, ×); // 输入档位数if (times 10000)printf(请将档位控制在二到一万以内请重新运行程序);exit(1);printf(*********************************************\n);printf(正在进行档位设置:\n);Rank 0;// 设置各个档位的数值和分红比例if (times 1)for (size_t i 1; i times; i)printf(第%d个档位的数值为%lf至, i, Ranki - 1);scanf(%lf, Rank); // 输入档位的数值printf(第%d档位的范围是大于%lf\n, times, Ranktimes - 1);for (size_t k 0; k times; k)printf(第%d个档位的分红比例为, k 1);scanf(%lf, Percent); // 输入档位的分红比例Percent (Percent/ 100.0); // 将分红比例转换为小数形式elseprintf(请输入合适的档位);//***********************************主程序********************************while (1)printf(请输入本月公司利润输入负数或0可退出\n);scanf(%lf, benificial); // 输入本月公司利润if (benificial Rankrank;elseprintf(当前利润值有%d档, t 1);// 计算各个档位区间的长度for (size_t u 0; u rank - 1; u)range Ranku 1- Rank// 计算分红金额for (size_t j 0; j times; j)bonus (bonus (range* Percent));if (j rank - 2)bonus (bonus (benificial - Rankrank - 1) * Percentrank - 1);break;elseprintf(应当分红%f\n, bonus);bonus 0;rank 0;return 0;////////////////////////////////////////////////////////////////////////第三天习题的作业代码 有不理解可以私信#include/*整体思路先由x做等式联立第一第二行等式。计算出m与n的关系。再由第一行平方数变量n进行穷举得出对应x再将x带入等式二进行计算符合条件即为可能答案*/int main()int arr_m169, arr_n169; // 定义数组存储m和n的值int times 0; // 计数器int Multi_m, Multi_n; // 存储m和n的临时变量float num; // 存储结果的变量// 遍历m和n的取值for (size_t m 0; m 169; m)for (size_t n 0; n 169; n)// 判断 mn 与 m-n 的乘积是否等于 168if (((m n) * (m - n)) 168)printf(m与n的值分别为%d,%d\n, m, n);arr_mtimes m; // 将m存入数组arr_ntimes n; // 将n存入数组times; // 计数器加一else; // 不满足条件时不进行额外操作// 遍历符合条件的m和n的组合for (size_t i 0; i times; i)Multi_n arr_n; // 取出n的值Multi_m arr_m; // 取出m的值num ((Multi_n * Multi_n) - 100); // 计算方程式的结果if ((num 100 168) (Multi_m * Multi_m))printf(方程式的结果为%f\n, num); // 输出符合条件的结果else; // 不满足条件时不进行额外操作return 0;///////////////////////////////////////////////////////////////////P4代码示例#include#pragma warning(disable : 4996)int calculateDays(int year, int month, int day)int sum 0;int isLeapYear (((year % 4) 0) ((year % 100) ! 0) || ((year % 400) 0));int arr_day { 31, isLeapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };for (int i 1; i month; i) {sum arr_dayi - 1return sum day;int main()int year, month, day;while (1) {printf(请输入年月日以计算多少天(以逗号进行分割));scanf(%d,%d,%d, year, month, day);// 验证日期的有效性if (year 0 || month 1 || month 12 || day 1 || day 31) {printf(请输入正确的日期\n);continue;int totalDays calculateDays(year, month, day);if (totalDays 0) {printf(截至%d年%d月%d日共有%d天\n, year, month, day, totalDays);else {printf(计算过程中发生错误请重新输入日期\n);char choice;printf(是否继续计算(Y/N): );scanf( %c, choice);if (choice N || choice n) {break;system(cls);return 0;/////////////////////////////////////////////////////////////////P5程序代码#include#pragma warning(disable : 4996)int main()int x, y, z;int minValue, midValue, maxValue;printf(请输入三个数字以空格分隔);scanf(%d %d %d, x, y, z);minValue x;midValue y;maxValue z;// 交换最小值和中间值if (minValue midValue) {int temp minValue;minValue midValue;midValue temp;// 交换中间值和最大值if (midValue maxValue) {int temp midValue;midValue maxValue;maxValue temp;// 再次检查最小值和中间值的顺序if (minValue midValue) {int temp minValue;minValue midValue;midValue temp;printf(数值排序是%d, %d, %d, minValue, midValue, maxValue);return 0;/////////////////////////////////////////////////////////////////P6代码#includeint main()// 打印菱形的上半部分for (size_t i 0; i 5; i)for (size_t j i; j 5; j)printf( ); // 打印空格if (i 0 j 4)printf(* * * * * * ); // 在第一行最后一个位置打印星号序列printf(*\n); // 每行结束打印一个星号和换行符// 打印菱形的下半部分for (size_t i 0; i 6; i)for (size_t j i; j 0; j--)printf( ); // 打印空格if (i 5 j 1)printf(* * * * * * ); // 在最后一行第一个位置打印星号序列printf(*\n); // 每行结束打印一个星号和换行符return 0;///////////////////////////////////////////////////////////P8九九乘法表#includeint main()int multi;for (size_t i 1; i 10; i)for (size_t j 1; j 10; j)multi i * j;printf(%d*%d%d\n, i, j,multi);return 0;///////////////////////////////////////////////////////////////////////P11兔子生崽#include/*程序首先定义了一个整数变量month表示月份初始化为40表示计算40个月的兔子数量。然后定义一个长度为40的整型数组arrnum初始值为{1,1}表示第一个月和第二个月兔子的数量。接下来使用for循环遍历每一个月利用斐波那契数列的规律计算兔子的数量。在每个循环中首先判断当前的月份是否小于2若是则输出对应月份的兔子数量并将sign加1。然后在第三个月及之后的月份通过上两个月兔子的数量相加得到当前月份的兔子数量并将结果存入arrnum数组中同时输出对应月份的兔子数量。最后程序返回0表示程序正常结束。*/int main()int rabbits;int month40;int arrnum40 { 1,1 };int sign0;for (size_t i 0; i month; i)if (sign 2)printf(第%d个月的兔子数量是%d\n, i 1, arrnum);sign;if (i2)rabbits (arrnumi - 1 arrnumi - 2);arrnum rabbits;printf(第%d个月的兔子数量是%d\n, i1,rabbits);return 0;/////////////////////////////////////////////////////////////P9判断素数#include#pragma warning(disable : 4996)int main()