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服 ...
随机推荐
- testng日志 TestListenerAdapter
TestListenerAdapter,空方法实现 ITestListener 创建自定义日志记录类 创建另一个新的类名为 CustomListener.java 在 C:\ > TestN ...
- 系统管理命令之logname
logname命令,可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形,与whoami相反. 1.查看该命令的帮助信息. # logname --help 2.查看该命令的版本信息. # ...
- 团队 作业6--展示(alpha阶段)
团队作业6--展示博客(alpha阶段) 一.团队信息 团队码云地址: https://gitee.com/kezhiqing/soft_team_blog 成员介绍: 个人博客地址 团队成员 个人博 ...
- 4gcc编译器
gcc编译器(GNU C Compiler) 现在我们所说的 gcc 是 GUN Compiler Collection的缩写,可以支持多种语言编译,比如 C,C++,Java, pascal 等 g ...
- 0510进程 multiprocess模块
process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. 创建模块 import os import time from multiprocessing import Proces ...
- 关于Redis命令keys在性能方面的说明
redis的keys命令类似于Mysql的like命令,无非就是模糊匹配相近的字符数据. KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 k ...
- 常用php操作redis命令整理(一)通用及字符串类型
Key相关操作 TYPE 类型检测,字符串返回string,列表返回 list,set表返回set/zset,hash表返回hash,key不存在返回0 <?php echo $redis-&g ...
- Ubuntu 16.04 (官方命令行)安装MongoDB 3.6.2(社区版)
概述 使用本教程从 .deb 包在LTS Ubuntu Linux系统上安装MongoDB Community Edition. 虽然Ubuntu包含自己的MongoDB包,但官方的MongoDB社区 ...
- 2018-2019-1 20189215 《Linux内核原理与分析》第七周作业
<庖丁解牛>第六章书本知识总结 操作系统内个实现操作系统的三大管理功能:进程管理.内存管理.文件系统.分别对应<操作系统原理>中最重要的3个抽象概念是进程.虚拟内存和文件. L ...
- STM32.ADC
ADC实验 原理图: 1.ADC配置函数 /* enable adc1 and config adc1 to dma mode */ ADC1_Init(); /** * @brief ADC1初始化 ...