1 删除字符串中数字字符

1.设计思路

(1)主要描述题目算法

第一步:先用for循环比较每个数是否符合删除条件。

第二步:如果符合就把这个数利用交换把这个数提前一位。

2.实验代码

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

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

无错误.

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

1.设计思路

(1)主要描述题目算法

第一步:定义一个sum作为返回值。

第二步:用循环和条件语句判断这个数是否等于'a','s','d'。等于就使sum加一。

第三步:返回sum。

(2)流程图



2.实验代码

int fun(char *str,char *substr)
{
int sum=0;
int i=0,j=0;
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='a'&&str[i+1]=='s'&&str[i+2]=='d')
{
sum=sum+1;
}
}
return sum;
}

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

无问题.

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

1.设计思路

(1)主要描述题目算法

第一步:通过定义初值来空开最前和最后两个数值。

第二步:根据循环和判断来判断大小交换选出最大值排在前面。

第三步:然后不符合条件就一直返回函数不断循环。

2.实验代码

int fun(char *s,int num)
{
int i=1;
int t,a=num-2;
for(i=1;i<num-1;i++)
{
if(s[a]>s[i])
{
t=s[a];
s[a]=s[i];
s[i]=t;
}
}
if(num>1)
{
num=num-1;
fun(s,num);
}
}

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

无。

4输出学生成绩

1.设计思路

(1)主要描述题目算法

第一步:定义一个数组来储存所给的数。

第二步:根据条件找出最大值,最小值和平均值。

第三步:最后再保留两位小数输出。

2.实验代码

#include <stdio.h>
#include <math.h>
#define N 1000
int main()
{
int n,i=0;
float average=0,max=0,sum=0;
int a[n];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
float min=a[0];
for(i=0;i<n;i++)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
sum=a[i]+sum;
}
printf("average = %.2lf\n",sum/n);
printf("max = %.2lf\n",max);
printf("min = %.2lf",min);
return 0;
}

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

错误原因:输出格式有问题。

改正方法:把%lf换成%.2lf就正确了。

5计算职工工资

1.设计思路

(1)主要描述题目算法

第一步:定义一个结构体,利用数组储存所给的数值。

第二步:根据for循环求出最后的总工资。

第三步:最后按所给的格式保留两位小数输出。

2.实验代码

#include<stdio.h>
struct wages
{
char name[10];
float Basic;
float floating;
float expenditure;
};
int main()
{ int N,i=0,n=0;
scanf("%d",&N);
struct wages a[N];
for(n=0;n<N;n++)
{
scanf("%s ",a[n].name);
scanf("%f %f %f",&a[n].Basic,&a[n].floating,&a[n].expenditure);
}
for(n=0;n<N;n++)
{
printf("%s ",a[n].name);
printf("%.2f\n",a[n].Basic+a[n].floating-a[n].expenditure);
}
return 0;
}

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

错误原因:结构体运用不熟练,结构体数组定义错误.

改正方法:在主函数内定义struct wages a[N]即可。

6计算平均成绩

1.设计思路

(1)主要描述题目算法

第一步:利用结构体把数值存入数组,把编号定义成字符方便最后输出。

第二步:把分数相加除以人数求平均值。

第三步:判断低于平均线的人再进行输出。

(2)流程图

2.实验代码

#include<stdio.h>
struct T
{
float num[6];
char name[10];
float ach;
};
int main()
{
float sum=0;
int N,i=0;
scanf("%d",&N);
struct T a[N];
for(i=0;i<N;i++)
{
scanf("%s ",&a[i].num);
scanf("%s ",&a[i].name);
scanf("%f",&a[i].ach);
}
for(i=0;i<N;i++)
{
sum=sum+a[i].ach;
}
float avger=sum/N;
printf("%.2f\n",avger);
for(i=0;i<N;i++)
{
if(avger>a[i].ach)
{
printf("%s %s\n",a[i].name,a[i].num);
}
}
return 0;
}

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

(无)

7 判断回文字符串

1.设计思路

(1)主要描述题目算法

第一步:利用指针根据分数用不同的条件进行赋值。

第二步:定义一个初值为0的数作为不及格人数,没有一个'D'就加一。

第三步:返回不及格的人数。

(2)流程图



2.实验代码

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

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

7结构体数组按总分排序

1.设计思路

(1)主要描述题目算法

第一步:先求出每个人成绩的总和,再进行比较。

第二步:把成绩高的人往前排。

第三步:然后一直循环这个函数知道符合条件。

2.实验代码

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

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

无。

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

这两周我学会了结构的概念,结构变量的定义和初始化结构变量的使用。

2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似



https://git.coding.net/yangzhiqun/cfsafa.git

点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。

徐伟业http://www.cnblogs.com/xuweiye/p/8747209.html

徐铭博http://www.cnblogs.com/xmb1547828350/p/8657376.html于耀淞http://www.cnblogs.com/jsjyys/p/8672972.html###4、请用表格和折线图呈现你本周(3/12 8:00~3/26 8:00)的代码行数和时间、博客字数和时间(3分)。

最新文章

  1. Jmeter学习(二)
  2. RobotFramework - 在Window7系统中安装本地RobotFrmamework自动化测试环境
  3. [Java] File文件列表
  4. ExtJs之Ext.util.ClickRepeater
  5. HTTP 无法注册 URL http://+:80/Temporary_Listen_Addresses/92819ef8-81ea-4bd9-
  6. JS中的普通函数和箭头函数
  7. EasyUI List&lt;T&gt;转tree数据格式
  8. 关于macOS 管理员(Admin)权限问题。
  9. mysql判断表里面一个逗号分隔的字符串是否包含单个字符串、查询结果用逗号分隔
  10. jvm相关参数
  11. java7 java MethodHandle解析
  12. 网页中的数据的4个处理方式:CRUD(Creat, Retrive, Update, Delete)
  13. linux下运算的几种方法
  14. 【BZOJ 4059】 (分治暴力|扫描线+线段树)
  15. 洛谷P4289 移动玩具 HAOI2008 搜索+状压
  16. Xcode 快捷键及代码格式化
  17. Java异常(一)Java异常简介及其框架
  18. Asp.Net Core App 部署故障示例 1
  19. duplicate files during packaging of apk
  20. jQuery 工具大搜集

热门文章

  1. cocos-lua基础学习(七)Scene类学习笔记
  2. DNS服务器配置实践
  3. echarts页面中多图自适应
  4. Python:数字的格式化输出
  5. 【知识总结】CSS中样式覆盖优先顺序
  6. pyDay11
  7. Redis学习笔记之Linux下Redis的安装和部署
  8. vs显示行号
  9. 2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)
  10. CSS设置文本末行显示省略号...