实验4
实验4
#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; } void dec_to_n(int x, int n) { int i = -1, j; char A[17] = { "0123456789ABCDEF" }; int B[30]; while (x) { i++; B[i] = x % n; x /= n; } for (j = i; j >= 0; j--) { printf("%c", A[B[j]]); } printf("\n"); }

实验5
#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"); output(scores, N); 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"); } double average(int x[], int n) { double j=0; int i; for ( i = 0; i <n; i++) { j += x[i]; } return (j / n); } void bubble_sort(int x[], int n) { int m,i,j; for ( i = 0; i <n; i++) { for ( j = 0; j <n; j++) { if (x[i]>x[j]) { m = x[i]; x[i] = x[j]; x[j] = m; } } } }

实验6
1 #include <stdio.h> 2 #include <string.h> 3 4 #define N 5 5 #define M 20 6 7 // 函数声明 8 void output(char str[][M], int n); 9 void bubble_sort(char str[][M], int n); 10 11 int main() { 12 char name[][M] = { "Bob", "Bill", "Joseph", "Taylor", "George" }; 13 int i; 14 15 printf("输出初始名单:\n"); 16 output(name, N); 17 18 printf("\n排序中...\n"); 19 bubble_sort(name, N); // 函数调用 20 21 printf("\n按字典序输出名单:\n"); 22 output(name, N); 23 24 return 0; 25 } 26 27 // 函数定义 28 // 功能:按行输出二维数组中的字符串 29 void output(char str[][M], int n) { 30 int i; 31 32 for (i = 0; i < n; ++i) 33 printf("%s\n", str[i]); 34 } 35 36 void bubble_sort(char str[][M], int n) { 37 int i, j; 38 char t[20]; 39 for (i = 0; i < n - 1; i++) 40 { 41 for (j = 0; j < n - 1 - i; j++) 42 { 43 if (strcmp(str[j], str[j + 1]) > 0) 44 { 45 strcpy(t, str[j]); 46 strcpy(str[j], str[j + 1]); 47 strcpy(str[j + 1], t); 48 } 49 } 50 } 51 }

实验7
1 #include<stdio.h> 2 #include<string.h> 3 int func(char a[]); 4 5 int main() { 6 char num[100]; 7 while (gets_s(num) != NULL) 8 { 9 if (func(num)) 10 printf("Yes\n"); 11 else 12 printf("No\n"); 13 } 14 return 0; 15 } 16 17 int func(char a[]) { 18 int i, j; 19 for (i = 0; a[i] != '\0'; i++) 20 { 21 for (j = i + 1; a[j] != '\0'; j++) 22 { 23 if (a[i] == a[j]) 24 return 1; 25 } 26 } 27 return 0; 28 }

实验8
1 #include <stdio.h> 2 #define N 100 3 #define M 4 4 5 // 函数声明 6 void output(int x[][N], int n); 7 void rotate_to_right(int x[][N], int n); 8 9 10 int main() { 11 int t[][N] = { {21, 12, 13, 24}, 12 {25, 16, 47, 38}, 13 {29, 11, 32, 54}, 14 {42, 21, 33, 10} }; 15 16 printf("原始矩阵:\n"); 17 output(t, M); // 函数调用 18 19 rotate_to_right(t, M); // 函数调用 20 21 printf("变换后矩阵:\n"); 22 output(t, M); // 函数调用 23 24 return 0; 25 } 26 27 // 函数定义 28 // 功能: 输出一个n*n的矩阵x 29 void output(int x[][N], int n) { 30 int i, j; 31 32 for (i = 0; i < n; ++i) { 33 for (j = 0; j < n; ++j) 34 printf("%4d", x[i][j]); 35 36 printf("\n"); 37 } 38 } 39 40 // 函数rotate_to_right()定义 41 // 功能: 把一个n*n的矩阵x,每一列向右移, 最右边被移出去的一列绕回左边 42 void rotate_to_right(int x[][N], int n) { 43 int i, j,k; 44 int t[N]; 45 for (i = 0; i < n; i++) 46 { 47 t[i] = x[i][n - 1]; 48 } 49 for (i = n - 1; i > 0; i--) 50 { 51 for (j = 0; j < n; j++) 52 { 53 x[j][i] = x[j][i - 1]; 54 } 55 } 56 for (j = 0; j < n; j++) 57 { 58 x[j][0] = t[i]; 59 i++; 60 } 61 }


浙公网安备 33010602011771号