第二次博客园作业

6-7 删除字符串中数字字符

1.设计思路

(1)

第一步:审题,读懂题中参数意义

第二部:理清思路,将函数补全

第三部:反复设计改进函数

(2)流程图

2.实验代码

#include "stdio.h"
void delnum(char *c);
int main ()
{ char item[80];
gets(item);
 delnum(item);
 printf("%s\n",item);
 return 0;
}
void delnum(char *c)
{
 int i = 0,j = 0;
 while(c[i] != '\0'){
     if (!(c[i] >= '0' && c[i] <= '9')) {
         c[j++] = c[i];
      }
      i++;
  }
  c[j] = '\0';
}

git地址:https://coding.net/u/aifeiershangdet/p/erey/git/blob/master/未命名1.cpp?public=true

6-8 统计子串在母串出现的次数

1.设计思路

(1)

第一步:根据题意和所给函数判断问题所考知识点

第二部:理清思路,设计函数

(2)流程图

2.实验代码

#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
 int t;
 n=fun(str,substr);
 printf("t=%d\n",n);
 return 0;
}
int fun(char *str,char *substr)
{
   int t=0,i=0,j=0,k=0;
   for(i=0;str[i]!='\0';i++)
  {
      for(j=i,k=0;str[j]==substr[k];j++,k++)
      {
          if(substr[k+1]=='\0')
          {
              t++;
          }
      }
   }
   return t;
}

git地址:https://coding.net/u/aifeiershangdet/p/fasefaef/git/blob/master/jfrj.cpp?public=truegit

 

6-9 字符串中除首尾字符外的其余字符按降序排列

1.设计思路

(1)

第一步:审题,阅读题目要求

第二步:构建函数

(2)流程图

2.实验代码

#include <stdio.h>
int fun(char *c,int num);
int main()
{
 char c[10];
 gets(c);
 fun(c,7);
 printf("%s",c);
 return 0;
 }
int fun(char *c,int num)
{
    int i=0, j=0, k=0, n=0;
char t;
for(n=0;;n++)
 {
 if(*(c+n)=='\0')break;
    }
    n--;
        for(i=1;i<n-1;i++)
  {
        for(j=i;j<n;j++)
    {
        if(*(c+i)<*(c+j))
       {
           t=*(c+i);
           *(c+i)=*(c+j);
           *(c+j)=t;
       }
     }
   }
}

.本题调试过程中碰到的问题及解决办法

错误原因1:运行超时

改正方法:错误改正:关于字符串长度统计函数使用时必须包含string.h头文件

git地址:https://coding.net/u/aifeiershangdet/p/fsdefws/git/blob/master/鬼斧神工人山人海.cpp?public=true

7-1 输出学生成绩

1.设计思路

(1)

第一步:根据题意,理清思路

第二步:设计函数

(2)流程图

2.实验代码

#include <stdio.h>
int main()
{
    int N,i;
    float sum=0, average=0, max=0, min=0;
    scanf("%d",&N);
    int a[N];
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }
    max = a[0];
    min=a[0];
    for(i=0;i<N;i++)
    {
        sum = sum + a[i];
        if(a[i]>max){
             max=a[i];
        }
        if(a[i]<min){
            min=a[i];
        }
    }
    average=sum/N;
    printf("average = %.2f\nmax = %.2f\nmin = %.2f\n",average,max,min);
    return 0;
}

3.本题调试过程中碰到的问题及解题方法

错误原因1:指针用法不够熟练

改正方法:同学指导

git地址:https://coding.net/u/aifeiershangdet/p/ddddd/git/blob/master/顶顶顶.cpp?public=true

 

这两周来所有PTA作业中题目所使用的知识点:

1.字符串与指针的关系

2.函数指针调用函数

3.指针作函数参数

没有掌握的知识点:

循环语句的使用,指针的调用

 

posted @ 2018-04-08 10:52  计科17-4班王帅  阅读(175)  评论(2编辑  收藏  举报