实验4

#include <stdio.h>
#include <math.h>
#define N 100

void dec_to_n(int x, int n)
{
    if(n == 2)
    {
        int i=0, ans=0;
        while(x != 0)
        {
            ans += (x%2)*pow(10,i);
            x /= 2;
            i++;
        }
        printf("%d\n",ans);
    }
    else if(n == 8)
    {    printf("%o\n",x);     }
    else if(n == 16)
    {    printf("%X\n",x);     }
}

int main()
{
    int x;
    printf("输入一个十进制整数: ");
    while(scanf("%d", &x) != EOF)
    {
        dec_to_n(x, 2);
        dec_to_n(x, 8);
        dec_to_n(x, 16); 
        printf("\n输入一个十进制整数: ");
    }
    
    return 0;

 


}
#include <stdio.h>
#define N 5

void input(int x[], int n)
{
    int i;
    for(i = 0; i < n; ++i)
        scanf("%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 i=0;    double ave=0;
    while(i<n)
    {
        ave += x[i];
        i++;
    }
    ave /= n;
    
    return ave;
}

void bubble_sort(int x[], int n)
{
    int i1=0;
    while(i1<n)
    {
        int i2=0,t;
        while(i2<n-i1)
        {
            if(x[i2] < x[i2+1])
            {
                t = x[i2];
                x[i2] = x[i2+1];
                x[i2+1] = t;
            }
            i2++;
        }
        i1++;
    }
}

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

 


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

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 i1=0;
    while(i1<4)
    {
        int i2=0;    char t[M];
        while(i2<n-i1-1)
        {
            if(strcmp(str[i2],str[i2+1]) > 0)
            {
                strcpy(t,str[i2]);
                strcpy(str[i2],str[i2+1]);
                strcpy(str[i2+1],t);
            }
            i2++;
        }
        i1++;
    }
}

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;

 


} 
#include <stdio.h>
#include <string.h>

int main()
{
    char arr[100];
    while(scanf("%s",&arr) != EOF)
    {
        int a=0;
        while(a < strlen(arr))
        {
            int b=a+1;
            while(b < strlen(arr))
            {
                if(arr[b] == arr[a])
                {    break;    }
                b++;
            }
            if(b < strlen(arr)-1)
            {    break;    }
            a++;
        }
        if(a < strlen(arr)-1)
        {    printf("YES\n");     }
        else
        {    printf("NO\n");    }
        
        arr[strlen(arr)] = '\0';
    }
    
    return 0;

 


}

 

 

#include <stdio.h>
#define N 100
#define M 4

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 a=0;
    while(a<M)
    {
        int T = x[a][3], b=2;
        while(b >= 0)
        {
            x[a][b+1] = x[a][b];
            b--;
        }
        x[a][0] = T;
        a++;
    }
}

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

 


 

posted @ 2023-11-13 23:15  黄骑  阅读(22)  评论(0)    收藏  举报