第五周作业

这个作业属于哪个课程:C语言程序设计

这个作业的要求:https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/homework/2827
在这个课程的目标:更好的巩固字符串的相关知识点
这个作业在哪些方面帮助我:这个题目主要是字符串类型的题目
参考文献:C语言程序设计

1.实验代码

#include<stdio.h>
#include<string.h>
int main()
{
	char a[888];/*定义一个数组*/
	gets(a);/*得到字符串附给a*/
	int m, i, j;
	m = strlen(a);/*从内存的某个位置开始扫描,直到碰到第一个字符串结束符''为止,然后返回计数器值*/
	if (a[0] == ' ')/*若果前面有空格则不计前面的空格*/
		j = 0;
	else
		j = 1;
	for (i = 0; i<m - 1; i++)
	{
		if (a[i] == ' ' /**/&& a[i + 1] != ' '/*保证空格为两个单词之间的空格*/)
			j++;
	}
	printf("%d
", j);/*输出*/
	return 0;
}

2.设计思路

3.遇到的问题及解决方法

问题:(1)虽说这个问题与老师讲的有相似之处,都是与字符串相关的知识点,但感觉看了很多遍,思考了很久还是没有什么思路。
(2)有想法之后不知道是什么原因编译错误。
解决方法:自己查询资料,询问同学,上网查找。

4.运行结果截图


题目:英文单词排序

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
1)通过以自己名字命名的文件输入英文单词,(2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”)(3)在不删除原有内容的情况下,将排序后的单词输出到文件。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple

输出样例:
red blue green yellow purple

1.实验代码

#include <stdio.h>
#include <string.h>
main()
{
    char str[20][10],t[20],str1[10];
    int i,j,n=0;
    while(1)
	{
    	scanf("%s",str1);
    	if(str1[0]=='#')
	    {
    		break;
    	}
        else
		{
        strcpy(str[n],str1);
        n++;
        }
    }
    for(i=0;i<n-1;i++)
    	for(j=0;j<n-i-1;j++)
	    {
            if(strlen(str[j])>strlen(str[j+1]))
		    {
               strcpy(t,str[j]);
               strcpy(str[j],str[j+1]);
               strcpy(str[j+1],t);
            }
        }
    for(i=0;i<n;i++)
	{
        printf("%s ",str[i]);
    }
}

文本文档

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    FILE*fp;
    char str[20][10],a[20],t[10];
    int i,j,k,temp,index,n;
    if((fp=fopen("C:\buxiu.txt","a+"))==NULL)
    {
        printf("File open error!");
        exit(0);
    }
    for(i=0;i<20;i++) 
    {
        fscanf(fp,"%s",&str[i]);
        scanf("%s",&str[i]);
        if(str[i][0]=='%')
          break;
        else
          a[i]=strlen(str[i]);
    }
    for(k=0;k<i;k++)
    {
        index=k;
        for(j=k+1;j<i;j++)
        {
            if(a[j]<a[index])
               index=j;
        }
        temp=a[index];
        a[index]=a[k];
        a[k]=temp;
        strcpy(t,str[index]);
        strcpy(str[index],str[k]);
        strcpy(str[k],t);
    }
    for(n=0;n<i;n++){
        printf("%s ",str[n]);
    }
    for(n=0;n<i;n++)
    {
        fprintf(fp,"%s ",str[n]);
    }
    if(fclose(fp))
    {
        printf("Can not close the file!");
        exit(0);
     } 
    return 0;
}

2.设计思路

3.遇到的问题及解决方法

问题:不是很清楚应如何排序
解决方法:询问同学,一起商讨,自己上网查询

4.运行结果截图



预习作业

1.主要内容

密码开锁;地址和指针;指针变量;指针基本运算;指针变量的初始化;指针作为函数的参数等等

2.完成情况截图




3.预习中存在的疑惑

(1)有些知识点自己预习感觉还不是很懂
(2)有些知识点明白了做题还是会错

学习进度表

折线图

心得:砥砺前行,如何希望自己以后可以多抽一些时间学习C语言,这次耗时将近两个下午和一个晚上。

结对编程优缺点

优点:可以互相讨论,共同进步。
缺点:有时候会有意见分歧。

原文地址:https://www.cnblogs.com/buxiu888/p/10624048.html