判断素数
输入两个正整数m和n(m<n),求从m到n之间(包括m和n)所有素数的和。要求
定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被1或自身整除的自然数)
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #include <stdbool.h> // 为了使用bool类型 int isprime(int x);//声明isprime函数 int main() { int m = 0; int n = 0; int i = 0; int sum = 0; int x = 0; printf("请输入两个正整数m和n(m>n):"); scanf("%d %d", &m, &n); if (m > 0 && n > 0 && m > n) { for (i = n; i <= m; i++) { if (isprime(i)) { sum += i; } } printf("sum=%d\n", sum); } else printf("输入错误,请重新输入"); return 0; } int isprime(int x)//是素数返回1,不是素数返回0 { if (x <= 1) { return 0; } for (int i = 2; i <= sqrt(x); i++) { if (x % i == 0) { return 0;//当找到一个可以整除x的数,返回0 } } return 1;//所有数都不能整除时,返回1 }
找规律,写函数
我们很容易可以找到规律:x的次方数为几即为第几项,如果x为第偶次就是负数,为奇次就是整数,分母的位置,为几就为几的阶乘。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> double fact(double x); int main() { int i = 0; double x, n, result = 0.0; printf("请输入正实数x:"); scanf("%lf", &x); printf("请输入正实数n:"); scanf("%lf", &n); for (i = 1; i <= n; i++) { result += pow(-1, i - 1) * pow(x, i) / fact(x); } printf("和为:%lf", result); } double fact(double n) { if (n > 0) { double fact = 1; for (int i = 1; i <= n; i++) { fact *= i; } return fact; } }
寻找满足:为完全平方数,又有两位数字相同的数。
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> int samenum(int n) { if (n % 10 == n / 10 % 10 || n / 100 == n % 10 || n / 100 == n / 10 % 10) { return 1; } else return 0; } int perfectnum(int n) { for (int i = 1; i <= n; i++) { if (i * i == n) { return 0; } } return 1; } int countnum(int n){ int count = 0; if (perfectnum(n) && samenum(n)) { count++; } return count; } int main() { int n = 0; printf("请输入一个三位数:"); scanf("%d", &n); printf("满足条件的参数个数是:%d个\n", countnum(n)); }
统计一堆数组中出现某个数值的次数
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int count(int n) { int i = 0; int count = 0; int arr[10] = { 0 }; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } if (n == arr[i]) { return count; } else return 0; } int main() { int n = 0; printf("请输入你要查找的数值:\n"); scanf("%d", &n); count(n); return n; }
将十进制数字m转化为k进制数字
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> void convert(int m, int k) { int remainder = 0; while (m != 0) { remainder = m % k; printf("%d", remainder); m = m / k; } } int main() { int n = 0; int m = 0; int k = 0; printf("请输入你要转化的十进制数字:\n"); scanf("%d", &m); printf("请输入你要转化的进制数:\n"); scanf("%d", &k); convert(m, k); return n; }
复习指针去咯!下午继续写数组的题目(学校的)
附两张最近看的电影:Howel's moving castle