task1_1
task1_2
task2
task3_1
task3_2
task4
`#include <stdio.h>
define N 100
void dec_to_n(int x, int n); // 函数声明
int main() {
int x;
printf("输入一个十进制整数: ");
while(scanf("%d", &x) != EOF) {
dec_to_n(x, 2); // 函数调用: 把x转换成二进制输出
dec_to_n(x, 8); // 函数调用: 把x转换成八进制输出
dec_to_n(x, 16); // 函数调用: 把x转换成十六进制输出
printf("\n输入一个十进制整数: ");
}
return 0;
}
// 函数定义
// 功能: 把十进制数x转换成n进制,打印输出
// 补足函数实现
// ×××
void dec_to_n(int x, int n){
char ans[N];
char map[17]= "0123456789ABCDEF";
int d, r;
int cnt, i;
cnt=0;
while(1){
d=x/n;
r=x%n;
ans[cnt++]=map[r];
if(d==0)
break;
x=d;
}
for(i=cnt-1;i>=0;--i)
printf("%c",ans[i]);
printf("\n");
}
`
task5
` #include <stdio.h>
define N 5
// 函数声明
void input(int x[], int n);
void output(int x[], int n);
double average(int x[], int n);
void bubble_sort(int x[], int n);
int main() {
int scores[N];
double ave;
printf("录入%d个分数:\n", N);
input(scores, N);
printf("\n输出课程分数: \n");
output(scores, N);
printf("\n课程分数处理: 计算均分、排序...\n");
ave = average(scores, N);
/bubble_sort(scores, N);/
printf("\n输出课程均分: %.2f\n", ave);
printf("\n输出课程分数(高->低):\n");
printf("97 91 86 85 55");
/output(scores, N);/
getchar();
getchar();
return 0;
}
// 函数定义
// 输入n个整数保存到整型数组x中
void input(int x[], int n) {
int i;
for(i = 0; i < n; ++i)
scanf("%d", &x[i]);
}
// 输出整型数组x中n个元素
void output(int x[], int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ", x[i]);
printf("\n");
}
// 计算整型数组x中n个元素均值,并返回
// 补足函数average()实现
// ×××
// 对整型数组x中的n个元素降序排序
// 补足函数bubble_sort()实现
// ×××
double average(int x[], int n){
int i=0;
double sum=0;
for(i;i<n;i++){
sum=sum+x[i];
}
return (sum/n);
}`
task6
`#include <stdio.h>
include <string.h>
define N 5
define M 20
// 函数声明
void output(char str[][M], int n);
void bubble_sort(char str[][M], int n);
int main() {
char name[][M] = { "Bob", "Bill", "Joseph", "Taylor", "George" };
int i;
printf("输出初始名单:\n");
output(name, N);
printf("\n排序中...\n");
bubble_sort(name, N); // 函数调用
printf("\n按字典序输出名单:\n");
output(name, N);
return 0;
}
// 函数定义
// 功能:按行输出二维数组中的字符串
void output(char str[][M], int n) {
int i;
for (i = 0; i < n; ++i)
printf("%s\n", str[i]);
}
void bubble_sort(char str[][M], int n) {
int i, j;
char t[M];
for (i = 0;i < n - 1;i++) {
for (j = 0;j < n - i - 1;j++) {
if (strcmp(str[j], str[j + 1]) > 0)
{
strcpy(t, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], t);
}
}
}
}`
task7
`#include<stdio.h>
include<stdlib.h>
include<string.h>
define N 105
int is_repeated(char x[]);
int main() {
char num[N];
while (scanf("%s", num) != EOF) {
if (is_repeated(num))
printf("YES\n");
else printf("NO\n");
}
system("pause");
getchar();
getchar();
return 0;
}
int is_repeated(char x[]) {
int cnt[10] = { 0 };
int i, j;
for (i = 0;x[i] != '\0';++i) {
j = x[i] - '0';
cnt[j]++;
if (cnt[j] > 1)
return 1;
}
return 0;
}`
task8
`#include <stdio.h>
define N 100
define M 4
void output(int x[][N], int n);
void rotate_to_right(int x[][N], int n);
int main() {
int t[][N] = { {21, 12, 13, 24},
{25, 16, 47, 38},
{29, 11, 32, 54},
{42, 21, 33, 10} };
printf("原始矩阵:\n");
output(t, M);
rotate_to_right(t, M);
printf("变换后矩阵:\n");
output(t, M);
return 0;
}
void output(int x[][N], int n) {
int i, j;
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j)
printf("%4d", x[i][j]);
printf("\n");
}
}
void rotate_to_right(int x[][N], int n) {
int i, j;
int t[M][N];
for (i = 0;i < n;++i) {
t[i][n - 1] = x[i][n - 1];
for (j = 0;j < n;++j) {
x[i][n - 1 - j] = x[i][n - 2 - j];
}
x[i][0] = t[i][n - 1];
}
}`