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

    C高级第二次作业(1)

    提交列表:

    1.删除字符串中数字字符
    设计思路:
    通过遍历数组,如果遇到数字就删除,后部分的非数字字符向前移动即可完成。即定义两个循环变量,并用while语句进行判断,再根据需要进行删除。
    实验代码:
    ···
    void delnum(char *s)
    {
    int i=0,j=0;
    for(;s[i]!='';i++)
    {
    if(s[i]>'9'||s[i]<'0')
    {
    (s+j++)=(s+i);
    }
    }
    *(s+j)='';
    }
    ···
    调试过程:
    在本题的代码中,不知道如何筛选出字符。
    流程图:

    统计子串在母串出现的次数
    设计思路:
    定义双重循环,外层用来遍历数组元素,内层判断字符数组元素是否相等,若完全相等则遍历子串,且次数加1.
    实验代码:
    ···
    int fun(char *str,char substr)
    {
    int num=0,i;
    for(i=0;str[i]!='';i++)
    {
    if((str[i]substr[0])&&(str[i+1]substr[1])&&(str[i+2]==substr[2])){
    num++;
    }
    }
    return (num);
    }
    ···
    调试过程:
    没有遇到什么困难,只是在编译的过程中出现了一个低级错误。
    字符串中除首尾字符外的其余字符按降序排列
    设计思路:
    调用函数,然后进行定义变量,使用for循环在循环中判断,再进行输出。
    实验代码:
    ···
    int fun(char
    s,int num)
    {
    char a;
    int i,j;
    for(i=1;i<num-2;i++){
    for(j=i+1;j<num-1;j++){
    if(s[i]<s[j])
    {
    a=s[i];
    s[i]=s[j];
    s[j]=a;
    }
    }
    }
    }
    ···
    调试过程:
    本题并没有遇到什么困难。

    C高级第二次作业(2)

    提交列表:

    计算职工工资
    设计思路:,
    定义出结构变量包括员工的姓名,基本工资,浮动工资,支出,并计算实发工资并输出姓名。
    实验代码:
    ··· #include <stdio.h>
    struct clerk
    {
    char name[10];
    float b,r,f;
    float s;
    };

    int main() {
    int i,N;
    struct clerk s1; scanf("%d",&N);
    for(i=1;i<=N;i++)
    { scanf("%s %f %f %f ",s1.name,&s1.b,&s1.r,&s1.f);
    s1.s =(s1.b + s1.r - s1.f);
    printf("%s %.2lf ",s1.name,s1.s);
    }

    return 0;
    }
    ···
    调试过程:
    在定义结构变量上遇到了一些问题,请教室友后得到解决。
    流程图:

    输出学生成绩
    设计思路:
    定义变量后输入人数,再使用动态内存分配语句,循环,冒泡排序法,进行排序并输出
    实验代码:
    ···#include <stdio.h>
    struct student
    {
    char num[6];
    char name[10];
    int grade;
    double average;};
    int main()
    {
    int i,N,grade,j;
    double average;
    scanf("%d",&N);
    struct student si[N];
    grade = 0;
    for(i=0;i<N;i++)
    {
    scanf("%s %s %d",si[i].num,si[i].name,&si[i].grade);
    grade = grade +si[i].grade;
    }
    average = (double)(grade /N);
    printf("%.2f ", average);
    for(i=0;i<N;i++)
    {
    if(si[i].grade<average)
    {
    printf("%s %s ",si[i].name,si[i].num);
    }
    }
    return 0;
    }
    ···
    调试过程:
    没有什么大问题,细节性错误,我以后会注意。

    C高级第二次作业(3)

    老实承认这两道题没有什么思路,代码也是从班里的大神那里搬来的,在老师的讲解过程中我会认真听。
    按等级统计学生成绩
    设计思路:
    调用定义函数,使用循环结构,N为不及格,等级为D时N加1。
    实验代码:
    ···
    int set_grade( struct student *p, int n )
    {
    int i,N = 0;
    for(i = 0; i < n; i++)
    {
    if((p+i)->score <= 100 && (p+i)->score >= 85)
    (p+i)->grade = 'A';
    else if((p+i)->score <= 84 && (p+i)->score >= 70)
    (p+i)->grade = 'B';
    else if((p+i)->score <= 69 && (p+i)->score >= 60)
    (p+i)->grade = 'C';
    else if((p+i)->score <= 59 && (p+i)->score >= 0)
    {
    (p+i)->grade = 'D';
    N++;
    }
    }
    return N;
    }
    ···
    结构体数组按总分排序
    设计思路:
    定义循环变量,再通过遍历数组进行计算总分。
    实验代码:
    ···
    void calc(struct student *p,int n)
    {
    int k=0;
    for(k=0;k<n;k++)
    {
    (p+k)->sum=(p+k)->score[0]+(p+k)->score[1]+(p+k)->score[2];
    }
    }
    void sort(struct student *p,int n)
    {
    int k=0,l=0;
    struct student swap;
    for(k=0;k<n;k++)
    {
    for(l=k+1;l<n;l++)
    {
    if(p[k].sum<p[l].sum)
    {
    swap=p[k];p[k]=p[l];p[l]=swap;
    }
    }
    }

    }
    ···

    学习内容总结:

    对指针的复习,动态内存的分配,定义结构体变量及结构体变量的引用,还有数组指针结构的结合使用,但是老师对于动态内存的分配的讲解过程较为较为简略,有点一知半解。
    图表:

    作业点评:
    董欣 :http://www.cnblogs.com/dx2017/p/8666072.html
    李锐 :http://www.cnblogs.com/572453251asd/p/8746822.html
    金海东:http://www.cnblogs.com/jhd1127/p/8746926.html

  • 相关阅读:
    arcims(HtmlView)开发经验总结《转》
    Oracle sequence
    ajax 简介
    PHP:路在何方?
    ArcIMS初级教程(4)
    设计开发必须收藏的资源网站
    Win2008+IIS7.0+VS2008 在测试调试网站时报错,紧急求救!
    动态生成客户端数组
    解决MySQL不允许从远程访问的方法
    MySql中delimiter的作用是什么
  • 原文地址:https://www.cnblogs.com/jz19990201/p/8747094.html
Copyright © 2011-2022 走看看