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服 ...
随机推荐
- ubuntu16.04(64位)安装 Drcom
一 : 下载DrClient(DrcomAndPPOE) 解压 下载地址 https://www.baidu.com/s?wd=DrClient(DrcomAndPPOE)&rsv_spt ...
- 使用Sed和Awk实现批量文件的文本替换
摘要: 使用 Sed 完成文本替换操作任务是非常合适的.结合 find 命令,即可实现指定批量文件的文本替换.同时给出了Awk的解决方案作为对比. 问题 现在, 我要将一个原有Java项目中的一些包及 ...
- maven和gradle中,dependency和plugin的区别
dependency引入的东西 作用:代码编译/运行时所需要的东西 打包:项目打包后这些东西基本都在(一般都在). 例如:JSON工具包GSON(com.google.code.gson),不仅开发时 ...
- ansible之template模块
趁着最近在搞ansible,现在学习了一波template模块的用法: 1.使用template模块在jinja2中引用变量,先来目录结构树 [root@master ansible]# tree . ...
- 20145329 《网络对抗技术》 逆向及Bof基础实验
1.实验内容 本次实践的对象是一个名为20145329的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段,ge ...
- 20145315 《Java程序设计》第十周学习总结
20145315 <Java程序设计>第十周学习总结 教材学习内容总结 网络概述 为了能够方便的识别网络上的每个设备,网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址.IP地址实 ...
- Access规格
属性 最大值 Microsoft Access 数据库 (.mdb) 文件大小 2G 字节减去系统对象所需的空间. 数据库中的对象个数 32,768 模块(包括“内含模块”属性为“是”的窗体和报表) ...
- python_发送短信脚本
sendsms.py #!/usr/bin/env python # coding: utf-8 import sys import urllib import urllib2 "" ...
- linux下如何安装解压工具rar
1.获取 wget https://www.rarlab.com/rar/rarlinux-x64-5.6.1.tar.gz 2.解压 tar xvf rarlinux-x64-5.6.1.tar.g ...
- G_M_C_美食节
美食节 题解:学习了动态加边,可以说是进一步理解了网络流.具体思路就是考虑每一道菜,如果这是该位厨师最后一次做,那么等待时间就是做这道菜的时间,如果是倒数第二次做,就要两倍时间(目前做了一次,后面还有 ...