• 第五周总结


    作业头

    项目 内容
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 作业要求
    我在这个课程的目标是 学会处理字符串常量
    这个作业在那个具体方面帮助我实现目标 新增头文件和一些字符串处理函数
    参考文献 冒泡排序,网上查找函数

    作业

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

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

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

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

    代码示例

    #include<stdio.h>
    int main(void)
    {
    char str[80];
    int i=0,j,count=0, k;
    while((str[i] = getchar() )!='
    ')
    i++;
    k = i;
    str[i] = '';
    i = 0;
    while(str[i++]!='')
    {
    if(str[i]==' ')
    {
    i++;
    while(str[i]==' ')
    { i++;
    }
    count++;
    }
    }
    count = count+1;
    if(str[k-1] == ' ')
    count = count-1;
    for(i = 0; str[i] != ''; i++){
    if(str[i] == str[i+1] && str[i] == ' ')
    count = 0;
    }
    printf("%d
    ",count);
    return 0 ;
    }
    

    本题思路

    本题遇到的问题

    开始写了一个代码在编译器里输出的是一堆数,还有多记一次的,开始没考虑空格结尾,我以为用户都是正经的,但是pta就不正经,硬是要搞空格结尾,pta就是这么不正经,又把代码加了空格结尾,还有全部都是空格的

    改了之后又来个格式问题。。。。。。。。。。。。。。。
    又改了好了

    作业二

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

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

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

    输入样例:
    blue
    red
    yellow
    green
    purple

    输出样例:
    red blue green yellow purple

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

    本题思路

    代码改了一点

    代码示例

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
    	FILE *fp; 
    	char a[20][10], str[80], b[10];
    	int i, n = 0, j;
    	i = 0;
    	 fp = fopen("D:\xiaoliang.txt", "a+");
    	while(str[0] != '('){             //我学号最后一位为3,3加37为40,字符为‘(’ 括号 
    	
    	fscanf(fp,"%s ",str);
    strcpy(a[n],str);
            n++;
        }
          for(i = 0;i < n-1; i++){
    		for(j = i;j < n - 2; j++){
    		if(strlen(a[j]) > strlen(a[j+1]))
      {
       strcpy(b,a[j]);
       strcpy(a[j],a[j+1]);
       strcpy(a[j+1],b);  
      }
    		}
    	}
    	for(i = 0; i < n-1 ; i++){
    		fprintf(fp,"
    %s ", a[i]);
    	}
    fclose(fp) ;
    	return 0;
     } 
    

    本题遇到的问题

    写了一个代码但是又出了这个错误[Error] cannot convert 'const char' to 'FILE {aka _iobuf}' for argument '1' to 'int fprintf(FILE, const char*, ...)'
    这次我知道这个错误了,不能把字符型强制转换成file型
    原因我也找到了,是

    fprintf(这里少了一个fp,这是文件路径,打开方式)
    

    后来改了之后又出了一个错误输出的是一堆数字,没有排序

    看了一下代码原因是输出是%s,不是%d,因为是字符

    改了之后没什么问题了

    作业三

    这个是下周的预习作业选择题

    预习的问题主要是2-6这一题有点问题
    还有函数指针

    挑战题

    这次挑战题写一下思路算了,代码就不写了
    思路是录入一个二维数组,先计算行的最大字数组,再计算列的最大子数组,找到各行各列的最大子数组,然后判断行列的鞍点是否一样,若不一样则再计算行列的最大值,比较大小,直到找到二维数组的最大字数组。大概思路就是这样

    折线图

    学习进度表

    日期 这周所花的时间 代码行数 所学的简介 目前比较困惑的问题
    23/3-30/3 7小时 200 字符和字符串处理 没什么问题

    关于结对编程

    这次的结对编程又改了,这次应该会比上一次好,应该可以避免一些大佬在一起和完全不会的在一起

  • 相关阅读:
    自制编译器 青木峰郎 笔记 Ch5 基于JavaCC的解析器描述
    自制编译器 青木峰郎 笔记 Ch4 基于JavaCC的扫描器的描述
    自制编译器 青木峰郎 笔记 Ch3 词法分析的概要
    自制编译器 青木峰郎 笔记 Ch2 Cb和Cbc
    自制编译器 青木峰郎 笔记 Ch1 开始制作编译器
    POJ 1201 Intervals 差分约束,最短路,RE会报TLE 难度:1 差分约束背景知识需联想证明
    POJ 3276 The Cow Lexicon DP 难度: 0
    POJ 1276 Cash Machine DP 难度: 0
    Java大数练习
    HDU 4344-Mark the Rope-大数素因子分解
  • 原文地址:https://www.cnblogs.com/xiao--liang/p/10619308.html
Copyright © 2020-2023  润新知