2018上C语言程序设计(高级)作业-第2次作业

一、

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

1)实验代码

void delnum(char *s)
{
  int i,j;
  for(i=0,j=0;s[i]!='\0';i++)
  {
  if(s[i]<'0'||s[i]>'9')
  {
  s[j]=s[i];
  j++;
  }
  }
  s[j]='\0';
}

2)流程图

 

3)错误及解决方案

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

1)实验代码

 int fun(char *str,char *substr)
 {
        int i,n=0;
        for(i=0;str[i]!='\0';i++)
        {
            if(str[i]==substr[0])
            {
                if(str[i+1]==substr[1])
                {
                    if(str[i+2]==substr[2])
                    {
                        n++;
                    }
                }
            }
        }
        return n;
    }

2)流程图

3)错误及解决方案

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

1)实验代码

int fun(char *s,int num)
{
  int i,j,swap;
   for(i=1;i<num-1;i++)
    for(j=1;j<num-1-i;j++)

  {
    if(s[j]<s[j+1])
    {
      swap=s[j];s[j]=s[j+1];s[j+1]=swap;
    }
  }
}

  2)流程图

3)错误及解决方案

7-1 计算职工工资

1)实验代码

#include<stdio.h>
struct message 
{
	char name[10];
	float jibengz;
	float fudonggz; 
	float zhichu;
	float sum;
};
int main()
{
	int n;
	scanf("%d",&n);
	struct message m1;
	while(n--)
	{
		scanf("%s%f%f%f",m1.name ,&m1.jibengz,&m1.fudonggz,&m1.zhichu);
		m1.sum=m1.jibengz+m1.fudonggz-m1.zhichu;
		printf("%s %.2f\n",m1.name ,m1.sum);
	}
} 

  2)流程图

3)问题及解决方案

7-2 计算平均成绩

1)实验代码

#include<stdio.h>
struct student
{
	char id[6];
	char name[10];
	int score;
};
int main()
{
	int n;
	int i;
	float avg=0;
	struct student s[10];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%s%d",s[i].id,s[i].name,&s[i].score);
		avg=avg+s[i].score;
	}
	avg=avg/n;
	printf("%.2f\n",avg);
    for(i=0;i<n;i++)
    {
    	if(s[i].score<avg)
    	{
    		printf("%s %s\n",s[i].name,s[i].id);
		}
	}
}

2)流程图

3)错误及解决方案

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

1)实验代码

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

  2)流程图

3)错误及解决方案

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

1)实验代码

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;
  struct student x;
  for(j=0;j<n-1;j++)
  {
    for(i=0;i<n-1-j;i++)
    {
      if(p[i].sum<p[i+1].sum)
      {
        x=p[i];p[i]=p[i+1];p[i+1]=x;
      }
    }
  }
}

2)流程图

3)错误及解决方案

二、学习总结

学了指针、结构等

三、表格

时间 博客 代码
3.25 第一次作业 5
3.29 0 0
3.30 0 0
3.31 0 0
4.1 0 0
4.2 0 0
4.3 0 0
4.4 0 0
4.5 0 0
4.6 0 0
4.6 0 0
4.7 0 0
4.8 第二次作业 7

四、点评

姜健

秦保岩

袁中

 

posted @ 2018-04-08 22:07  Kangf  阅读(276)  评论(0编辑  收藏  举报