要求一、设计过程

                                                      作业(1)

1.提交列表

6-7 删除字符串中数字字符

2.设计思路(6分)

     (1)主描述题目算法。
         第一步:设出字符char *srt,char*substr;

         第二步:使用for循环语句和if语句,判断是否数字字符;

第三步: 循环寻找或结束语句。
     (2)流程图

主函数调用:

返回主函数:

3.实验代码

  1. void delnum(char *s)
  2. {
  3. int i,m=;
  4. for(i=;*(s+i)!='\0';i++)
  5. {
  6. if(*(s+i)>=''&&*(s+i)<='')
  7. {
  8. }else
  9. {
  10. *(s+m)=*(s+i);
  11. m++;
  12. }
  13. }
  14. *(s+m)='\0';
  15. }
 

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

    
       改正方法:并且符号是两个&&。

     

6-8 统计子串在母串出现的次数

     (1)描述题目算法
         第一步:列出char*str,并使用函数char str[81]="asdasas";
         第二步:使用for语句和if语句统计字符出现字数,令str依次srt+i,str+i+1...; 

         第三步:返回函数。

3.实验代码(2分)   

  1. int fun(char *str,char *substr){
  2. int i,count=;
  3. for(i=;*(str+i)!='\0';i++){
  4. if(*(str+i)==*(substr)){
  5. if(*(str+i+)==*(substr+)){
  6. if(*(str+i+)==*(substr+)){
  7. count++;
  8. }
  9. }
  10. }
  11. }
  12. return count;
  13. }

4.本题调试过程碰到问题及解决办法(4分)

    

       改正方法:‘\0'忘记加\,字符串是以\0为结束标志,找不到\0会越界访问。

      .

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

     (1)描述题目算法
         第一步:设出指针,用外循环控制循环数,num-1次;
         第二步:用for循环和if语句判断字符ASCII大小;

         第三步:判断后交换大小。

3.实验代码

  1. int fun(char *s,int num){
  2. int i,j,k,temp;
  3. for(i=;i<num-;i++){
  4. k=i;
  5. for(j=i+;j<num-;j++){
  6. if((int)(*(s+k))<(int)(*(s+j))){
  7. k=j;
  8. }
  9. }
  10. if(k!=i){
  11. temp=*(s+i);*(s+i)=*(s+k);*(s+k)=temp;
  12. }
  13. }
  14. return ;
  15. }

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

     

       改正方法:第一次限制循环未控制在num-1次。

     

7-1 输出学生成绩

     (1)描述题目算法
         第一步:输入学生人数,动态分配;
         第二步:用for循环相加成绩;

         第三步:令max,min,等于数组第一个元素,比较大小,并用for循环交换。

3.实验代码   

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int i,n;
  6. float sum=,average,max,min;
  7. scanf("%d",&n);
  8. float *p=(float *)malloc(n);
  9. for(i=;i<n;i++){
  10. scanf("%f",(p+i));
  11. sum+=*(p+i);
  12. }
  13. min=*(p+);max=*(p+);
  14. for(i=;i<n;i++){
  15. if(min>*(p+i)){
  16. min=*(p+i);
  17. }
  18. if(max<*(p+i)){
  19. max=*(p+i);
  20. }
  21. }
  22. printf("average = %.2f\n",sum/n*);
  23. printf("max = %.2f\n",max);
  24. printf("min = %.2f\n",min);
  25. return ;
  26. }

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

     

       错误原因:min=*(p);max=*(p);输出后与列子不同。
       改正方法:min=*(P+0);max=*(p+0);表示依次加。

 作业(2) 

1.提交列表

.

2.设计思路(6分)

 7-1 计算职工工资

(1)描述题目算法。

         第一步:设出变量,使用结构算法;
         第二步:用for循环语句,保证正确输出;

第三步:令实际工资=s1.j+s1.f-s1.z,输出。
 

     (2)流程图

     

3.实验代码   

  1. #include <stdio.h>
  2. struct clerk
  3. {
  4. float j,f,z;
  5. char name[];
  6. };
  7.  
  8. int main()
  9. {
  10. int i,n;
  11. float pay;
  12. scanf("%d",&n);
  13. struct clerk s1;
  14. for(i=;i<=n;i++)
  15. {
  16. scanf("%s %f %f %f",s1.name,&s1.j,&s1.f,&s1.z);
  17. pay=s1.j+s1.f-s1.z;
  18. printf("%s %.2f\n",s1.name,pay);
  19. }
  20. return ;
  21. }

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

         错误原因:第一次使用数组的方法,麻烦且没有成功。
       改正方法:使用简单的for循环,数据结构就很容易编写。

