swaggy郭钰轩

第五周作业

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

<英文单词排序>
1.实验代码
PTA

    #include <stdio.h>
   #include <string.h>
   int main()
   {
    char str[20][10],a[20],t[10];/*二维数组前面控制的是输入的行数,后面控制的是单词的字母个数*/
    int i,j,k,temp,index,n;
    for(i=0;i<20;i++)/*i:单词个数*/ 
    {
        scanf("%s",&str[i]);
        if(str[i][0]=='#')
          break;
        else
          a[i]=strlen(str[i]);
    }
    for(k=0;k<i;k++)/*轮数*/ 
    {
        index=k;/*index用来存放最小值所在的下标*/
        for(j=k+1;j<i;j++)/*j:寻找最小值的所在下标,即移动指标*/
        {
            if(a[j]<a[index])
               index=j;
        }
        temp=a[index];
        a[index]=a[k];
        a[k]=temp;
        strcpy(t,str[index]);/*strcpy:字符串复制函数*/
    strcpy(str[index],str[k]);
    strcpy(str[k],t);
    }
    for(n=0;n<i;n++){
        printf("%s ",str[n]);
    }
    return 0;
}

文本文档

    #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:\\wtt.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遇到的问题
问题:在编写是对于strcpy函数不熟,导致编写难度的增大。
解决方案:上网查询,借鉴别人的代码。
4运行截图

<统计一行文本的单词个数>
题目:https://pintia.cn/problem-sets/1107472041692848128/problems/1107472280310996992
1实验代码

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

<预习作业>
1.主要内容
密码开锁;地址和指针;指针变量;指针基本运算;指针变量的初始化;指针作为函数的参数等等

学习感悟:主要学习了字符串、单词排序、对于选择排序法冒泡排序法的复习、指针变量的学习、strcpy函数以及gets函数。
难点:单词排序编写时的困难以及矩阵的输出。
解决方法:主要是上网查寻以及老师的讲解等等。

posted on 2019-03-29 16:05  gggyx  阅读(172)  评论(1编辑  收藏  举报

导航