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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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)实验代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 @   Kangf  阅读(284)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示