7-2 计算平均成绩

      (1)描述题目算法。

         第一步:定义结构;

         第二步:计算平均值 ,输出;         

         第三步:用for循环,if语句,判断每人成绩是否小于平均值;若是。则输出,学生和学号。

3.实验代码 

  1. #include <stdio.h>
  2. struct student
  3. {
  4. char num[];
  5. char name[];
  6. int grade;
  7. double average;
  8. };
  9.  
  10. int main()
  11. {
  12. int i,N,sum = ;
  13. double average;
  14. scanf("%d",&N);
  15. struct student s[N];
  16. for(i=;i<N;i++)
  17. {
  18. scanf("%s %s %d",s[i].num,s[i].name,&s[i].grade);
  19. sum = sum + s[i].grade;
  20. }
  21. average = (double)(sum/N);
  22. printf("%.2f\n",average);
  23. for(i=;i<N;i++)
  24. {
  25. if(s[i].grade<average)
  26. {
  27. printf("%s %s\n",s[i].name,s[i].num);
  28. }
  29. }
  30.  
  31. return ;
  32. }

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

解决方法:'\n'一直打成'/n',令答案错误。

作业(3)

1.提交列表

2.设计思路(6分)

6-1 按等级统计学生成绩

(1)描述题目算法。

         第一步:列出指针;     

         第二步:用for循环,if语句判断学生成绩是否小于60;

         第三步:count 在每次又小于60的同学,逐渐+1;

         第四步:返回count的值到主函数。

      (2)流程图

3.实验代码   

  1. int set_grade( struct student *p, int n ){
  2. int i,q=;
  3. for(i=;i<n;i++,p++){
  4. if(p->score<){
  5. q++;
  6. }
  7. if((p->score>=)&&(p->score<=)){
  8. p->grade ='A';
  9. }else if((p->score>=)&&(p->score<=)){
  10. p->grade ='B';
  11. }else if((p->score>=)&&(p->score<=)){
  12. p->grade='C';
  13. }else{
  14. p->grade='D';
  15. }
  16. }
  17. return q;
  18. }

4.本题调试过程碰到问题及解决方法。

解决方法:要定义n。

6-2 结构体数组按总分排序

     (1)描述题目算法。
         第一步:列出指针,结构体;
         第二步:用for循环,一个循环第n个人的成绩总数值,一个计算第n个人的成绩总值;

第三步:用冒泡法排序,按总成绩大小排序,交换。

3.实验代码  

  1. void calc(struct student *p,int n){
  2. int i;
  3. for(i=;i<n;i++){
  4. (p+i)->sum=(p+i)->score[]+(p+i)->score[]+(p+i)->score[];
  5. }
  6. }
  7. void sort(struct student *p,int n){
  8. int i,j,t;
  9. struct student temp;
  10. for(i=;i<n-;i++){
  11. t=i;
  12. for(j=i;j<n;j++){
  13. if(((p+t)->sum)<((p+j)->sum)){
  14. t=j;
  15. }
  16. }
  17. if(t!=i){
  18. temp=*(p+i);*(p+i)=*(p+t);*(p+t)=temp;
  19. }
  20. }
  21. }

4.本题调试过程碰到问题及解决办法(4分)

    

       错误原因:if((p+t)->sum)<((p+j)->sum)),少加一个括号。
       改正方法:加上即可。

要求二、学习总结和进度

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

在这两周学习了结构和在结构体中使用指针。将结构和两个结构的写法听的很清楚明白并感觉对for循环和if语句又有了更清楚的认识。没有学习明白指针在结构的使用,还是对函数有些苦恼,会尽快弄明白。

2、GIT:https://git.coding.net/GUANCHENG/101.git

3、点评3个同学的本周作业。

  张心悦:http://www.cnblogs.com/zxy980612/p/8696690.html

  丰大为:http://www.cnblogs.com/DavidPark/p/8664273.html

  王姝雯:http://www.cnblogs.com/phsudie/p/8661686.html

4、折线图。

