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

    一.PTA

    作业1:

    1.删除字符串中数字字符

    1).设计思路

    (1).主要描述题目算法

    第一步:定义主函数
    第二步:定义数组,用do while语句判断字符是否为数字,不是则s[j]=s[i];j++;循环后将最后一位赋值‘’

    (2).流程图

    2).实验代码

    、
    #include<stdio.h>
    
    
    void delnum(char *s)
    {
    int i=0,j=0;  
    do
    
    {  
    
        if(!(s[i]>='0'&&s[i]<='9'))
    	{  
           s[j]=s[i];
           j++;
    	    
                  
            
           
        }  
        i++;  
    }  
    while(s[i]!='');
    s[j]='';
    }  
    、
    

    3).遇到的问题及解决方法

    开始出现思路错误,换一种思路后没有遇到问题。

    2. 统计子串在母串出现的次数

    1).设计思路

    主要描述题目算法

    第一步:定义主函数
    第二步:定义指针,循环变量i和总数num,当字符不为空字符时,如果字符为'a','s','d'的一种,则num++,统计出num的值,最后返回num

    2).实验代码

    、
    #include<stdio.h>
    
    int fun(char *str,char *substr)
    {
    int i=0,num=0;
    
    while(*(str+i)!='')
    {
        if(*(str+i)=='a'&&*(str+i+1)=='s'&&*(str+i+2)=='d')
    	{
            num++;
        }
        i++;
    }
    return num;
    
    } 
    

    3).遇到的问题及解决方法

    本题没有问题。

    3.字符串中除首尾字符外的其余字符按降序排列

    1).设计思路

    主要描述题目算法

    第一步:定义主函数
    第二步:定义指针,循环变量i,j,置换字符temp,用for循环判断两个字符数值大小,将数值大的字符置换至前面,再用一个for循环排除首末位,输出字符串。

    2).实验代码

    、
    #include <stdio.h>
    
    
    int fun(char *s,int num)
    {
    int i,j;
    char temp;
    for(i=0;i<num;i++)
       for(j=1;j<num-2;j++)
       {
        if(s[j]<s[j+1])
       {temp=s[j]; s[j]=s[j+1]; s[j+1]=temp;}
    }    
    }
    、
    

    3).遇到的问题及解决方法

    在第二个for循环去掉首末位时出现几次错误,尝试几次后错误排除。

    4.输出学生成绩

    1).设计思路

    主要描述题目算法

    第一步:定义变量,输入学生人数
    第二步:for循环判断成绩的大小,得出最大最小值和总和
    第三步:输出最高成绩,最低成绩,平均成绩

    2).实验代码

    、
    #include<stdio.h> 
    int main()
    {
    int n,i;
    float max,min=200,sum=0,cj;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
    scanf("%f ",&cj);
    if(cj>max)
    {
    	max=cj;
    }
    if(cj<min)
    {
    	min=cj;
    }
    sum=sum+cj;
    }
    printf("average = %.2f
    ",sum/n);
    printf("max = %.2f
    ",max);
    printf("min = %.2f",min);
    return 0;
    }
    、
    

    作业2:

    5.计算职工工资

    1).设计思路

    (1).主要描述题目算法

    第一步:定义结构体,数组,变量
    第二步:输入人数,引用结构体
    第三步:用for循环输入数据,输出结果

    (2).流程图

    2).实验代码

    、
    #include<stdio.h>
    struct work
    {
    char name[10];
    float jiben;
    float fudong;
    float zhichu;
    float sum;
    };
    int main()
    {
    int n,i;
    scanf("%d",&n);
    struct work a[n];
    for(i=0;i<n;i++)
    {
    	scanf("%s %f %f %f",&a[i].name,&a[i].jiben,&a[i].fudong,&a[i].zhichu);
    	a[i].sum=(a[i].jiben+a[i].fudong)-a[i].zhichu;
    	printf("%s %.2f
    ",a[i].name,a[i].sum);
    }
    
    
    }
    、
    

    3).遇到的问题及解决方法

    本题没有问题。

    6.计算平均成绩

    1).设计思路

    主要描述题目算法

    第一步:定义结构体,数组,变量
    第二步:输入人数,引用结构体
    第三步:for循环输入数据,计算平均成绩并输出,另一个for循环比较成绩与平均数成绩的大小,如果成绩小于平均成绩则输出姓名学号

    2).实验代码

    、
    #include<stdio.h>
    struct student
    {
    char xuehao[6];
    char name[10];
    
    
    int grade;
    };
    int main()
    {
    int n,i,sum=0;
    float average;
    scanf("%d",&n);
    struct student a[n];
    for(i=0;i<n;i++)
    {
    	scanf("%s %s %d",a[i].xuehao,a[i].name,&a[i].grade);
    	sum=sum+a[i].grade;
    	average=1.0*(sum/n);
    }
        
    	printf("%.2f
    ",average);
    	for(i=0;i<n;i++)
    	{
    	if(a[i].grade<average)
    	{
    		printf("%s %s
    ",a[i].name,a[i].xuehao);
    		}
    	}
    }
    、
    

    3).遇到的问题及解决方法

    开始将学号的字符串定义为5位导致无法结束字符串,修改位数后输出正常。

    作业3:

    7.按等级统计学生成绩

    1).设计思路

    (1).主要描述题目算法

    第一步:观察主函数定义
    第二步:定义循环变量,不及格人数,for循环判断是否不及格,不及格则num++,另一个for循环判断分数等级

    (2).流程图

    2).实验代码

    、
    #include <stdio.h>
    #define MAXN 10
    
    
    int set_grade( struct student *p, int n )
    {
    int j=0,num=0;
    for(j=0;j<n;j++)
    {
    if(p[j].score<60)
    {
        num++;
    }
    }
    for(j=0;j<n;j++)
    {
    if((p[j].score)>=85&&(p[j].score)<=100)
    {
        (p[j].grade)='A';
    }else if((p[j].score)>=70&&(p[j].score)<=84)
    {
        (p[j].grade)='B';
    }else if((p[j].score)>=60&&(p[j].score)<=69)
    {
        (p[j].grade)='C';
    }else if((p[j].score)>=0&&(p[j].score)<=59)
    {
        (p[j].grade)='D';
    }
    }
    return num;
     } 
    

    3).遇到的问题及解决方法

    本题没有问题。

    8.结构体数组按总分排序

    1).设计思路

    主要描述题目算法
    第一步:观察主函数定义
    第二步:第一个函数for循环求出分数总和,第二个函数for循环比较两人分数总和,分数高的置换到前面。

    2).实验代码

    、
    
    void calc(struct student *p,int n)
    {
    int i;
    for(i=0;i<n;i++)
    {
        (p+i)->sum=(p+i)->score[0]+(p+i)->score[1]+(p+i)->score[2];
    }   
    }
    void sort(struct student *p,int n)
    {
    int i,j=0;
    struct student t;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(p[i].sum<p[j].sum)
            {
                t=p[i];
    			p[i]=p[j];
    			p[j]=t;
            }
        }
    }
    
    }
    、
    

    3).遇到的问题及解决方法

    第二个函数的for循环j的初始值最初出现错误,修改后正确。

    二.学习总结

    1.这两周学习了指针及结构,主要学习了结构数组,结构指针等知识,在结构指针方面须加强。

    2.git地址:https://coding.net/u/q807443119/p/zuoye/git/tree/master/?public=true

    3.点评

    郭钊毅 http://www.cnblogs.com/nothingistrue/p/8747979.html
    班庆泽 http://www.cnblogs.com/wsbqz/p/8746704.html
    丰大为 http://www.cnblogs.com/DavidPark/p/8664273.html

    4.学习进度

  • 相关阅读:
    ab访问并发测试简要步骤
    使用sysbench 进行msyql oltp压力测试
    pycham database查看db.sqlites文件 无内容解决方法
    mysql 批量修改字段方法
    mysql row日志格式下 查看binlog sql语句
    shiro自定义过滤器
    shiro【filter】
    js 中时间格式化的几种方法
    @Value("#{}")与@Value("${}")的区别
    IDEA 代码格式化,快捷键
  • 原文地址:https://www.cnblogs.com/qq807443119/p/8747414.html
Copyright © 2011-2022 走看看