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次作业的更多相关文章

  1. 2018c语言第1次作业

    6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:把两个数的加减法分别赋给psum和pdiff. 第二步:通过psum和pdiff的地址把值传回主函数. (2)流程图.(无) 2 ...

  2. 2018C语言第三次作业

    要求一 2.struct sk{int a; char *str)}*p;   p->str++ 中的++ 加向? ++加向srt的地址. 要求二 题目1-计算平均成绩 1.设计思路 (1)主要 ...

  3. 2018c语言第3次作业

    6-1 输出月份英文名 1.设计思路 (1)主要描述题目算法 第一步:先定义一个指针数组. 第二步:根据for循环判断月份并返还月份字数. 2.实验代码 int getindex( char *s ) ...

  4. 关于C语言的问卷调查(作业三)

    1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些 ...

  5. 网络1711班 C语言第四次作业批改总结

    网络1711班 C语言第四次作业批改总结 助教有话说(写在前面) 近来,有同学跟老师和助教们反映:博客作业太多太麻烦,而且对编程能力提高似乎没什么帮助?在这里我要谈一谈我的感想. 博客作业的意义? 首 ...

  6. 网络1711班 C语言第七次作业批改总结

    网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...

  7. 网络1711班 C语言第八次作业批改总结

    网络1711班 C语言第七次作业批改总结 最近在忙一些琐事,没能及时批改大家的作业,连续两次作业总结也没有很用心写,在这要给大家say sorry. 1.本次作业评分细则 1.1 基本要求(1分) 按 ...

  8. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  9. 跨语言调用Hangfire定时作业服务

    跨语言调用Hangfire定时作业服务 背景 Hangfire允许您以非常简单但可靠的方式执行后台定时任务的工作.内置对任务的可视化操作.非常方便. 但令人遗憾的是普遍都是业务代码和hagnfire服 ...

随机推荐

  1. oauth2(转载http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A%A1)

    http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A ...

  2. SQL 根据条件取不同列中的值来排序

    1  有时候排序比较复杂,比如:领导对工资在1000到2000元之间的员工更感兴趣,于是要求工资在这个范围内的员工排在前面,以便优先查看 对于这种要求我们可以在查询中新生成一列,用多列排序的方法处理代 ...

  3. redis入门学习记录(二)

    继第一节 redis入门学习记录(一)之后,我们来学习redis的基本使用. 接下来我们看看/usr/local/redis/bin目录下的几个文件作用是什么? redis-benchmark:red ...

  4. 常用php操作redis命令整理(二)哈希类型

    HSET将哈希表key中的域field的值设为value;如果field是哈希表中的一个新建域,并且值设置成功,返回1;如果哈希表中域field已经存在且旧值已被新值覆盖,返回0. <?php ...

  5. STM32端口输入输出模式配置

    STM32的IO口模式配置 根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是: 四种输入模式 上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平. 下拉输入:把电 ...

  6. StringBuffer类的常用方法

    StringBuffer类和String一样,也用来代表字符串.只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...

  7. Java面试知识点总结及解析

    声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...

  8. linux内核启动时报错ubi0 error: validate_ec_hdr: bad VID header offset 256, expected 64

    1.详细错误报告如下: ubi0 error: validate_ec_hdr: bad VID header offset 256, expected 64 ubi0 error: validate ...

  9. Java IO流-随机访问流

    2017-11-05 19:45:51 RandomAccessFile类(随机访问流) RandomAccessFile类:是Object的子类,此类的实例支持对随机访问文件的读取和写入.随机访问文 ...

  10. php多站点配置以及Forbidden You don't have permission to access / on this server问题解决

    php多站点配置以及Forbidden You don't have permission to access / on this server问题解决 一.总结 一句话总结:我的问题是php的版本问 ...