注意事项 a必须大于0
#define _CRT_SECURE_NO_WARNINGS #include
#include int main() { //b方减去4倍的ac赋值给 变量d 规则:d>0则有俩实数根 d<0则没有 d=0则有一个 double a, b, c, d, x1, x2; //输入三个数空格隔开 scanf("%lf %lf %lf", &a, &b, &c); if (a) { d = b * b - 4 * a * c; if (d > 0) { x1 = (-b + sqrt(d)) / (2 * a); x2 = (-b - sqrt(d)) / (2 * a); printf("x1=%.2lf,x2=%.2lf", x1, x2); } else if (d == 0) { x1 = x2 = (-b) / 2; printf("x1=%.2lf,x2=%.2lf", x1, x2); } else { printf("无实数根"); } } else { printf("请输入a大于0的数"); } return 0; }
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int year;
//请输入年份 口诀:跟4取余等于0 "且" 跟100取余不等于0 "或" 跟400取余等于0
scanf("%d", &year);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
printf("%d是闰年", &year);
else
printf("%d不是闰年", year);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS #include
void main() { //输出0到n的斐波那契数 int t1 = 0, t2 = 1, n, nextNum; //请输入n scanf("%d", &n); for (int i = 0; i < n; i++) { printf("%-4d", t1); nextNum = t1 + t2; t1 = t2; t2 = nextNum; } }
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
//辗转相除法
int main()
{
int a, b;
int t;
scanf("%d %d", &a, &b);
while (b != 0) {
t = a % b;
a = b;
b = t;
printf("a=%d b=%d t=%d\n", a, b, t);
}
printf("最大公约数是%d\n", a);
return 0;
}
#include
int gys(int,int);
//递归方法
int main()
{
int n1, n2;
printf("输入两个正整数: ");
scanf("%d %d", &n1, &n2);
printf("%d 和 %d 的最大公约数为 %d", n1, n2, gys(n1,n2));
return 0;
}
int gys(int n1, int n2)
{
if (n2 != 0)
return hcf(n2, n1%n2);
else
return n1;
}
#include "stdio.h"
int gys(int m, int n){ //定义函数
if(m % n == 0) return n;
else return gcd(n, m%n); //辗转相除法
}
void main() {
int a,b, t,zxgbs;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
if(a < b) {t=a, a=b, b=t; } //确保 a>b
t = gys(a, b); // 递归调用
printf("%d和%d的最大公约数是:%d\n",a,b,t);
zxgbs = (a * b)/ t; // 两个数的乘积除最大公约数就是最小公倍数
printf("%d和%d的最小公倍数是:%d",a,b,lcm);
}
#include
int main()
{
int n1, n2, minMultiple;
printf("输入两个正整数: ");
scanf("%d %d", &n1, &n2);
// 判断两数较大的值,并赋值给 minMultiple
minMultiple = (n1>n2) ? n1 : n2;
// 条件为 true
while(1)
{
if( minMultiple%n1==0 && minMultiple%n2==0 )
{
printf("%d 和 %d 的最小公倍数为 %d", n1, n2,minMultiple);
break;
}
++minMultiple;
}
return 0;
}
#include
long int multiplyNumbers(int n);
//递归阶乘
int main()
{
int n;
printf("输入一个整数: ");
scanf("%d", &n);
printf("%d! = %ld", n, multiplyNumbers(n));
return 0;
}
long int multiplyNumbers(int n)
{
if (n > 1)
return n*multiplyNumbers(n-1);
else
return 1;
}
#include
int main()
{
int base, exponent;
long long result = 1;
printf("基数: ");
scanf("%d", &base);
printf("指数: ");
scanf("%d", &exponent);
while (exponent != 0)
{
result *= base;
--exponent;
}
printf("结果:%lld", result);
return 0;
}
#include
#include
//使用pow()函数
int main()
{
double base, exponent, result;
printf("基数: ");
scanf("%lf", &base);
printf("指数: ");
scanf("%lf", &exponent);
// 计算结果
result = pow(base, exponent);
printf("%.1lf^%.1lf = %.2lf", base, exponent, result);
return 0;
}
//递归
#include
int power(int n1, int n2);
int main()
{
int base, powerRaised, result;
printf("基数: ");
scanf("%d",&base);
printf("指数(正整数): ");
scanf("%d",&powerRaised);
result = power(base, powerRaised);
printf("%d^%d = %d", base, powerRaised, result);
return 0;
}
int power(int base, int powerRaised)
{
if (powerRaised != 0)
return (base*power(base, powerRaised-1));
else
return 1;
}
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;
#include
int main()
{
int n,num,newnum = 0, item;
printf("输入一个整数: ");
scanf("%d", &n);
num = n;
// 翻转
while( n!=0 )
{
item = n%10;
newnum = newnum*10 + item;
n /= 10;
}
// 判断
if (num == newnum)
printf("%d 是回文数。", num);
else
printf("%d 不是回文数。", num);
return 0;
}
质数又称素数,有无限个。质数定义为在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数,这样的数称为质数。(只能被1和它本身整除的数是素数)
#include
int main()
{
int n, i, flag = 0;
printf("输入一个正整数: ");
scanf("%d",&n);
for(i=2; i<=n/2; ++i) {
// 符合该条件不是素数
if(n%i==0) {
flag = 1;
break;
}
}
if (flag==0)
printf("%d 是素数",n);
else
printf("%d 不是素数",n);
return 0;
}
#include
//判断两个数之间的素数
int checkPrimeNumber(int n);
int main()
{
int n1, n2, i, flag;
printf("输入两个正整数: ");
scanf("%d %d", &n1, &n2);
printf("%d 和 %d 间的素数为: ", n1, n2);
for(i=n1+1; i