C-语言第二次作业(大一下)的更多相关文章

  1. C语言——第二次作业(2)

    作业要求一 PTA作业的提交列表 作业要求二 题目1.删除字符串中数字字符(函数题) 1.设计思路 - (1)算法 第一步:调用定义的函数. 第二步:定义i=0.j=0,i为原字符数组角标,j为删除后 ...

  2. c++语言第二次作业

    一题目7-1统计学生成绩 1实验代码 #include<stdio.h> int main(void) { int i,n,grade,A,B,C,D,E; A=B=C=D=E=; sca ...

  3. C语言--第二周作业

    ****学习内容总结**** 1.Git和编辑器截图 2.MOOC截图 3.阅读<提问的智慧>感想 读完<提问的智慧>之后,我认为在提问时,要根据以下步骤: 谨慎明确的描述症状 ...

  4. C语言第二次作业 ,

    一:修改错题 1输出带框文字:在屏幕上输出以下3行信息. 将源代码输入编译器 运行程序发现错误 错误信息1: 错误原因:将stido.h拼写错误 改正方法:将stido.h改为stdio.h 错误信息 ...

  5. C语言--第二周作业评分和总结(5班)

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1026 一.评分要求 要求1 阅读指定博客+阅读收获+例子.(5分) 要求2 ...

  6. C语言第二次作业-----顺序结构

    一:改错题 (1)输出指定信息: 将给定源代码输入编译器: 执行编译命令,发现编译器报错,错误信息如下: 经检查,发现源程序将"stdio.h"误拼为"stido.h&q ...

  7. C语言第二周作业

    一.PTA实验作业 题目一:7-1 计算分段函数 1.实验代码 double x,y; scanf("%lf", &x); if(x >= 0){ y=pow(x,0 ...

  8. C语言第二次作业---分支结构

    一.PTA实验作业 题目1:计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if(x>=0){ y=sqrt(x); } ...

  9. c语言第二次作业2

    ---恢复内容开始--- (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 源程序 对源程序进行编译 错误信息1: 错误原因:stdio.h输入错误 改正方法:i和d互换位置 错误信息2: ...

  10. 2018C语言第二次作业

    一.学习内容总结 1.指针是一种数据类型,同样占有空间,其存储的是内存地址: 2.定义指针变量要在变量名之前加“*”字符表示: 3.“&”是取地址运算符,“*”是间接运算符: (注:声名和使用 ...

随机推荐

  1. postgresql主从复制

    本文章以rpm包方式安装,版本为9.3.4 一.postgresql安装 postgresql93-9.3.4-1PGDG.rhel6.x86_64.rpm postgresql93-libs-9.3 ...

  2. 怎样使用CSS设置文字与文字间距距离?

    [文字与文字间距距离,字与字距离间距CSS如何设置?]如果你也遇到W3Cschool用户唐婷大小姐类似的问题不妨也到W3Cschool编程问答进行提问. 对于使用CSS解决字间距的方法W3Cschoo ...

  3. 系统管理命令之last

    Linux系统中使用以下命令来查看文件的内容: cat  由第一行开始显示文件内容 tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl   显示的时候,顺道输出行号! mor ...

  4. Python 读取写入配置文件 ConfigParser

    https://blog.csdn.net/piaodexin/article/details/77371343 https://www.cnblogs.com/feeland/p/4502931.h ...

  5. 20145106 java实验一

    因为之前就使用过eclipse所以本次试验开始阶段并没有遇到什么大问题,按照步骤做下来. 我的实验序号根据算法是第二个四则运算的实验. 加法: package ljp; public class he ...

  6. sonar runner的配置

    #Configure here general information about the environment, such as SonarQube DB details for example ...

  7. 总结关于express vue-cli

    零零散散,拼起来,花了不少时间,这回把一些东西拼一下吧,免得到时又得重头开始,Blog还没弄好,打算用这些重新写一个,稍接不上,就落后了,这是技术,技术是不断更新换代的,明天这个框架,可以后天就有一个 ...

  8. python 获取5天前的日期

    from datetime import date, timedelta dt = date.today() - timedelta() print('Current Date :',date.tod ...

  9. vapply

    尽管 sapply 非常方便和智能,但有时智能可能隐藏着风险.假如我们有一个数字列表:x <- list(c(1, 2), c(2, 3), c(1, 3))如果我们想得到一个向量,其中每个元素 ...

  10. 《Blue Flke团队》第二次作业通讯录项目开题报告

      Just_Do_IT! N:8A:8B:7C:6D:8总分:37   Miracle-House N:8A:6B:7C:6D:8总分:35   Spring_Four N:7A:7B:8C:8D: ...