目录
找两个数的最大公约数
法1
int main() { int m, n; scanf("%d %d", &m, &n); int ret = m < n ? m : n;//求得到m和n中较小的那个数 while (1) { if (m%ret == 0 && n%ret == 0)//从m与n的最小值中开始减,减到if成立 { break;//当ret同时能够被m和n整除时,ret就是最大公约数 } ret--; } printf("%d", ret); return 0; }
法2辗转相除法求最大公约数
int main() { int m, n; scanf("%d %d", &m, &n);//假设输入24 18,ret=24%18=6,将n的值赋给m,m=18,ret的值赋给n,ret=6,18%6=0;while就停下来此时n的值就是最大公约数,若输入的是18,24,18/%24=18,也会把两者进行交换 int ret = 0; while (ret = m % n)//ret为0就停下来了, { m = n; n = ret; } printf("%d", n); return 0; }
判断一个数是否是素数
int main() { int flag = 1; int num,i; scanf("%d", &num); for (i = 2; i < num; i++)//从2到num-1对num进行试除,一旦除成功就跳出去 { if (num%i == 0) { flag = 0; break; } } if (flag) { printf("是素数"); } else printf("不是素数"); return 0; }
#include<math.h> int main() { int i; int flag = 1; int num = 13; for (i = 2; i <= sqrt(num); i++) { if (num%i == 0) { flag = 0; break; } } if (flag) { printf("是素数"); } return 0; }
模拟实现用户输入密码登入界面
用户只有3次输入密码的机会,三次都错误就退出界面
int main() { int i = 0; char password[20] = ""; 假设密码是123456 for (i = 0; i < 3; i++) { printf("请输入密码\n"); scanf("%s", password); 对字符串进行判断相等,用strcmp if (strcmp(password, "123456") == 0) { printf("登录成功\n"); } } if (i == 3)//i最后自增到3<3不成立就不执行了,往下i=3,3次都失败了 { printf(" 登录失败,退出程序\n"); } return 0; }