2019第五次作业

作业头

第四周预习题

7-1 统计一行文本的单词个数 (15 分)
 

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

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5
一、实验代码
#include<stdio.h>
#include<string.h>
int main()
{
  int i,c=0;
  char a[1000];
  gets(a);
  if(a[0]==' ')
    c=0;
  else
    c=1;
  for(i=0;a[i]!='\0';i++)
  {
    
    if(a[i]==' ' && a[i+1]!=' ' && a[i+1]!='\0')
    {
         c++;
    }
  }
  printf("%d\n",c);
  return 0;
}

二、设计思路

三、错误截图

问题:在c++编译器里gets不能运行。

解决方法:换一个编译器。

四、运行结果

第五周基础题

7-1 英文单词排序 (25 分)
 

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

输入格式:

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

输出格式:

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

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple 
一、实验代码

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
  FILE *fp;
  int i,j,index,num;
  char a[20][10],temp[11];
  num=0;
  fp = fopen("F:\\xuezhiqian.txt", "a+");
  while(1)
  
  {
    fscanf(fp,"%s",&a[num]);  
    if(a[num][0]=='*')         //学号最后一位数字为5,加上37为42,则ASCII码为*
      break;
    num++;   
  }
  for(i=0;i<num-1;i++)  
  {
     index=i;
    for(j=i+1;j<num;j++)
    {
      if(strlen(a[j])<strlen(a[index]))
       {
         index=j;
       }
    }
    strcpy(temp,a[index]);   
    strcpy(a[index],a[i]);
    strcpy(a[i],temp);
  }
  for(i=0;i<num;i++)
  {
    fprintf(fp,"\n%s ",a[i]);
  }
  fclose(fp);
  return 0;
}

二、设计思路

 

三、错误截图

问题:在电脑c盘中不能运行数据只能读取数据。

解决方法:将输入数据存到F盘中

四、运行结果

第五周预习题

预习题主要讲的是数据存储位置

学习进度条

学习感悟

在本单元学习了冒泡法排序,以及文档读取运行数据,但是从本人看来,这些都还不是特别了解,都还只是一个懵懂的状态。

posted @ 2019-03-29 15:43  丫世界和平丫  阅读(196)  评论(0编辑  收藏  举报