第二次作业

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://git.coding.net/Wangli123/6-7.git

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:缺少变量

改正方法:增加变量

错误原因2:for循环出现问题

改正方法:改变所循环变量

git地址:https://git.coding.net/Wangli123/6-8.git

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头文件

错误原因2:无

git地址:https://git.coding.net/Wangli123/PTA.git

7-1 输出学生成绩

1.设计思路

(1)

第一步:阅读题目

第二步:理清思路,进行编写程序

第三步:检查程序,进行编译运行

(2)流程图:略

2.实验代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int N,i;
    double sum=0,max,min,ag,*p;
    scanf("%d",&N);
if((p=(double *)calloc(N,sizeof(double)))==NULL)
       {
        printf("Not able to allocate memory.\n");
        exit(1);
        }
           for(i=0;i<N;i++)
           {
              scanf("%lf",p+i);
              sum=sum+*(p+i);
            }
                  max=*p,min=*p;
                  for(i=0;i<N;i++)
                         {
                              if(*(p+i)>max)
                              max=*(p+i);
                              if(*(p+i)<min)
                               min=*(p+i);
                           }
            ag=sum*1.0/N;
            printf("average = %.2lf\nmax = %.2lf\nmin = %.2lf\n",ag,max,min);
            free(p);
}

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

错误原因1:无

改正方法:无

git地址:https://git.coding.net/Wangli123/7-1.git

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

1.字符串与指针的关系

2.函数指针调用函数

3.指针作函数参数

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

 

posted on 2018-04-08 10:33  Wangli123  阅读(197)  评论(2编辑  收藏  举报