zoukankan      html  css  js  c++  java
  • 第二次作业

    作业要求一

    已完成。

    作业要求二

    1)C高级第二次PTA作业(1)

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

    1.设计思路

    (1)主要描述题目算法

    第一步:题目要求删除字符串中数字字符
    第二步:定义i,j为整数 并且i = 0.
    第三步:当s[i]不等于的时候,用if语句判断s[i]是数字的情况,如果是数字,就把i赋值给j,,进行第四步,然后i++;
    第四步:当s[j]不等于的时候,把s[j+1]赋值给s[j],这么做就是把数字后面的赋值给前面,达到把数字消除的目的,然后j++;

    (2)流程图


    2.实验代码

    void delnum(char *s)
    {
     int i = 0,j;  
        while(s[i]!='') {  
            if(s[i] >= '0' && s[i] <= '9') {  
                j = i;  
                while(s[j]!='') {  
                    s[j] = s[j+1];  
                    j++;  
                }  
                continue;  
            }  
            i++;  
        }  
    }  
    

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

    本题最开始不会,让后问了室友给讲会了

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

    1.设计思路

    (1)主要描述题目算法

    第一步:定义i,j,k,num为整形变量,num = 0.
    第二步:使用for循环
    第三步:判断substr[k+1]是否为,若是,则num++,跳出循环
    第四步:返回num。

    (2)流程图

    无。

    2.实验代码

    int fun(char *str,char *substr)
    {
       int i,j,k,num=0;
       for(i=0;str[i];i++)
       for(j=i,k=0;substr[k]==str[j];k++,j++)
       if(substr[k+1]=='')
       {
          num++;
          break; 
       }
       return(num);
    }
    

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

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

    1.设计思路

    (1)主要描述题目算法

    第一步:定义i,j,k,m为整型变量且都为0,t为字符变量。
    第二步:第一个for循环,如果s[n]是'',则跳出循环,此步骤表明了n的大小
    第三步:降序

    (2)流程图

    无。

    2.实验代码

    int fun(char *s,int num)
    {
        int i=0, j=0, k=0, m=0;
        char t;
        for(m=0;;m++)
        {
            if(*(s+m)=='')break;
        }
        m--;
            for(i=1;i<m-1;i++)
            {
                for(j=i;j<m;j++)
                {
                    if(*(s+i)<*(s+j))
                    {
                        t=*(s+i);
                        *(s+i)=*(s+j);
                        *(s+j)=t;
                    }
                }
            }
    }
    

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

    无。

    7-1 输出学生成绩

    1.设计思路

    (1)主要描述题目算法

    第一步:定义n,i为整型变量,max,min,sum,a为double型,且max,sum为0,min为100。
    第二步:用for循环输入学生成绩再用if语句,当遇到比max大的数就赋值给max,比min小的数就赋值给min;
    第三步:求和除以人数就是平均数

    (2)流程图

    无。

    2.实验代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    int main()
    {
        int n,i;
        double max=0,min=100,sum=0,now;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            scanf("%lf",&now);
            if(now>max) max=now;
            if(now<min) min=now;
            sum=sum+now;
        }
        printf("average = %.2lf
    ",sum/n);
        printf("max = %.2lf
    ",max);
        printf("min = %.2lf",min);
    
        return 0;
    }  
    

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

    注意使用for循环,并知道括号的位置。

    2)C高级第二次PTA作业(2)

    7-1 计算职工工资

    1.设计思路

    (1)主要描述题目算法

    第一步:先创建一个结构,包含信息
    第二步:定义整形变量n,定义数组a[n]。
    第三步:用for循环输出。

    (2)流程图

    2.实验代码

    #include <stdio.h>
    struct people{                              
       char name[10];                 
       double y,z,q,x;               
    }; 
    int main()
    {
      int i,n,j;
      scanf ("%d", &n);
      struct people a[n];    
      for(i=0;i<n;i++){
    	scanf ("%s%lf%lf%lf",&a[i].name,&a[i].q,&a[i].z,&a[i].x);
      a[i].y=a[i].q+a[i].z-a[i].x;
    }
    for(j=0;j<n;j++){
    printf("%s %.2lf
    ",a[j].name,a[j].y);
    }
    return 0;
    }
    

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

    最开始不明白struct的意思,后来上网查询,明白了创建结构。

    7-2 计算平均成绩

    1.设计思路

    (1)主要描述题目算法

    第一步:创建结构,定义a[n],i,j,n为整形变量,sum,average为浮点型变量。
    第二步:利用for循环写入学生信息,并求学生成绩之和
    第三步:利用for循环使学生成绩和平均成绩比较,如果小于平均 就输出其部分学生信息。

    (2)流程图

    无。

    2.实验代码

    #include <stdio.h>
    struct student{
      char name[10],num[5];
      double chengji;
    };
    int main()
    {
      int i,j,n;
      double sum=0,average;
      scanf("%d",&n);
      struct student a[n];
      for(i=0;i<n;i++){
        scanf("%s %s %lf",&a[i].num,&a[i].name,&a[i].chengji);
        sum=sum+a[i].chengji;
    }
      average=1.0f*sum/n;
      printf("%.2lf
    ",average);
    for(i=0;i<n;i++){
    if(average>a[i].chengji){
    	printf("%s %s
    ",a[i].name,a[i].num);
    }
    }
       return 0;
    }
    

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

    还是struct不明白,不知道是定义结构,上网查询明白的。

    3)C高级第二次PTA作业(3)

    6-1 按等级统计学生成绩

    1.设计思路

    (1)主要描述题目算法

    第一步:子函数起的作用就是统计低于60分以下的个数和给不同分数的学生划分层次;
    第二步:统计60分以下的人数的算法
    第三步:用if语句

    (2)流程图

    2.实验代码

    int set_grade( struct student *p, int n )
    {
      int count=0,i;
      for(i = 0; i < n; i++,p++)
      {
          if(p->score>=85&&p->score<=100)
          {
              p->grade='A';
          }
          if(p->score>=70&&p->score<=84)
          {
              p->grade='B';
          }
          if(p->score>=60&&p->score<=69)
          {
              p->grade='C';
          }
          if(p->score>=0&&p->score<=59)
          {
              p->grade='D';
              count++;
          }
      }
        return count;
    }
    
    

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

    最开始根本不明白怎么下手,不明白题意。经过室友讲解弄明白。

    6-2 指针选择法排序

    1.设计思路

    (1)主要描述题目算法

    (2)流程图

    无。

    2.实验代码

    void sort(int *x,int n)
    { 
     int i,j,t,temp;
     for(i=0;i<n-1;i++)
     {
     t=i;
     for(j=i+1;j<n;j++)
     {
    
     if(*(x+t)<*(x+j))
     t=j;
     }
     temp=*(x+i);
     *(x+i)=*(x+t);
     *(x+t)=temp;
     }
    } 
    

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

    6-2 结构体数组按总分排序

    1.设计思路

    (1)主要描述题目算法

    第一步:本题有两个调用函数,一个是要求每名同学的成绩总和;一个是把学生总分按照从大到小排序;
    第二步:主函数就是输入学生信息,再通过调用函数对信息进行处理后输出
    第三步:求总和,用for循环求总和

    (2)流程图

    无。

    2.实验代码

    void calc(struct student *p,int n)
     {
        int i,j;
        for(i=0;i<n;i++,p++)
        {
        	p->sum=0;
          for(j=0;j<3;j++)
          {
            p->sum =p->sum + p->score[j];
         }
       }
     }
    void sort(struct student *p,int n)
    {
      int i,k,b;
      struct student temp;
      for(i=0;i<n;i++)
      {
          k=i;
          for(b=k+1;b<n;b++)
          {
             if((p+k)->sum < (p+b)->sum)
            { 
             k=b;
            }
    	     }
      if(i!=k)
      {
       temp=*(p+i);
       *(p+i)=*(p+k);
       *(p+k)=temp;
     }
    }
    }
    

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

    struct不会用,经过上网查询和问室友才明白。

    要求三、学习总结和进度

    1、总结两周里所学的知识点有哪些学会了?

    这两周复习了指针,学习了结构以及结构数组,还有动态分配内存,第一次作业是指针,动态分配内存,第二次作业是结构数组,作业三是结构指针。学到了struct这个结构概念。

    2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似“https://git.coding.net/Dawnfox/wf4_2.git”这样的字符串且是可被访问者直接点击进行访问的链接

    GIT地址:https://git.coding.net/yangyuxin/77777.git

    3、点评3个同学的本周作业

    徐伟业:http://www.cnblogs.com/xuweiye/p/8747209.html
    于耀淞:http://www.cnblogs.com/jsjyys/p/8672972.html
    董欣:http://www.cnblogs.com/dx2017/p/8666072.html

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


  • 相关阅读:
    符瑞艺 160809228_C语言程序设计实验2 选择结构程序设计
    页面布局class常见命名规范
    CSS学习笔记
    HTML学习笔记
    虚拟机Centos7设置ip地址,并ping真机ip
    vue单页面开发和多页面开发的概念,及优缺点?
    传统的DOM渲染方式?
    面试题
    通过电脑chrome调试手机真机打开的微信H5页面,调试电脑微信H5页面(转载自 乐乐熊小妹)
    常见前端面试题及答案
  • 原文地址:https://www.cnblogs.com/yangyuxin/p/8747235.html
Copyright © 2011-2022 走看看