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

    这个作业属于那个课程 C语言程序设计2
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/2829
    我在这个课程的目标是 学好数组的运用
    这个作业在那个具体方面帮助我实现目标 判断回文

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

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

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

    输入样例:
    blue
    red
    yellow
    green
    purple

    输出样例:
    red blue green yellow purple

    实验代码:

    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        FILE * fp;
        int i,m,j,k,d;
        char ch[21][11];
        int a[21],b[21];
        if((fp=fopen("D:\hnc.txt","a+"))==NULL){
           printf("File open error!
    ");
             exit(0);
        }
        for(i=j=0;;i++){ 
                j=0;
             for(;;j++){
                fscanf(fp,"%c",&ch[i][j]);
                printf("%c",ch[i][j]);
                if(ch[i][j]=='
    '){
                break;
             }
        }
        a[i]=j;
        b[i]=i;
        if(ch[i][j-1]=='#'){
            break;
          }
        }
        k=i;
        for(i=0;i<k-1;i++){
            m=i;
            for(j=i+1;j<k;j++){
                if(a[m]>a[j]){
                m=j;
                }
            }
            j=a[m];
            d=b[m];
            b[m]=b[i];
            b[i]=d;
            a[m]=a[i];
            a[i]=j;
            }
         for(i=j=0;k>0;k--,i++){
           for(j=0;j<a[i];j++){
            fprintf(fp,"%c",ch[b[i]][j]);
            printf("%c",ch[b[i]][j]);
          }
          fprintf(fp," ");
          printf(" ");
         }
         if(fclose(fp)){
            printf("Can not close the file!
    ");
            exit(0);
         }
         return 0;
    }
    

    思维导图:

    错误截图:

    错误原因:把单词可输入最大个数定义成十个,其实是二十个,在输入时结束条件和回车也占了一个位置。

    正确截图:

    7-1
    (15 分)
    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

    输入格式:
    输入给出一行字符。

    输出格式:
    在一行中输出单词个数。

    输入样例:
    Let's go to room 209.
    输出样例:
    5

    实验代码:

    #include<stdio.h>
    #include<string.h>
    int main()
    {
      int i,a,num;
      char ch[1000];
      gets(ch);
      a=strlen(ch);
      if(ch[0]==' '){
      num=0;
      }else{
      num=1;
      }
      for(i=0;i<a-1;i++)
      {
        if(ch[i]==' '&&ch[i+1]!=' ')
        num++;
      }
              printf("%d",num);
              return 0;
    }
    

    思维导图:

    正确截图:

    周/日期 这周所花时间 代码行数 目前比较迷茫的问题 学到的知识点
    第五周/3月29日 两天 120行 二维数组的运用不熟练 判断回文
  • 相关阅读:
    SaaS模式应用之多租户系统开发(单数据库多Schema设计)
    web-api POST body object always null
    linq to js 用法
    c#导出数据到csv文本文档中,数据前面的0不见了解决方法
    金蝶BOS元模型分析
    DotNet 资源大全中文版
    JavaScript中的类方法、对象方法、原型方法
    解决System.Data.SqlClient.SqlException (0x80131904): Timeout 时间已到的问题
    在需要隐藏navigationController控制器
    升级macOS Sierra系统 导致错误 app: resource fork, Finder information, or similar detritus not allowed
  • 原文地址:https://www.cnblogs.com/dapeng1234/p/10624024.html
Copyright © 2011-2022 走看看