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

1.设计思路

(1)

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

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

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

(2)流程图

2.实验代码

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

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

错误原因1:无

改正方法:无

git地址:https://coding.net/u/jackiewang/p/2ci1ti/git/blob/master/%E6%9C%AA%E5%91%BD%E5%90%8D1.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 n;
 n=fun(str,substr);
 printf("n=%d\n",n);
 return 0;
}
int fun(char *str,char *substr)
{
   int n=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')
          {
              n++;
          }
      }
   }
   return n;
}

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

错误原因1:无

解决办法:无

git地址:https://coding.net/u/jackiewang/p/di2ci2ti/git/blob/master/%E6%9C%AA%E5%91%BD%E5%90%8D2.cpp?public=true

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

1.设计思路

(1)

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

第二步:构建函数

(2)流程图

2.实验代码

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

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

错误原因1:运行超时

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

git地址:https://coding.net/u/jackiewang/p/di2ci3ti/git/blob/master/%E6%9C%AA%E5%91%BD%E5%90%8D3.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/jackiewang/p/di2ci4ti/git/blob/master/%E6%9C%AA%E5%91%BD%E5%90%8D4.cpp?public=true

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

1.字符串与指针的关系

2.函数指针调用函数

3.指针作函数参数

没有掌握的知识点:

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

请用表格和折线图呈现你本周(3/1913:00~4/5 8:00)的代码行数和时间、博客字数和时间