实验4

tast1.1

#include <stdio.h> #define N 4 void test1() { int a[N] = {1, 9, 8, 4}; int i; // 输出数组a占用的内存字节数 printf("sizeof(a) = %d\n", sizeof(a)); // 输出int类型数组a中每个元素的地址、值 for (i = 0; i < N; ++i) printf("%p: %d\n", &a[i], a[i]); // 输出数组名a对应的值 printf("a = %p\n", a); }void test2() { char b[N] = {'1', '9', '8', '4'}; int i; // 输出数组b占用的内存字节数 printf("sizeof(b) = %d\n", sizeof(b)); // 输出char类型数组b中每个元素的地址、值 for (i = 0; i < N; ++i) printf("%p: %c\n", &b[i], b[i]); // 输出数组名b对应的值 printf("b = %p\n", b); } int main() { printf("测试1: int类型一维数组\n"); test1(); printf("\n测试2: char类型一维数组\n"); test2(); return 0; }


test1.2

#include <stdio.h>
#define N 2
#define M 4
void test1() {
int a[N][M] = {{1, 9, 8, 4}, {2, 0, 4, 9}};
int i, j;
// 输出int类型二维数组a占用的内存字节数
printf("sizeof(a) = %d\n", sizeof(a));
for (i = 0; i < N; ++i)
for (j = 0; j < M; ++j)
printf("%p: %d\n", &a[i][j], a[i][j]);
printf("\n");
// 输出int类型二维数组名a, 以及,a[0], a[1]的值
printf("a = %p\n", a);
printf("a[0] = %p\n", a[0]);
printf("a[1] = %p\n", a[1]);
printf("\n");
}
void test2() {
char b[N][M] = {{'1', '9', '8', '4'}, {'2', '0', '4', '9'}};
int i, j;
// 输出char类型二维数组b占用的内存字节数
printf("sizeof(b) = %d\n", sizeof(b));
// 输出char类型二维数组b中每个元素的地址、值
for (i = 0; i < N; ++i)
for (j = 0; j < M; ++j)
printf("%p: %c\n", &b[i][j], b[i][j]);
printf("\n");
// 输出char类型二维数组名b, 以及,b[0], b[1]的值
printf("b = %p\n", b);
printf("b[0] = %p\n", b[0]);
printf("b[1] = %p\n", b[1]);
}
int main() {
printf("测试1: int型两维数组");
test1();
printf("\n测试2: char型两维数组");
test2();
return 0;
}



test 2
#include <stdio.h>
#include <string.h>
#define N 80
void swap_str(char s1[N], char s2[N]);
void test1();
void test2();
int main() {
printf("测试1: 用两个一维char数组,实现两个字符串交换\n");
test1();
printf("\n测试2: 用二维char数组,实现两个字符串交换\n");
test2();
return 0;
}
void test1() {
char views1[N] = "hey, C, I hate u.";
char views2[N] = "hey, C, I love u.";
printf("交换前: \n");
puts(views1);
puts(views2);
swap_str(views1, views2);
printf("交换后: \n");
puts(views1);
puts(views2);
}
void test2() {
char views[2][N] = {"hey, C, I hate u.",
"hey, C, I love u."};
printf("交换前: \n");
puts(views[0]);
puts(views[1]);
swap_str(views[0], views[1]);
printf("交换后: \n");
puts(views[0]);
puts(views[1]);
}
void swap_str(char s1[N], char s2[N]) {
char tmp[N];
strcpy(tmp, s1);
strcpy(s1, s2);
strcpy(s2, tmp);
}

test 3

#include <stdio.h>
#define N 80
int count(char x[]);
int main() {
char words[N+1];
int n;
while(gets(words) != NULL) {
n = count(words);
printf("单词数: %d\n\n", n);
}
return 0;
}
int count(char x[]) {
int i;
int word_flag = 0; // 用作单词标志,一个新单词开始,值为1;单词结束,值为0
int number = 0; // 统计单词个数
for(i = 0; x[i] != '\0'; i++) {
if(x[i] == ' ')
word_flag = 0;
else if(word_flag == 0) {
word_flag = 1;
number++;
}
}
return number;
}

test4

#include<stdio.h>
void dec(int x, int n);
int main1() {
    int x;
    printf("输入一个十进制整数:");
    while (scanf_s("%d", &x) != EOF) {
        dec(x, 2);
        dec(x, 8);
        dec(x, 16);
    }


    return 0;
}
void dec(int x, int n) {
    char qwe[16] = "0123456789ABCDEF";
    char qw[30];
    int p;
    int k = 0;
    int r;

     do{
        p = x%n;
        x /= n;
        qw[k] = qwe[p];
        k++;
     } while (x != 0); 




     for (int i=k-1;i>=0;i--){ 
         printf("%c", qw[i]);
    }
     
    printf("\n");
     
}

 

 

test 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;
}

void input(int x[], int n) {
    int i;
    for (i = 0; i < n; ++i)
        scanf_s("%d", &x[i]);
}

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) {
    int qwe=0;
    for (int i = 0;i < n;i++) {
        qwe += x[i];
    }
    qwe=qwe*1.0/n;
    return  qwe;
}
void bubble_sort(int x[], int n) {
    int i, j, k;
for (i = 0;i < n-1;i++) {
        for (j = 0;j < n-1 - i;j++) {
            if (x[j] < x[j + 1]) {
                k = x[j];
                x[j] = x[j + 1];
                x[j + 1] = k;

            }
        }
    }

}

 

 

 

test 6

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define N 5
#define M 20

void output2(char str[][M], int n);
void bubble_sort2(char str[][M], int n);
int main() {
    char name[][M] = { "Bob", "Bill", "Joseph", "Taylor", "George" };

    printf("输出初始名单:\n");
    output2(name, N);
    printf("\n排序中...\n");
    bubble_sort2(name, N); 
    printf("\n按字典序输出名单:\n");
    output2(name, N);
    return 0;
}
void output2(char str[][M], int n) {
    int i;
    for (i = 0; i < n; ++i)
        printf("%s\n", str[i]);
}
void bubble_sort2(char str[][M], int n) {
    int i, j;
    char k[M] ;
    for (i = 0;i < N - 1;i++) {
        for (j = 0;j < N - 1 - i;j++) {
            if (strcmp(str[j], str[j + 1])>0) {
                strcpy(k, str[j + 1]);
                strcpy(str[j+1],str[j]);
                strcpy(str[j],k);

            }
        }
    }









}

 

 

 

test7

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    char qwe[99];
    int k;
    int i, j;
    int qw = 0;
    while ((scanf("%s", &qwe))!=EOF) {
        for (k = 0;qwe[k] != '\0';k++) 
        for (i = 0;i <= k;i++) {
            for (j = i + 1;j  < k;j++) {
                if (qwe[i] == qwe[j]) {
                    printf("yes\n");
                    i += 1000;
                    j += 1000;
                    
                }
            }
            qw++;
        
        }

        if (qw == k) {
            printf("no\n");

        }
    }
    return 0;
}

 test 8

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 100
#define M 4
void output3(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");
    output3(t, M); 
    rotate_to_right(t, M); 
    printf("变换后矩阵:\n");
    output3(t, M); 
    return 0;
}
void output3(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 r;
    int i , j ;
    for (i = 0;i < n;i++) {
        r = x[i][0];
        for (j = 0;j < M;j++) {
            x[i][j] = x[i][j + 1];
        }
        x[i][M] = r;
    }


}

 

 

 

 

posted @ 2023-11-19 17:53  李宇晨呵呵  阅读(20)  评论(0)    收藏  举报