c语言排序实验题

发布于:2024-03-23 ⋅ 阅读:(73) ⋅ 点赞:(0)

1问题:对学生的整体结构体信息进行整体排序

#include<stdio.h>
#define n 3
int i,j,k,t;
void input(int *p)  
{

    for(i=0;i<n;i++)
    {
        printf("请输入第%d名学生的年龄:",i+1);
        scanf("%d",(p+i));
    }
    printf("\n则原先3名学生的年龄为:\n");
    for(i=0;i<n;i++)
    {
        printf("%d\t",*(p+i));
    }
}
void paixu(int *p)
{
    int *a,*b;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            a=(p+i);
            b=(p+j);
            if(*(p+i)>*(p+j)) k=j;
    
        }
        if(k!=i)
        {
            t=*a;
            *a=*b;
            *b=t;
        }
    }
}
void output(int *p)
{
    printf("\n则后来3名学生的年龄按照升序排序为:\n");
    for(i=0;i<n;i++)
    {
        printf("%d\t",*(p+i));
    }
}
int main()
{
    int arr[3],*p=arr;
    input(p);
    paixu(p);
    output(p);
    return 0;
}

2#include<stdio.h>
#include<string.h>
#define n 3
int i,j,t,m; 
void input(char brr[n][20])
{
    for(i=0;i<n;i++)
    {
        printf("请输入第%d名学生的姓名:",i+1);
        gets(brr[i]);            
        printf("\n");
    }
}
void swap(char brr[n][20])
{
    char s[200];
    int k;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(strcmp(brr[i],brr[j])>0) k=j;
        }
        if(k!=i)
        {
            strcpy(s,brr[i]);
            strcpy(brr[i],brr[j]);
            strcpy(brr[j],s);
        }
    }
}
void output(char brr[n][20])
{
    printf("按照升序为:");
    for(i=0;i<n+1;i++)
    {
        printf("%s\t",brr[i]);
    }
}
int main()
{
    char arr[n][20],(*p)[20];
    p=arr;
    input(p);
    swap(p);
    output(p);
    return 0;
}

3#include<stdio.h>
#define n 2
int i,j;
void input(double arr[])
{
    for(i=0;i<n;i++)
    {
        printf("请输入第%d名学生的成绩:",i+1);
        scanf("%lf",&arr[i]);
    }
}
void sort(double arr[])
{
    int k;
    double t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(arr[i]>arr[j]) k=j;
        }
        if(k!=i)
        {
            t=arr[i];
            arr[i]=arr[j];
            arr[j]=t;
        }
    }
}
void output(double arr[])
{
    printf("按照升序输出为:");
    for(i=0;i<n;i++)
    {
        printf("%f\t",arr[i]);
    }
}
int main()
{
    double arr[n],*p=arr;
    input(p);
    sort(p); 
    output(p);
}

4筛选法求素数

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到