zoukankan      html  css  js  c++  java
  • 第五周作业

    这个题属于哪个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
    我在这个课程的目标是 更加熟悉字符型数组的运用及一些排序的方法
    这个作业在哪个具体方面帮助我实现目标 用数组与字符数数组结合,用冒泡排序法将其相关联
    参考文献 C语言程序设计

    本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

    输入格式:

    输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

    输出格式:

    输出为排序后的结果,每个单词后面都额外输出一个空格。

    输入样例:

    blue
    red
    yellow
    green
    purple

    输出样例:

    red blue green yellow purple

    PTA:

    实验代码:

    #include<stdio.h>
    int main()
    {
        int a[20],i,j,x=0,y=0,m=0,n=0,t=1,flag,k,p,s;
        char str[190];
    
        while((str[t]=getchar())!='#')
            t++;
        for(i=1; i<=t; i++)
        {
            m++;
            if(str[i]=='\n')
            {
                a[y]=m-1;
                y++;
                m=0;
            }
        }
        for(i=1; i<y; i++)
            for(j=0; j<y-i; j++)
                if((a[j]>a[j+1]))
                {
                    k=a[j];
                    a[j]=a[j+1];
                    a[j+1]=k;
                }
        for(i=0; i<y; i++)
        {
            if(a[i-1]==a[i])
            {
                for(p=1; p<=t; p++)
                {
                    n++;
                    if(str[p]=='\n')
                    {
                        if(n-1==a[i]&&p>x+1)
                        {
                            x=p-1;
                            s=n-2;
                            break;
                        }
                        n=0;
                    }
                }
            }
            else
                for(p=1; p<=t; p++)
                {
                    n++;
                    if(str[p]=='\n')
                    {
                        if(n-1==a[i]&&p!=x+1)
                        {
                            x=p-1;
                            s=n-2;
                            break;
                        }
                        n=0;
                    }
    
                }
            for(j=x-s; j<=x; j++)
            {
                printf("%c",str[j]);
                if(j==x)
                {
                    printf(" ");
                }
            }
            n=0;
        }
    
        return;
    }
    

    博客园:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int a[20],i,j,x=0,y=0,m=0,n=0,t=1,k,p,s;
        char str[190];
            FILE*fp;
    
        fp=fopen("C://Users//Dell//Desktop//Rehiwang.txt","r+");
        for(i=1;; i++)
        {
            t++;
            fscanf(fp,"%c",&str[i]);
            if(str[i]=='#')
                break;
        }
    
        for(i=1; i<=t; i++)
        {
            m++;
            if(str[i]=='\n')
            {
                a[y]=m-1;
                y++;
                m=0;
            }
        }
        for(i=1; i<y; i++)
            for(j=0; j<y-i; j++)
                if((a[j]>a[j+1]))
                {
                    k=a[j];
                    a[j]=a[j+1];
                    a[j+1]=k;
                }
        for(i=0; i<y; i++)
        {
            if(a[i-1]==a[i])
            {
                for(p=1; p<=t; p++)
                {
                    n++;
                    if(str[p]=='\n')
                    {
                        if(n-1==a[i]&&p>x+1)
                        {
                            x=p-1;
                            s=n-2;
                            break;
                        }
                        n=0;
                    }
                }
            }
            else
                for(p=1; p<=t; p++)
                {
                    n++;
                    if(str[p]=='\n')
                    {
                        if(n-1==a[i]&&p!=x+1)
                        {
                            x=p-1;
                            s=n-2;
                            break;
                        }
                        n=0;
                    }
    
                }
            for(j=x-s; j<=x; j++)
            {
                fprintf(fp,"%c",str[j]);
                if(j==x)
                {
                    fprintf(fp," ");
                }
            }
            n=0;
        }
        return 0;
    }
    

    运行截图:

    设计思路:

    本题遇到的问题及其解决方法:

    问题:一开始忘记考虑有多个相同长度单词的情况
    解决方案:把多个相同长度单词的情况写入代码

    学习进度条:

  • 相关阅读:
    转 UICollectionView 详解
    springboot配置ssl证书
    服务器ganglia安装(带有登录验证)
    eureka配置说明
    Servlet中获取请求参数问题
    apidoc学习(接口文档定义取代word)
    markdown语法
    JVM分析
    ftp上传或下载文件工具类
    ubuntu命令安装
  • 原文地址:https://www.cnblogs.com/Leehomwang/p/10623524.html
Copyright © 2011-2022 走看看