2018c语言第2次作业
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分)。

2018c语言第2次作业的更多相关文章
- 2018c语言第1次作业
6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:把两个数的加减法分别赋给psum和pdiff. 第二步:通过psum和pdiff的地址把值传回主函数. (2)流程图.(无) 2 ...
- 2018C语言第三次作业
要求一 2.struct sk{int a; char *str)}*p; p->str++ 中的++ 加向? ++加向srt的地址. 要求二 题目1-计算平均成绩 1.设计思路 (1)主要 ...
- 2018c语言第3次作业
6-1 输出月份英文名 1.设计思路 (1)主要描述题目算法 第一步:先定义一个指针数组. 第二步:根据for循环判断月份并返还月份字数. 2.实验代码 int getindex( char *s ) ...
- 关于C语言的问卷调查(作业三)
1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...
- 网络1711班 C语言第四次作业批改总结
网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...
- 网络1711班 C语言第七次作业批改总结
网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...
- 网络1711班 C语言第八次作业批改总结
网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...
- C语言程序设计第二次作业--顺序结构
C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...
- 跨语言调用Hangfire定时作业服务
跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...
随机推荐
- Fiddler抓包工具使用方法
Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强大的基于事件脚本的子系统 ...
- 文件读写网络IO简单了解,同步IO和异步IO
在Linux中,对文件的读写其实就是IO. 与IO有关的名词:同步,异步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,异步阻塞,异步非阻塞.别急,下面有举例IO分为两大种,同步和异步 同步IO:阻塞IO ...
- Mysql在InnoDB引擎下索引失效行级锁变表锁案例
先做好准备,创建InnoDB引擎数据表,并添加了相应的索引 DROP TABLE IF EXISTS `innodb_lock`; CREATE TABLE `innodb_lock` ( `a` ) ...
- 在apache中使用.htaccess文件的注意事项
在apache的配置文件中: <VirtualHost *:80> ServerName tp5.com DocumentRoot d:/wamp/www/tp5.com/public & ...
- 20145326 《Java程序设计》第7周学习总结
20145326 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 一.认识Lambda语法 1.Lambda语法概览 Arrays的sort()方法可以用来排序,只不过你要 ...
- ubuntu 18.04 64bit没有声音如何解决
一.背景 1.1 笔者的机器有两张声卡,使用aplay -l可以列举出来,一张是内置声卡,另一张是显卡自带的声卡,说明声卡驱动是ok的 1.2 笔者是在浏览器中播放视频无声音 二.尝试 2.1 尝试使 ...
- autofac &web api 切换数据库
https://stackoverflow.com/questions/24188025/is-there-another-way-of-changing-database-instance-in-a ...
- about SpringBoot学习后记
<SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框 ...
- [kata](5kyu) 约瑟夫战死排序(排列)
之前一直不懂,今天百度了下,发下kyu是级别的意思,dan是段的意思,级别数值越小越强,段数数值越大越强. 原题 https://www.codewars.com/kata/josephus-per ...
- G_M_网络流A_网络吞吐量
调了两天的代码,到最后绝望地把I64d改成lld就过了,我真的是醉了. 网络吞吐量 题面:给出一张(n个点,m条边)带权(点权边权均有)无向图,点权为每个点每秒可以接受发送的最大值,边权为花费,保证数 ...