#include<float.h>
#include<stdio.h>
static double income_limits[] = { 0,23350,56550,117950,256500,DBL_MAX };
static float base_tax[] = { 0,3502.5,12798.5,31832.5,81710.5 };
static float percentage[] = { .15,.28,.31,.36,.396 };
double single_tax(double income) {
int category;
//DBL_MAX限制循环
for (category = 1; income > income_limits[category]; category++) {
;
}
category--;
return base_tax[category] + percentage[category] * (income - income_limits[category]);
}
int main() {
int tax = 0;
tax = single_tax(1000.0);
printf("%d",tax);
return 0;
}
2.
-
#include<stdio.h> int indentity_matrix(int matrix[10][10]) { int row=0; int column = 0; //遍历每个元素 for (row = 0; row < 10; row += 1) { for (column = 0; column < 10; column += 1) { if (matrix[row][column] != (row == column)) return false; } } return true; } int main() { int test1[][10] = { {1,1},{0,1},{0,0,1},{0,0,0,1}, {0,0,0,0,1},{0,0,0,0,0,1},{0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,1} }; int test2[][10] = { {1,},{0,1},{0,0,1},{0,0,0,1}, {0,0,0,0,1},{0,0,0,0,0,1},{0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,0,1} }; int result; result = indentity_matrix(test1); printf("%d", result); result = indentity_matrix(test2); printf("%d", result); return 0; }
3.
-
#include<stdio.h> int indentity_matrix(int matrix[][],int size) { int row=0; int column = 0; //遍历每个元素 for (row = 0; row < size; row += 1) { for (column = 0; column < size; column += 1) { if (matrix[row][column] != (row == column)) return false; } } return true; }
-
#include<stdio.h> void matrix_multiply(int *m1, int *m2, int r, int x, int y, int z) { int *m1p; int *m2p; int k; int row; int column; for (row = 0; row < x; row++) { for (column = 0; column < z; column++) { m1p = m1 + row * y;//选择第一个矩阵的第几个元素的地址 m2p = m2 + column;//选择第二个矩阵的第几个元素的地址 r = 0; for (k = 0; k < y; k++) { r += *m1p * *m2p;//*解析地址,取出该地址的值 m1p+=1;//取下一个地址值 m2p+=z; } printf("%d\n", r); } } } int main() { int A[][2] = { {2,-6},{3,5},{1,-1} }; int B[][4] = { {4,-2,-4,-5},{-7,-3,6,7} }; int r = 0; matrix_multiply(*A,*B, r, 3, 2, 4); return 0; }
#define X 3 #define Y 2 #define Z 4 void matrix_multiply2(int matrix_a[X][Y], int matrix_b[Y][Z]) { int matrix_result[X][Z]; for (int m = 0; m < X; m++) { for (int s = 0; s < Z; s++) { matrix_result[m][s] = 0;//变量使用前记得初始化,否则结果具有不确定性 for (int n = 0; n < Y; n++) { matrix_result[m][s] += matrix_a[m][n] * matrix_b[n][s]; } } } for (int m = 0; m < X; m++) { for (int s = 0; s < Z; s++) { printf("%d\t", matrix_result[m][s]); } printf("\n"); } } int main() { int A[][2] = { {2,-6},{3,5},{1,-1} }; int B[][4] = { {4,-2,-4,-5},{-7,-3,6,7} }; int r = 0; //matrix_multiply(*A,*B, r, 3, 2, 4); matrix_multiply2(A, B); return 0; }