(1)7-2查验身份证
注意字符串输入输出、怎么把字符数组中的数字字符转换成数字进行运算。
#include <stdio.h>
int main()
{
int n;
char a[20];
int sum[20] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char m[20] = { '1','0','X','9','8','7','6','5','4','3','2'};
scanf("%d", &n);
int f = 1;
for (int i = 0; i < n; i++)
{
scanf("%s", a);
int x = 0;
for (int j = 0; j < 17; j++)
{
x = x + (a[j] - '0') * sum[j];
}
x = x % 11;
if(a[17]!=m[x])
{
printf("%s\n", a);
f = 0;
}
}
if (f == 1) {
printf("All passed");
}
return 0;
}
(2)求最大值及其下标
(3)通讯录排序
(4)复数的四则运算
1.符号问题要注意
2.注意输入的两位小数四舍五入之后的精度范围
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
typedef struct {
double x; // 实部
double y; // 虚部
} complex;
// 加法函数
complex add(complex a, complex b) {
complex result;
result.x = a.x + b.x;
result.y = a.y + b.y;
return result;
}
// 减法函数
complex subtract(complex a, complex b) {
complex result;
result.x = a.x - b.x;
result.y = a.y - b.y;
return result;
}
// 乘法函数
complex multiple(complex a, complex b) {
complex result;
result.x = a.x * b.x - a.y * b.y;
result.y = a.y * b.x + a.x * b.y;
return result;
}
// 除法函数
complex divide(complex a, complex b) {
complex result;
if (fabs(b.x) < 0.05 && fabs(b.y) < 0.05) {
result.x = 0;
result.y = 0;
}
else {
result.x = (a.x * b.x + a.y * b.y) / (b.x * b.x + b.y * b.y);
result.y = (a.y * b.x - a.x * b.y) / (b.x * b.x + b.y * b.y);
}
return result;
}
// 打印函数
void printfcomplex(complex c)
{
// 实部虚部均为0
if (fabs(c.x) < 0.05 && fabs(c.y) < 0.05) {
printf("0.0\n");
}
// 实部为0
else if (fabs(c.x) < 0.05 && fabs(c.y) >= 0.05) {
printf("%.1fi\n", c.y);
}
// 虚部为0
else if (fabs(c.x) >= 0.05 && fabs(c.y) < 0.05) {
printf("%.1f\n", c.x);
}
// 实部虚部均不为0
else {
if (c.y < 0) {
printf("%.1f%.1fi\n", c.x, c.y);
}
else {
printf("%.1f+%.1fi\n", c.x, c.y);
}
}
}
int main() {
complex num1, num2;
scanf("%lf%lf%lf%lf", &num1.x, &num1.y, &num2.x, &num2.y);
if (num1.y < 0 && num2.y < 0) {
// 加法
complex sum = add(num1, num2);
printf("(%.1f%.1fi) + (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(sum);
// 减法
complex difference = subtract(num1, num2);
printf("(%.1f%.1fi) - (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(difference);
// 乘法
complex product = multiple(num1, num2);
printf("(%.1f%.1fi) * (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(product);
// 除法
complex quotient = divide(num1, num2);
printf("(%.1f%.1fi) / (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(quotient);
}
else if (num1.y > 0 && num2.y < 0) {
// 加法
complex sum = add(num1, num2);
printf("(%.1f+%.1fi) + (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(sum);
// 减法
complex difference = subtract(num1, num2);
printf("(%.1f+%.1fi) - (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(difference);
// 乘法
complex product = multiple(num1, num2);
printf("(%.1f+%.1fi) * (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(product);
// 除法
complex quotient = divide(num1, num2);
printf("(%.1f+%.1fi) / (%.1f%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(quotient);
}
else if (num1.y < 0 && num2.y>0) {
// 加法
complex sum = add(num1, num2);
printf("(%.1f%.1fi) + (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(sum);
// 减法
complex difference = subtract(num1, num2);
printf("(%.1f%.1fi) - (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(difference);
// 乘法
complex product = multiple(num1, num2);
printf("(%.1f%.1fi) * (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(product);
// 除法
complex quotient = divide(num1, num2);
printf("(%.1f%.1fi) / (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(quotient);
}
else if (num1.y >= 0 && num2.y >= 0)
{
// 加法
complex sum = add(num1, num2);
printf("(%.1f+%.1fi) + (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(sum);
// 减法
complex difference = subtract(num1, num2);
printf("(%.1f+%.1fi) - (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(difference);
// 乘法
complex product = multiple(num1, num2);
printf("(%.1f+%.1fi) * (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(product);
// 除法
complex quotient = divide(num1, num2);
printf("(%.1f+%.1fi) / (%.1f+%.1fi) = ", num1.x, num1.y, num2.x, num2.y);
printfcomplex(quotient);
}
return 0;
}