当前位置: 首页 > news >正文

C#程序代码

C#程序代码

文章目录

  • C#程序代码
          • 一、倒序输出
          • 二、大小写转换
          • 三、计算1-50中是7的倍数的数值之和
          • 四、判断是否为闰年
          • 五、求1+2+3++100的和
          • 六、求n!
          • 七、输入三个整数,由大到小排列
          • 八、求解一元二次方程
          • 九、学生成绩转换
          • 十、运输公司对用户计算运输费用。
          • 十一、输出星星
          • 十二、九九乘法口诀表
          • 十三、输出菱形
          • 十四、求最大公约数和最小公倍数
          • 十五、输出所有的水仙花数
          • 十六、判断是否是素数
          • 十七、输出100-200之间的所有素数

一、倒序输出
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int number;   // 存储用户输入的整数(会被修改)int digit;    // 用于保存每次从 number 中取出的个位数字// 提示用户输入一个整数printf("请输入一个数:");// 读取用户输入的整数并存储到变量 number 中scanf("%d", &number);// 输出提示信息:即将开始倒序输出该数的每一位printf("倒序输出的值为:");// 方法一:使用 while 循环(推荐用于正数处理)/*while (number != 0)           // 当 number 不为 0 时继续循环{digit = number % 10;      // 取出当前 number 的个位数字printf("%d", digit);      // 输出这个数字number = number / 10;     // 去掉最后一位(整除10)}*/// 方法二:使用 do...while 循环/*do{digit = number % 10;      // 取个位printf("%d", digit);      // 输出number = number / 10;     // 去掉个位} while (number != 0);        // 条件判断在循环末尾执行*/// ⚠️ 注意:如果输入的是 0,do-while 至少执行一次 → 正确输出 "0"// 但 while 版本不会进入循环 → 需要特殊处理!// 方法三:使用 for 循环(当前启用版本)for (; number != 0; number /= 10){digit = number % 10;      // 取出个位数字printf("%d", digit);      // 立即输出// number /= 10 相当于 number = number / 10,在每次循环后自动执行}// 换行,使输出更清晰printf("\n");return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
二、大小写转换
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出头文件,用于使用 printf 和 scanf 函数int main()
{char ch;  // 定义一个字符变量 ch,用于存储用户输入的单个字符// 提示用户输入一个字符printf("请输入一个字符:");// 读取用户输入的一个字符并存储到变量 ch 中// %c 格式符表示读取单个字符(包括空格、字母、符号等)scanf("%c", &ch);/* 方法一:使用条件运算符(三目运算符)实现大小写转换(已被注释)** 解释:* (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;* 如果 ch 是大写字母(在 'A' 到 'Z' 范围内),则将其转换为小写(ASCII 加 32)* 否则保持不变** 示例:* 'A' + 32 = 'a'* 'B' + 32 = 'b'*//*ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;printf("%c\n", ch);*/// 方法二:使用 if-else 语句判断并处理(当前启用版本)if (ch >= 'A' && ch <= 'Z')  {// 如果输入的字符是大写字母(ASCII 在 'A'~'Z' 范围内)// 将其转换为对应的小写字母:ASCII 码加 32// 因为大写和小写之间的 ASCII 差值为 32ch = ch + 32;// 输出转换后的小写字母printf("%c\n", ch);}else{// 如果不是大写字母(如小写字母、数字、标点符号、空格等)// 直接输出原始字符,不做任何修改printf("%c\n", ch);}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
三、计算1-50中是7的倍数的数值之和
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 函数(本程序未使用 scanf)int main()
{int number;       // 循环变量:用于遍历从 1 到 50 的每一个整数int sum = 0;      // 累加器:用于保存所有 7 的倍数之和,初始化为 0// 输出提示信息printf("7的倍数有:");// 使用 for 循环遍历从 1 到 50(包含)的所有整数for (number = 1; number <= 50; number++){// 判断当前 number 是否能被 7 整除(即是否为 7 的倍数)if (number % 7 == 0){// 如果是 7 的倍数,则打印该数字,用制表符 \t 分隔,保持格式整齐printf("%d\t", number);// 将这个倍数加入到累加器 sum 中sum = sum + number;}// 如果不是 7 的倍数,则跳过,继续下一次循环}// 换行后输出所有符合条件的数字之和printf("\n和为:%d\n", sum);return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
四、判断是否为闰年
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int year;  // 定义一个整型变量 year,用于存储用户输入的年份// 提示用户输入一个年份printf("请输入年份:");// 读取用户输入的整数并存储到变量 year 中scanf("%d", &year);// 判断是否为闰年的条件(根据公历规则):// 闰年规则:// 1. 能被 4 整除 且 不能被 100 整除 → 是闰年// 2. 或者:能被 400 整除 → 也是闰年if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){// 如果满足上述任一条件,则该年是闰年printf("%d是闰年\n", year);}else{// 不满足条件则为平年printf("%d是平年\n", year);}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
五、求1+2+3++100的和
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等标准输入输出函数的安全警告#include <stdio.h>  // 包含标准输入输出头文件,用于使用 printf 和 scanf 等函数int main()
{int i = 1;        // 循环控制变量:表示当前累加的数字,从 1 开始int sum = 0;      // 累加器:用于存储累加结果,初始值设为 0(因为加法单位元是 0)// 方法一:while 语句(已被注释)/*while (i <= 100)          // 当 i 小于等于 100 时继续执行循环{sum = sum + i;        // 将当前 i 的值加到 sum 上i = i + 1;            // i 自增 1,进入下一个数}// 特点:先判断条件,再执行循环体。如果初始 i > 100,则一次都不执行。*/// 方法二:do...while 语句(已被注释)/*do{sum = sum + i;        // 先执行一次累加操作i = i + 1;            // i 自增}while (i <= 100);         // 判断是否满足继续条件// 特点:先执行一次循环体,再判断条件。即使 i 初始大于 100 也会执行一次(可能导致错误)// 注意:若 i 初始为 1,则能正确计算 1~100 的和*/// 方法三:for 语句(当前启用版本)for (i = 1; i <= 100; i++)  // for(初始化; 条件判断; 更新){sum = sum + i;          // 每次将当前 i 加入总和// 第一次:sum=0+1=1;第二次:sum=1+2=3;……}// 循环结束后,sum 中保存的就是 1 到 100 的累加结果// 输出最终的求和结果printf("sum=%d\n", sum);return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
六、求n!
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int i = 1;        // 循环变量:用于从 1 开始递增到 nint n;            // 存储用户输入的整数 n,表示要求 n 的阶乘int s = 1;        // 累乘器:用于保存阶乘结果,初始值设为 1(因为乘法单位元是 1)// 提示用户输入一个整数 nprintf("请输入N的值:");// 读取用户输入的整数并存储到变量 n 中scanf("%d", &n);// 方法一:while 语句(已被注释)/*while (i <= n)          // 当 i 小于等于 n 时继续循环{s = s * i;          // 将当前 i 值乘入累乘器 si = i + 1;          // i 自增 1,准备下一次迭代}*/// 方法二:do...while 语句(已被注释)/*do{s = s * i;          // 先执行一次乘法操作i = i + 1;          // i 自增}while (i <= n);         // 判断是否继续循环// 注意:这种方法在 n=0 时会出错,因为先执行再判断,导致多乘一次 i=1*/// 方法三:for 语句(当前启用版本)for (i = 1; i <= n; i++)  // 初始化 i=1;当 i<=n 时执行循环体;每次循环后 i++{s = s * i;            // 将当前 i 值乘入结果 s// 例如:第一次 s=1*1=1,第二次 s=1*2=2,第三次 s=2*3=6...}// 循环结束后,s 中保存的就是 n!// 输出最终的阶乘结果printf("s=%d\n", s);return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
七、输入三个整数,由大到小排列
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 的安全警告#include <stdio.h>  // 包含标准输入输出头文件,用于使用 printf 和 scanf 函数int main()
{int x, y, z;        // 定义三个整型变量,用于存储用户输入的三个正整数int temp;           // 临时变量,用于交换两个数的值// 提示用户输入三个正整数,用空格分隔printf("请输入三个正整数:");// 读取用户输入的三个整数,格式为:数字 数字 数字(例如:5 3 8)scanf("%d %d %d", &x, &y, &z);// 第一次比较:确保 x 是 x 和 y 中较大的那个if (x < y){temp = x;   // 将 x 的值保存到 tempx = y;      // 把较大的 y 赋给 xy = temp;   // 把原来的 x 值赋给 y// 结果:x >= y}// 第二次比较:确保 x 是 x 和 z 中较大的那个(即 x 成为三者中的最大值)if (x < z){temp = x;   // 将 x 的值保存到 tempx = z;      // 把较大的 z 赋给 xz = temp;   // 把原来的 x 值赋给 z// 结果:x >= z,并结合前面逻辑 → x 是最大值}// 第三次比较:确保 y 是 y 和 z 中较大的那个(此时 x 已经是最大)// 所以只需对 y 和 z 排序,使得 y >= zif (y < z){temp = y;   // 将 y 的值保存到 tempy = z;      // 把较大的 z 赋给 yz = temp;   // 把原来的 y 值赋给 z// 结果:y >= z}// 此时,x >= y >= z,三个数已按从大到小顺序排列printf("%d、%d、%d\n", x, y, z);  // 输出排序后的结果,使用顿号分隔return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
八、求解一元二次方程
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{double a, b, c;double delta, root1, root2, realPart, imagPart;// 提示用户输入方程的系数printf("请输入一元二次方程 ax^2 + bx + c = 0 的系数 a, b, c:");scanf("%lf,%lf,%lf", &a, &b, &c);// 检查 a 是否为 0,如果为 0 则不是一元二次方程if(a==0){printf("当 a = 0 时,这不是一个一元二次方程。\n");return 1;}// 计算判别式delta = b * b - 4 * a * c;// 根据判别式的值进行不同情况的处理if(delta>0){// 有两个不相等的实数根root1 = (-b + sqrt(delta)) / (2 * a);root2 = (-b - sqrt(delta)) / (2 * a);printf("方程有两个不相等的实数根:\n");printf("x1 = %f\n", root1);printf("x2 = %f\n", root2);}else if(delta==0){// 有两个相等的实数根root1 = root2 = -b / (2 * a);printf("方程有两个相等的实数根:\n");printf("x1 = x2 = %f\n", root1);}else{// 没有实数根,有两个共轭复数根realPart = -b / (2 * a);imagPart = sqrt(-delta) / (2 * a);printf("方程没有实数根,有两个共轭复数根:\n");printf("x1 = %f + %fi\n", realPart, imagPart);printf("x2 = %f - %fi\n", realPart, imagPart);}return 0;
}
九、学生成绩转换
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 的安全警告#include <stdio.h>  // 包含标准输入输出头文件,用于使用 printf 和 scanf 函数int main()
{// 方法一:使用 if-else 语句判断成绩等级(被注释掉)/*float score;        // 定义浮点型变量 score,用于存储用户输入的成绩(可带小数)char grade;         // 预留字符变量,可用于后续存储等级字母(本程序直接打印未使用)printf("请输入学生的成绩:");  // 提示用户输入成绩scanf("%f", &score);          // 读取用户输入的浮点数成绩// 使用 if-else 多分支结构进行等级判断if (score >= 90){printf("等级:A");         // 成绩 >= 90 分 → A 等}else if (score >= 80){printf("等级:B");         // 80 <= 成绩 < 90 → B 等}else if (score >= 70){printf("等级:C");         // 70 <= 成绩 < 80 → C 等}else if (score >= 60){printf("等级:D");         // 60 <= 成绩 < 70 → D 等}else{printf("等级:E");         // 成绩 < 60 → E 等(不及格)}*/// 方法二:使用 switch 语句判断成绩等级(当前启用版本)int score;  // 定义整型变量 score,只接受整数成绩(如 85、92)// 使用整型便于通过除以 10 来获取十位数作为 switch 判断依据printf("请输入学生的成绩:");      // 提示用户输入成绩scanf("%d", &score);              // 读取一个整数成绩// 将成绩除以 10 取整,得到其“十位数”// 例如:95 / 10 = 9, 87 / 10 = 8, 100 / 10 = 10// 然后根据这个值进入不同的 case 分支switch (score / 10){case 10:    // 当成绩为 100 时,100/10=10case 9:     // 当成绩在 [90, 99] 时,score/10 = 9printf("等级:A"); break;  // 跳出 switch,防止继续执行下一个 case(避免“穿透”)case 8:     // [80, 89]printf("等级:B"); break;case 7:     // [70, 79]printf("等级:C"); break;case 6:     // [60, 69]printf("等级:D"); break;default:    // 其他情况:包括 [0, 59] 和非法负数或超过 100 的值printf("等级:E");  // 统一归为 E 等(不及格)// 注意:这里没有 break,但由于是最后一个分支,不影响结果}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十、运输公司对用户计算运输费用。
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 对 scanf、printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int c;            // 分段标识变量:用于表示距离 s 所处的区间段(每250km一段)float p, w, d, f, s;  // p: 单价(每吨每千米的运费)// w: 重量(单位:吨)// s: 距离(单位:千米)// d: 折扣率(单位:%)// f: 最终总运费(单位:元)// 提示用户输入单价、重量和距离,并以逗号分隔三个浮点数printf("请输入单价、重量、距离:");  // 使用 scanf 读取用户输入的三个浮点数值// 输入格式必须为:单价,重量,距离(例如:3.5,4.0,600)scanf("%f,%f,%f", &p, &w, &s);// 根据距离 s 计算所属的折扣区间编号 c// 每 250km 为一个区间:[0,250) -> 0, [250,500) -> 1, ..., [2500,) -> 10+c = (int)(s / 250);  // 使用 switch 语句根据 c 的值确定对应的折扣率 d(单位:%)switch (c){case 0:     // 距离小于 250km:无折扣d = 0;break;case 1:     // 距离在 [250, 500) km:2% 折扣d = 2;break;case 2:case 3:     // 距离在 [500, 1000) km:5% 折扣d = 5;break;case 4:case 5:case 6:case 7:     // 距离在 [1000, 2000) km:8% 折扣d = 8;break;case 8:case 9:case 10:case 11:    // 距离在 [2000, 3000) km:10% 折扣d = 10;break;default:    // 其他情况(即距离 >= 3000km):最大折扣 15%d = 15;break;}// 计算实际运费:// 原始费用 = 单价 * 重量 * 距离// 实际费用 = 原始费用 × (1 - 折扣率/100)// 例如:折扣 10%,则支付 90%f = p * w * s * (1 - d / 100.0);// 输出最终总费用,格式化为右对齐、占10个字符宽度、保留两位小数printf("总费用:%10.2f元\n", f);return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十一、输出星星
#define _CRT_SECURE_NO_WARNINGS 1  
// 宏定义:禁用 Visual Studio 编译器对标准输入输出函数(如 printf)的安全性警告#include <stdio.h>  
// 包含标准输入输出头文件,以便使用 printf 函数进行屏幕输出int main()
{int i, j;  // 定义两个整型变量:// i: 控制外层循环,表示当前是第几行// j: 控制内层循环,表示当前行要打印多少个星号// 外层 for 循环:控制打印的行数// i 从 1 开始,到 7 结束(共 7 行)for (i = 1; i <= 7; i++){// 内层 for 循环:控制每一行中星号的个数// j 从 0 开始,小于 i 时继续循环,因此每行打印 i 个星号// 例如:当 i=1 时,j=0 → 执行一次 → 打印 1 个 *//       当 i=2 时,j=0,1 → 执行两次 → 打印 2 个 *for (j = 0; j < i; j++){printf("*");  // 每次循环打印一个星号 '*'// 注意:这里没有换行,所有 '*' 在同一行连续输出}// 当前这一行星号打印完成后,换行// 进入下一次外层循环,打印下一行printf("\n");}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十二、九九乘法口诀表
#define _CRT_SECURE_NO_WARNINGS 1  // 禁用 Visual Studio 对 scanf、printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出头文件,用于使用 printf 函数int main()
{int i, j, score;  // 定义三个整型变量:// i: 外层循环变量,表示乘法表中的第一个乘数(从 1 到 9)// j: 内层循环变量,表示第二个乘数(从 1 到 i)// score: 存储 i 和 j 相乘的结果// 外层循环:控制行数,i 从 1 到 9for (i = 1; i <= 9; i++){// 内层循环:控制每行中列的数量,j 从 1 到 i// 这样可以保证只打印下三角部分(即 j <= i)for (j = 1; j <= i; j++){score = i * j;  // 计算当前两个数的乘积// 打印格式为 "i*j=score",并用制表符 \t 分隔,保持对齐printf("%d*%d=%d\t", i, j, score);}// 每完成一行后换行,进入下一行printf("\n");}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十三、输出菱形
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告
// 在学习阶段使用标准输入输出函数是安全且常见的做法#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 函数(本程序未使用 scanf)int main()
{int i, j, k;  // 循环控制变量// i: 控制行数// j: 控制每行星号前的空格数量// k: 控制每行要打印的星号 '*' 的数量// *******************************// 第一部分:打印菱形的上半部分(包含中间最长一行)// 共 4 行,形成一个顶点在上的等腰三角形// *******************************for (i = 1; i <= 4; i++)  // 控制行数:共 4 行(第1到第4行){// 第一个内层循环:打印每行前面的空格// 随着行数增加,空格减少for (j = 1; j <= 4 - i; j++){printf(" ");  // 打印一个空格,用于居中对齐}// 第二个内层循环:打印星号 '*'// 星号数量为奇数序列:1, 3, 5, 7(对应 2*i - 1)for (k = 1; k <= 2 * i - 1; k++){printf("*");  // 打印一个星号}// 每行结束后换行printf("\n");}// *******************************// 第二部分:打印菱形的下半部分(不包含中间那一行)// 共 3 行,形成一个顶点在下的倒三角形// *******************************for (i = 1; i <= 3; i++)  // 控制行数:共 3 行(第5到第7行){// 第一个内层循环:打印每行前面的空格// 随着行数增加,空格增多(与上半部对称)for (j = 1; j <= i; j++){printf(" ");  // 打印空格,使图形保持居中}// 第二个内层循环:打印星号 '*'// 星号数量递减:5, 3, 1(公式为 7 - 2*i)// 当 i=1 → 7-2=5//     i=2 → 7-4=3//     i=3 → 7-6=1for (k = 1; k <= 7 - 2 * i; k++){printf("*");  // 打印星号}// 每行结束后换行printf("\n");}return 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十四、求最大公约数和最小公倍数
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int m, n;           // 存储用户输入的两个整数int i, j;           // 辅助变量:i 用于保存 m*n(用于计算 LCM),j 用于存储余数int temp;           // 临时变量,用于交换 m 和 n 的值// 提示用户输入两个整数 M 和 Nprintf("请输入M和N的值:");// 读取用户输入的两个整数,分别赋值给 m 和 nscanf("%d %d", &m, &n);// 确保 m >= n,方便后续进行辗转相除// 如果 n > m,则交换它们的值if (n > m){temp = n;       // 将 n 的值暂存到 tempn = m;          // 把 m 的值赋给 nm = temp;       // 把原来 n 的值赋给 m// 经过这三步,实现了 m 和 n 的值交换}// 保存 m 和 n 的原始乘积,用于后续计算最小公倍数(LCM)// 因为公式是:LCM(m, n) = (m * n) / GCD(m, n)i = m * n;// 使用欧几里得算法(辗转相除法)求最大公约数(GCD)// 原理:gcd(a, b) = gcd(b, a mod b),直到 b 为 0while (n != 0)      // 当 n 不等于 0 时继续循环{j = m % n;      // 计算 m 除以 n 的余数,保存在 j 中m = n;          // 将 n 的值赋给 m(被除数变成除数)n = j;          // 将余数 j 赋给 n(除数变成余数)// 这样一轮后,进入下一次循环,继续求余}// 当 n 变成 0 时,循环结束,此时 m 就是原来的两个数的最大公约数// 输出结果printf("最大公约数是:%d\n", m);           // 此时 m 就是 GCD// 利用公式:LCM = (原 m * 原 n) / GCD// 我们之前用 i = 原始 m * 原始 n 保存了乘积printf("最小公倍数是:%d\n", i / m);       // LCM = (m*n) / GCDreturn 0;  // 主函数正常结束,返回 0 表示程序执行成功
}
十五、输出所有的水仙花数
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告
// 在学习阶段使用这些标准输入输出函数是常见且安全的做法#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 函数int main()  // 主函数:程序的入口点
{int i, j, k;      // 分别表示三位数的百位、十位、个位数字int n;            // 循环变量,用于遍历所有三位数(100 到 999)int z;            // 存储各位数字立方和的结果// 输出提示信息,告诉用户接下来将显示水仙花数printf("水仙花数:");// 使用 for 循环遍历所有的三位整数(从 100 到 999)for (n = 100; n < 1000; n++){// 提取百位数字:整除 100 得到最高位// 例如:n = 153 → i = 153 / 100 = 1(整数除法自动舍去小数部分)i = n / 100;// 提取十位数字:// 先 n / 10 去掉个位 → 得到前两位(如 153 → 15)// 再 % 10 取余 → 得到个位即原来的十位(15 % 10 = 5)j = n / 10 % 10;// 提取个位数字:直接对 10 取余即可// 例如:153 % 10 = 3k = n % 10;// 计算三个数字的立方和// 即:百位^3 + 十位^3 + 个位^3z = i * i * i + j * j * j + k * k * k;// 判断当前数 n 是否等于其各位数字的立方和// 如果相等,则 n 是一个“水仙花数”if (n == z){// 输出这个水仙花数,并用制表符 \t 分隔,保持在同一行打印printf("%d\t", n);}}// 返回 0 表示程序正常结束return 0;
}
十六、判断是否是素数
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 的安全警告#include <stdio.h>  // 包含标准输入输出库,用于使用 printf 和 scanf 函数int main()
{int n;    // 存储用户输入的整数int i;    // 循环变量,用于尝试从 2 到 n-1 的每一个可能的因数// 提示用户输入一个整数printf("请输入一个整数:");// 读取用户输入的整数,并存储到变量 n 中scanf("%d", &n);// 使用 for 循环从 2 开始遍历到 n-1(即所有可能的小于 n 的因数)// 目的是检查是否存在能整除 n 的数for (i = 2; i <= n - 1; i++){// 如果 n 能被 i 整除(余数为 0),说明 i 是 n 的一个因数if (n % i == 0){// 发现因数,立即跳出循环,不需要继续检查break;}}// 循环结束后判断:// 如果 i < n,说明在循环中找到了一个因数(执行了 break),所以不是素数// 如果 i >= n,说明没有找到任何因数(循环自然结束),因此是素数if (i < n){printf("%d不是素数。\n", n);}else{printf("%d是素数。\n", n);}// 返回 0 表示程序正常结束return 0;
}
十七、输出100-200之间的所有素数
#define _CRT_SECURE_NO_WARNINGS 1  
// 禁用 Visual Studio 编译器对 scanf/printf 等函数的安全警告
// 在学习阶段使用这些标准输入输出函数是常见且可接受的做法#include <stdio.h>   // 包含标准输入输出库,用于使用 printf 函数
#include <math.h>    // 包含数学库,用于使用 sqrt() 函数(计算平方根)int main()
{int i;        // 内层循环变量:用于尝试从 2 到 √n 的每一个可能的因数int k;        // 存储 n 的平方根(整数部分),作为内层循环的上限int n;        // 外层循环变量:表示当前正在判断的数字(从 101 到 199 的奇数)int m = 0;    // 计数器:记录已找到的素数个数,用于控制每行输出 7 个数// 外层循环:遍历从 101 到 200 的所有**奇数**// 因为大于 2 的偶数一定不是素数,所以跳过偶数可以提高效率for (n = 101; n <= 200; n = n + 2)  // 每次加 2,只检查奇数{// 计算当前数 n 的平方根,并赋值给 k// 因为判断一个数是否为素数时,只需检查是否存在小于等于 √n 的因数k = (int)sqrt(n);  // 注意:sqrt 返回 double,需强制转换为 int// 内层循环:尝试用 i 从 2 到 k 去除 nfor (i = 2; i <= k; i++){if (n % i == 0)  // 如果 n 能被 i 整除,说明 n 不是素数{break;       // 提前退出内层循环,无需继续检查其他因子}}// 循环结束后判断:// 如果 i > k(即 i >= k+1),说明没有找到任何因数 → n 是素数if (i >= k + 1){printf("%d\t", n);  // 输出该素数,用制表符分隔m = m + 1;          // 素数计数器加一} // 控制格式输出:每输出 7 个素数就换一行// m % 7 == 0 表示当前已输出的素数个数是 7 的倍数if (m % 7 == 0){printf("\n");  // 换行,使输出更整齐美观}}// 返回 0 表示程序正常结束return 0;
}
http://www.dtcms.com/a/446872.html

相关文章:

  • 电商网站如何做引流广点通广告投放平台登录
  • 《API网关在企业研发协作平台中的深度定制与流程化效能重构》
  • 宁波网站排名优化seo小型网站建设价格低
  • 加强协会网站建设意义新乡百度网站优化排名
  • 企业网站优化做什么杭州网站建设前三
  • 蓝星旋钮旋转跳动大异常解决办法
  • 经营网站需要什么资质下载app软件到手机
  • 松江建设网站公司oss cdn wordpress
  • 做视频网站代码精品应用下载安装
  • 门户网站建设公司市场如何编写网站开发文档
  • Android 配置多个 cmake
  • 阿里云企业建站教程wordpress 明月浩空
  • AI智能体赋能文化传承与创新领域:社群身份认同的数字空间重构与文化融合策略
  • c 网站开发实例教学游戏网站建设系统介绍
  • 唐山建设信息网站国内网站
  • 解决leetcode第3704题统计和为N的无零数对
  • 全网通官方网站wordpress会员积分邀请
  • 吉林省高等级公路建设局死人网站网站qq登录原理
  • 网站专题页设计it运维平台
  • 核辐射探测器典型脉冲波形
  • 12306网站为什么做不好黄页88网官网
  • 网站建设讯美品牌购买平台
  • Python 集合速查:去重、并交差运算一文掌握
  • Cesium 方位角方法和原理
  • 桃城区网站制作公司上海自己注册公司
  • 举报网站建设宁波建工工程集团有限公司
  • 项目1:FFMPEG推流器讲解(一):FFMPEG重要结构体讲解
  • 做网站上海公司怎么做网站的浏览量统计
  • 如何填写网站建设计划表邯郸网站设计开发公司
  • 不需要iis的网站开发做网站有用吗