100到200之间的素数
int i= 1, p = 0;for (i = 1; i <= 2000; i++) {int sum = i + 100;p = sqrt(sum);if (p * p == sum) {sum += 168;p = sqrt(sum);if (p * p == sum) {printf("%dn",i);}}}
99乘法表
voidninenine() {int i;for ( i = 0; i < 9; i++){ int j;for (j =1; j <=i; j++)printf("%d*%d=%2dt",i,j,i*j);printf("n"); } }
判断1000年---2000年之间的闰年
int checkThousand() {int year;for ( year = 1000; year <=2000 ; year++)if ((year%4==0&&year%100!=0)||(year%400==0)) printf("%dt",year); }
两个值的内容进行交换。
int change() {int a = 10,b = 20;int temp = a; a = b; b = temp;printf("a=%d,b=%d",a,b);return 0; } /*a1 = 0x01; //0000 0001 a2 = 0x00; //0000 0000 a3 = 0x03; //0000 0011 a4 = 0x02; //0000 0010 b1 = a1 ^ a2; //0000 0001 b2 = a1 ^ a3; //0000 0010 b3 = a1 ^ a4; //0000 0011 */ int change2() {int a = 10;int b = 20;//^位异或a = a ^ b;b = a ^ b;a = a ^ b;printf("a=%d,b=%d",a,b);return 0; }
求10个整数中最大值
int max() {int arr[10] = { 0,1,23,21,20,88,29,3 };int i, max = arr[0];for ( i = 0; i <10; i++)if (arr[i]>max) max = arr[i];printf("max=%dn",max);return 0; }
将三个数按从大到小输出
int arraythree() {int a, b, c, temp;printf("please enter values:");scanf_s("%d %d %d",&a,&b,&c);if (a<b) {exchange(a, b);if (a<c) {exchange(a, c);if (b<c) exchange(b, c);printf("the order is:%d,%d,%dn",a,b,c);return 0; } int exchange(int *x,int *y) {int temp = x;x = y;y = temp;return 0; }
求两个数的最大公约数
1.辗转相除法 void maxPublic() {int a, b;printf_s("please enter values:");scanf_s("%d %d",&a,&b);while (a%b) {int temp = a % b;a = b;b = temp;}printf_s("the max common divisor is %dn",b); } 2.短除法 int a, b;printf("input a,b(a>b):");scanf("%d %d",&a,&b);if (a < b) {int t = a; a = b; b = t;}int k = b;for (; k >=1; k--) {if (a % k == 0 && b % k == 0)break;}printf("最大公约数:%d,最小公倍数:%d",a*b/k,k); 3.递归 int dig(int a,int b) {if (b == 0)return a;while (b) {return dig(b,a%b);} } int main() { int a, b; printf("input a,b(a>b):"); scanf("%d %d",&a,&b); if (a < b) {int t = a; a = b; b = t; } printf("最大公约数:%d,最小公倍数:%d",(a*b)/ dig(a, b),dig(a, b));return 0; }
计算Fibonacci数列(斐波那契)
// 1 1 2 3 5 ................ 数列40个数 //递归 int fn(int n) {if (n < 3)return 1;else return fn(n - 1) + fn(n - 2); } void fns() {int i;for (i = 1; i <= 40; i++) {printf("%12d", fn(i));if (i % 5 == 0)printf("n");} } //2.迭代int f1 = 1, f2 = 1;int i;for (int i = 1; i <= 20; i++) { //结束条件printf("%12d %12d", f1, f2);if (i % 2 == 0) printf("n"); //if语句作用是使输出4个数后换行f1 = f1 + f2;f2 = f2 + f1;} //3.数组 int i;int f[20] = { 1,1 };for (i = 2; i < 40; i++) {f[i] = f[i - 2] + f[i - 1];}for (i = 0; i < 40;i++) {if (i % 5 == 0)printf("n");printf("%12d", f[i]);} double f[50];f[1] = 1; f[2] = 1;for (int i = 3; i <= 49; i++) {f[i] = f[i - 1] + f[i - 2];}for (int i = 1; i < 50; i++) {printf("%.lfn",f[i]);}
回文检查
int checkClicy() {int n, reverse = 0, rem, temp;printf("Enter an interger");scanf_s("%d",&n);temp = n;while (temp!=0){rem = temp % 10;reverse = reverse * 10 + rem;temp /= 10;}if (reverse==n) {printf("%d is a palindrome.",n);}else{printf("%d is not a palindrome.",n);}return 0; }
检查一个数能不能表示成两个质数之和
int prime(int n) {int i, flag = 1;if (n == 1)flag = 0;for (i = 2; i < n; i++) //或者 i<=sqrt(n){if (n % i == 0) { flag = 0; break; }}return flag; } //检查一个数能不能表示成两个质数之和 void checksum() {int n, i, flag = 0;printf_s("Enter a positive integer:");scanf_s("%d",&n);for ( i = 2; i < n/2; i++){if (prime(i)!=0) {if (prime(n-i)!=0) {printf("%d=%d+%dn",n,i,n-i);flag = 1;}}}if (flag==0) {printf("%d cant't be sum of two prime numbers.",n);} }
打印金字塔和三角形
void triangle() {int i, j, rows;printf(" Enter the number of rows:");scanf_s("%d", &rows);for (i = 1; i <= rows; i++){for (j = 1; j <= i; j++){printf("*");}printf("n");} } //倒金字塔三角形 void invertedTriangle() {int i, j, rows;printf_s("Enter the number of rows:");scanf_s("%d",&rows);for (i =rows; i>=1; i--){for (j =1; j<=i ; j++){printf("*");}printf("n");} } //用 * 打印金字塔 void trigon() {int i, space, rows, k = 0;printf_s("Enter the number of rows:");scanf_s("%d",&rows);for ( i = 1; i <=rows ; ++i){for (space = 1; space <= rows-i;space++) {printf(" ");}while (k!=2*i-1){printf("*");k++;}k = 0;printf("n");} } //用 * 打印倒金字塔 void delta() {int rows, i, j, space;printf("Enter number of rows:");scanf_s("%d",&rows);for ( i =rows; i>=1;i--){for (space=0;space<=rows-i;space++){printf(" ");}for (j = i; j <= 2 * i - 1; ++j){printf("*");}for (j = 0; j <i-1; j++){printf("*");}printf("n"); }
简单的加减乘除计算器
void counter() {char o;float num1, num2;printf_s("Enter operator either + or - or * or divide:");scanf_s("%c", &o);printf_s("Enter two operands:");scanf_s("%f%f", &num1, &num2);switch (o){case '+':printf("%.1f+%.1f=%.1f",num1,num2,num1+num2);break;case '-':printf("%.1f-%.1f=%.1f", num1, num2, num1 - num2);break;case '*':printf("%.1f*%.1f=%.1f", num1, num2, num1 * num2);break;case '/':printf("%.1f/%.1f=%.1f", num1, num2, num1 / num2);break;default:printf("Error! operator is not correct");break;} }
颠倒字符串(递归)
void Reverse() {char c;scanf_s("%c", &c);if (c != 'n') {Reverse();printf_s("%c",c);} } int main() {printf_s("Enter a sentence:");Reverse();return 0; }
实现二进制与十进制之间的相互转换
int decimal_binary(int n) {int rem, i = 1, binary = 0;while (n!=0) {rem = n % 2;n / 2;binary += rem * i;i *= 10;}return binary; } int binary_deciaml(int n) {int decimal = 0, i = 0, rem;while (n!=0){rem = n % 10;n / 10;decimal += rem * pow(2, i);++i;}return decimal; }
使用多维数组实现两个矩阵的相加
int TwoRectangleAdd() {int r, c, a[100][100], b[100][100], sum[100][100], i, j;printf("Enter number of rows(between 1 and 100):");scanf_s("%d",&c);printf("n Enter elements of lst martix:n");for ( i = 0; i < r; i++){for (j == 0; j < c;j++) {printf("Enter element a%d%d",i+1,j+1);scanf_s("%d",&a[i][j]);} } printf("Enter elements of 2nd matrix:n"); for ( i = 0; i < r; i++) {for (j = 0; j < c; j++) {printf("Enter element a%d%d",i+1,j+1);scanf_s("%d",&b[i][j]);}} /*Adding Two matrices*/ for ( i = 0; i < r; i++) {for (j = 0; j < c; j++) {sum[i][j] = a[i][j] + b[i][j];}} /*Displaying th resultant sum matrix.*/ printf("nSum of two matrix is:nn"); for ( i = 0; i < r; i++) {for ( j = 0; j < c; j++){printf("%d",sum[i][j]);if (j==c-1) {printf("nn");}} } }
数组[N]排序
#define N 10int main() {int a[N], i,j,t;for (i = 0; i < N; i++)scanf("%d",&a[i]);for (i = 0; i < N-1; i++) {for (j =i+1; j < N; j++) {if (a[i] > a[j]) {t = a[i]; a[i] = a[j]; a[j] = t;}}}/*冒泡排序for (i = 0; i < N; i++) {for (j =0; j < N-1-i; j++) {if (a[j] > a[j+1]) {t = a[j]; a[j] = a[j+1]; a[j+1] = t;}}}*/for (i = 0; i < N; i++)printf("%dt",a[i]);return 0; }
输入一行小写字母后,将字母变成其下一字母(a->b,b->c,y->a)
(a变成b、b变成c、c变成d、…、x变成y、y变成z、z变成a)输出。 //第一种char s[100]; int i;printf("input a string:");for (i = 0; (s[i]=getchar())!= 'n'; i++) {s[i] = s[i] == 'z' ? 'a' : ++s[i];}s[i] = '