C语言实例:判断素数、计算日期、完数查找、求和与最大公约数
C语言编程实例:解决五个常见问题
这篇文章将带你学习如何使用C语言解决五个经典编程问题,包含判断素数、计算日期、查找完数、求和以及计算最大公约数和最小公倍数。每个问题都提供了详细的代码示例和解释,帮助你更好地理解和掌握C语言编程。
1. 判断一个数是否为素数c#include <stdio.h>
int isPrime(int num) { if (num <= 1) { return 0; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; } } return 1;}
int main() { int num; printf('请输入一个整数: '); scanf('%d', &num); if (isPrime(num)) { printf('%d是素数 ', num); } else { printf('%d不是素数 ', num); } return 0;}
这段代码定义了一个 isPrime 函数来判断一个数是否为素数。如果一个数小于等于1,或者它能被2到其平方根之间的任何一个整数整除,那么它就不是素数。
2. 计算某年某月某日是该年的第几天c#include <stdio.h>
int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);}
int getDayOfYear(int year, int month, int day) { int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int dayOfYear = 0; for (int i = 1; i < month; i++) { dayOfYear += daysInMonth[i]; } dayOfYear += day; if (isLeapYear(year) && month > 2) { dayOfYear += 1; } return dayOfYear;}
int main() { int year, month, day; printf('请输入年份: '); scanf('%d', &year); printf('请输入月份: '); scanf('%d', &month); printf('请输入日期: '); scanf('%d', &day); int dayOfYear = getDayOfYear(year, month, day); printf('%d年%d月%d日是该年的第%d天 ', year, month, day, dayOfYear); return 0;}
这段代码定义了两个函数:isLeapYear 用于判断是否为闰年,getDayOfYear 用于计算某年某月某日是该年的第几天。
3. 找出1000以内的所有完数c#include <stdio.h>
int isPerfectNumber(int num) { int sum = 0; for (int i = 1; i <= num / 2; i++) { if (num % i == 0) { sum += i; } } return sum == num;}
int main() { printf('1000以内的完数有: '); for (int i = 1; i <= 1000; i++) { if (isPerfectNumber(i)) { printf('%d ', i); } } printf(' '); return 0;}
这段代码定义了一个 isPerfectNumber 函数来判断一个数是否为完数。如果一个数等于其所有因子(不包括自身)的和,则该数为完数。
4. 求n个数的和并输出c#include <stdio.h>
int main() { int n, num, sum = 0; printf('请输入n的值: '); scanf('%d', &n); printf('请输入%d个数: ', n); for (int i = 0; i < n; i++) { scanf('%d', &num); sum += num; } printf('这%d个数的和为: %d ', n, sum); return 0;}
这段代码从用户输入中读取 n 个数,并计算它们的和。
5. 求两个正整数的最大公约数和最小公倍数c#include <stdio.h>
int getGCD(int a, int b) { while (a != b) { if (a > b) { a -= b; } else { b -= a; } } return a;}
int getLCM(int a, int b) { return (a * b) / getGCD(a, b);}
int main() { int num1, num2; printf('请输入两个正整数: '); scanf('%d %d', &num1, &num2); int gcd = getGCD(num1, num2); int lcm = getLCM(num1, num2); printf('%d和%d的最大公约数为: %d ', num1, num2, gcd); printf('%d和%d的最小公倍数为: %d ', num1, num2, lcm); return 0;}
这段代码定义了两个函数:getGCD 用于计算两个数的最大公约数,getLCM 用于计算两个数的最小公倍数。
希望以上代码示例和解释能够帮助你更好地理解和掌握C语言编程!
原文地址: http://www.cveoy.top/t/topic/b90I 著作权归作者所有。请勿转载和采集!