首页 > 代码库 > 第九次作业(有好多都彻底不懂了)

第九次作业(有好多都彻底不懂了)

第一个:题目出得很有意思,很好玩。把首尾的表示方法理解了,还将if语句熟练运用,加深了对if语句的了解。

#include<stdio.h>
#include<string.h>
void check(char str[])
{
    int i,len;
    len=strlen(str);
    for(i=0;i<len;i++)
    {
        if(str[i]!=str[len-1-i])
        {
            printf("输入的%s不是对称的字符串;\n",str);
            return 0;
        }
    }
    printf("输入的%s是对称的字符串;\n",str);
} 
int main()
{
    char str[100];
    printf("输入要判断的字符串:");
    scanf("%s",str);
    check(str);
    return 0;
}

作业2:就是直接按照老师上课的意思写,上课听懂了,所以就很好理解。唯一难一点的就是将字母变成字符串,还是不是很理解他的写法,用了很长时间去了解。

#include <stdio.h>
#include <string.h>
void bubble_sort_number(int num[],int max)
{
    int i,j,temp;
    for(i=0;i<max-1;i++)
    {
        for(j=0;j<max-1-i;j++)
        {
            if(num[j]>num[j+1])
            {
                temp=num[j];
                num[j]=num[j+1];
                num[j+1]=temp;
            }
        }
    }
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%d ",num[i]);
}
void bubble_sort_string(char str[][100],int max)
{
    int i,j;
    char temp[100];
    for(i=0;i<max-1;i++)
    {
        for(j=0;j<max-1-i;j++)
        {
            if(strcmp(str[j],str[j+1])>0)
            {
                strcpy(temp,str[j]);
                strcpy(str[j],str[j+1]);
                strcpy(str[j+1],temp);
            }
        }
    }
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%s ",str[i]);
}

int main()
{
    int num[100],select,i,n;
    char str[100][100];
    printf("输入1进行输入若干个数的排序功能,输入2进行输入若干学生姓名的排序功能\n");
    scanf("%d",&select);
    printf("输入数量:");
    scanf("%d",&n);
    if(select==1)
    {
        printf("依次输入%d个数字,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%d",&num[i]);
        bubble_sort_number(num,n);
    }
    if(select==2)
    {
        printf("依次输入%d个姓名,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%s",str[i]);
        bubble_sort_string(str,n);
    }
    return 0;
}

 

作业3:上课虽然讲的不多,但是看上去跟冒泡的意思很像。然后我就迷迷瞪瞪的写了一下下,好像还能运行,那就交了吧。

#include <stdio.h>
#include <string.h>
void select_sort_number(int num[],int max)
{
    int i,j,k,temp;
    for(i=0;i<max-1;i++)
    {
        k=i;
        for(j=i+1;j<max;j++)
        {
            if(num[k]>num[j])
            {
                temp=num[k];
                num[k]=num[j];
                num[j]=temp;
            }
        }
    }
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%d ",num[i]);
}
void select_sort_string(char str[][100],int max)
{
    int i,j,k;
    char temp[100];
    for(i=0;i<max-1;i++)
    {
        k=i;
        for(j=i+1;j<max;j++)
        {
            if(strcmp(str[k],str[j])>0)
            {
                strcpy(temp,str[k]);
                strcpy(str[k],str[j]);
                strcpy(str[j],temp);
            }
        }
    }
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%s ",str[i]);
}

int main()
{
    int num[100],select,i,n;
    char str[100][100];
    printf("输入1进行输入若干个数的排序功能,输入2进行输入若干学生姓名的排序功能\n");
    scanf("%d",&select);
    printf("输入数量:");
    scanf("%d",&n);
    if(select==1)
    {
        printf("依次输入%d个数字,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%d",&num[i]);
        select_sort_number(num,n);
    }
    if(select==2)
    {
        printf("依次输入%d个姓名,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%s",str[i]);
        select_sort_string(str,n);
    }
    return 0;
}

作业4:这个求助了一个大神,表示我还是没有怎么理解。(ps:第五个更不会,跟张照行一样,没看懂百度百科。他也说他讲不明白,无能为力了。)好像运行有问题。我尽力了。。。。

#include <string.h>
void insert_sort_number(int num[],int number,int max)
{
    int i,j;
    for(i=0;i<max;i++)
        if(number<num[i])
            break;
    for(j=max-1;j>=i;j--)
        num[j+1]=num[j];
    num[i]=number;
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%d ",num[i]);
}
void insert_sort_string(char str[][100],char string[100],int max)
{
    int i,j;
    for(i=0;i<max;i++)
        if(strcmp(string,str[i])<0)
            break;
    for(j=max-1;j>=i;j--)
        strcpy(str[j+1],str[j]);
    strcpy(str[i],string);
    printf("升序排序结果为:");
    for(i=0;i<max;i++)
        printf("%s ",str[i]);
}
int main()
{
    int num[100],select,i,n,insert_num;
    char str[100][100],insert_str[100];
    printf("输入1进行输入若干个数的排序功能,输入2进行输入若干学生姓名的排序功能\n");
    scanf("%d",&select);
    printf("输入数量:");
    scanf("%d",&n);
    if(select==1)
    {
        printf("依次按照升序顺序输入%d个数字,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%d",&num[i]);
        printf("输入要插入的数字:");
        scanf("%d",&insert_num);
        insert_sort_number(num,insert_num,n+1);
    }
    if(select==2)
    {
        printf("依次按照升序顺序输入%d个姓名,用空格隔开:",n);
        for(i=0;i<n;i++)
            scanf("%s",str[i]);
        printf("输入要插入的姓名:");
        scanf("%s",insert_str);
        insert_sort_string(str,insert_str,n+1);
    }
    return 0;
}

 

第九次作业(有好多都彻底不懂了)