任务 2
数制转换
n % 2
k++
矩阵运算
i = 0; i < n; i++
j = i; j < n; j++
s *= x[i][j]
排序
j += 2
a[j] < a[i]
任务 3
- 顺序表的插入和删除
#include
#define M 100005
int n, data[M];
void init() {
printf("请输入顺序表长度:\n");
scanf("%d", &n);
printf("请输入顺序表元素,以空格间隔:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &data[i]);
}
}
void showMenu() {
printf("1. 插入元素\n2. 删除元素\n3. 退出\n请输入:\n");
}
void ins(int pos, int element) {
for (int i = n; i >= pos - 1; i--) {
data[i + 1] = data[i];
}
data[pos - 1] = element;
n++;
}
void del(int pos) {
for (int i = pos - 1; i < n; i++) {
data[i] = data[i + 1];
}
n--;
}
void pnt() {
for (int i = 0; i < n; i++) {
printf("%d ", data[i]);
}
printf("\n");
}
int main()
{
init();
while (1) {
int opt;
showMenu();
scanf("%d", &opt);
switch (opt) {
case 1:
printf("请输入待插入元素位与待插入元素,以空格间隔:\n");
int m, n;
scanf("%d%d", &m, &n);
ins(m, n);
printf("当前顺序表为:\n");
pnt();
break;
case 2:
printf("请输入待插入元素位与待插入元素,以空格间隔:\n");
int o;
scanf("%d", &o);
del(o);
printf("当前顺序表为:\n");
pnt();
break;
case 3:
return 0;
}
}
}
- 打鱼还是晒网
#include
int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int main() {
int y, m, d;
printf("请输入待计算的日期,年月日以空格分割:\n");
scanf("%d%d%d", &y, &m, &d);
int i, s = 0;
for (i = 1990; i < y; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
s += 366;
}
else {
s += 365;
}
}
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
days[2] = 29;
for (i = 1; i < m; i++) {
s += days[i];
}
s += d;
if ((s % 5) > 0 && (s % 5) < 4) {
printf("打鱼。\n");
}
else {
printf("晒网。\n");
}
return 0;
}
- 对称矩阵
#include
#define M 10005
int data[M][M];
int main() {
int n;
printf("请输入二维数组的长度:\n");
scanf("%d", &n);
printf("请按行输入二维数组,以空格间隔:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &data[i][j]);
}
}
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
if (data[i][j] != data[j][i]) {
printf("此矩阵不对称。\n");
return 0;
}
}
}
printf("此矩阵对称。\n");
return 0;
}
- 比较字符串大小
#include
#define M 10005
int main() {
int i = 0;
char str1[M], str2[M];
printf("请输入第一个字符串:\n");
gets(str1);
printf("请输入第二个字符串:\n");
gets(str2);
while (str1[i]) {
if (str1[i] != str2[i]) break;
else i++;
}
if ((str1[i] - str2[i]) < 0) {
printf("第一个字符串小。");
}
else if ((str1[i] - str2[i]) == 0) {
printf("两个字符串相等。");
}
else if ((str1[i] - str2[i]) > 0) {
printf("第一个字符串大。");
}
}