• 第五周作业


    第五周

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 要求
    我在这个课程的目标是 <二维数组排序>
    这个作业在那个具体方面帮助我实现目标 <数组函数>
    参考文献 <--->

    PTA:英文单词排序
    要求:

    1.在PTA上完成作业
    2.博客总结需要将PTA上代码做以下修改:(1)通过以自己名字命名的文件输入英文单词,(2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”)(3)在不删除原有内容的情况下,将排序后的单词输出到文件。

    实验代码:

    include <stdio.h>

    include <string.h>

    int main(void)
    {
    int n, j, i = 0;
    char num[20][10], a[10];

     while(1)
     {
         scanf("%s", &num[i]);
         
         if(num[i][0] == '#')
         break;
         
         i++;
     }
     n = i;
    
     for(i = 0;i < n;i++)
     {
         for(j = 1;j < n - i;j++)
         {
             if(strlen(num[j]) < strlen(num[j-1]))
             {
             strcpy(a,num[j]);
             strcpy(num[j],num[j-1]);
             strcpy(num[j-1],a);
             }
         }
     }
    
     for(i = 0;i < n;i++)
     {
         printf("%s ", num[i]);
     }
    
     return 0;
    

    }

    正确截图:

    博客代码:

    include <stdio.h>

    include <string.h>

    include <stdlib.h>

    int main(void)
    {
    FILE * fp;
    int n, j, i = 0;
    char num[20][10], a[10];

    if((fp=fopen("D:\C++\husiyu.txt","a+"))==NULL)
    {
        printf("File open error!
    ");
        exit(0);
    }
    
    while(1)
    {
        fscanf(fp,"%s", &num[i]);
        
        if(num[i][0] == '%')
        break;
        
        i++;
    }
    n = i;
    
    for(i = 0;i < n;i++)
    {
        for(j = 1;j < n - i;j++)
        {
            if(strlen(num[j]) < strlen(num[j-1]))
            {
            strcpy(a,num[j]);
            strcpy(num[j],num[j-1]);
            strcpy(num[j-1],a);
            }
        }
    }
    fprintf(fp,"
    ");
    
    for(i = 0;i < n;i++)
    {
    fprintf(fp,"%s ", num[i]);
    }
    
        if(fclose(fp)) 
        {
            printf("Can not close the file!
    ");
            exit(0);
         } 
    
     return 0;
    

    }

    流程图:

    遇到的问题及解决办法:

    1.数组函数的for循环嵌套函数,阅读了网上的一些博客,借鉴了一下
    2.字符的输入时循环要求,后面用while函数解决

    学习进度

    周/日期 所花的时间 代码长度 学习内容 比较迷惑的方面
    3/3-3/9 1.5h 36 文件的创建和写入 指针的运用
    3/11-3/15 2h 45 判断一个情况时用一个变量来决定,正确取0反则取1这种方法没有这个意识去用
    3/19-3/22 4h 48*3 排序&找鞍点 for语句的嵌套
    3/25-3/29 3h 25 英文字母排序 指针的运用

    总结:本次主要运用的是二维数组,碰到换行的情况要用到二维数组

  • 相关阅读:
    【后缀自动机例题】
    【BZOJ-1146】网络管理Network DFS序 + 带修主席树
    【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集
    【BZOJ-2653】middle 可持久化线段树 + 二分
    【Codeforces163E】e-Government AC自动机fail树 + DFS序 + 树状数组
    【BZOJ-2938】病毒 Trie图 + 拓扑排序
    【BZOJ-4726】Sabota? 树形DP
    【BZOJ-3143】游走 高斯消元 + 概率期望
    【BZOJ-3270】博物馆 高斯消元 + 概率期望
    laravel框架中所用到的依赖注入
  • 原文地址:https://www.cnblogs.com/husiyu/p/10619168.html
Copyright © 2020-2023  润新知