第二次作业
Posted 柠萌汁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。
6-7 删除字符串中数字字符
1.设计思路
(1)第一步:根据题目含义,了解所给程序。
第二部:设计简单的函数,执行题中所编译出的程序。
第三部:上机编译运行,检查程序对错。
(2)流程图
2.实验代码
#include "stdio.h" void delnum(char *s); int main () { char item[80]; gets(item); delnum(item); printf("%s\\n",item); return 0; } void delnum(char *s) { int i,j; for(i=0;*(s+i)!=\'\\0\';i++) { if(*(s+i)>=\'0\'&&*(s+i)<=\'9\') { for(j=i;*(s+j)!=\'\\0\';j++) { *(s+j)=*(s+j+1); } i--; } } }
3.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因1:无
git地址:https://git.coding.net/xiaowangnaonao/6-7xiaowangnaonao.git
6-8 统计子串在母串出现的次数
1.设计思路
(1)第一步:根据题目含义,了解所给程序。
第二部:设计简单的函数,执行题中所编译出的程序。
第三部:上机编译运行,检查程序对错。
(2)流程图
2.实验代码
#include<stdio.h> int fun(char *str,char *substr); int main() { char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd"; int n; n=fun(str,substr); printf("n=%d\\n",n); return 0; } int fun(char *str,char *substr) { int i,j,count=0,t; for(i=0;*(str+i)!=\'\\0\';i++) { t=1; if(*(str+i)==*substr) { for(j=0;*(substr+j)!=\'\\0\';j++) { if(*(str+i+j)!=*(substr+j)) { t=0; break; } } if(t==1) count++; } } return count; }
3.本题调试过程碰到问题及解决办法
错误信息1:没有打分号
错误原因1:马虎
git地址:https://git.coding.net/xiaowangnaonao/6-8.git
6-9 字符串中除首尾字符外的其余字符按降序排列
1.设计思路
(1)第一步:根据题目含义,了解所给程序。
第二部:设计简单的函数,执行题中所编译出的程序。
第三部:上机编译运行,检查程序对错。
(2)流程图
2.实验代码
#include <stdio.h> int fun(char *s,int num); int main() { char s[10]; gets(s); fun(s,7); printf("%s",s); return 0; } int fun(char *s,int num) { int i,j; char t; for(i=1;i<num-1;i++) { for(j=num-2;j>i;j--) { if(*(s+j)>*(s+j-1)) { t=*(s+j); *(s+j)=*(s+j-1); *(s+j-1)=t; } } } }
3.本题调试过程碰到问题及解决办法
错误信息1:地址没有与地址对等
错误原因1:没有准确了解地址与地址的关系
git地址: https://git.coding.net/xiaowangnaonao/6-9.git
7-1 输出学生成绩
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:上机运行程序,检查程序对错。
(2)流程图
2.实验代码
#include<stdio.h> #include<stdlib.h> int main() { int N,i; double sum=0,max,min,ag,*p; scanf("%d",&N); if((p=(double *)calloc(N,sizeof(double)))==NULL) { printf("Not able to allocate memory.\\n"); exit(1); } for(i=0;i<N;i++) { scanf("%lf",p+i); sum=sum+*(p+i); } max=*p,min=*p; for(i=0;i<N;i++) { if(*(p+i)>max) max=*(p+i); if(*(p+i)<min) min=*(p+i); } ag=sum*1.0/N; printf("average = %.2lf\\nmax = %.2lf\\nmin = %.2lf\\n",ag,max,min); free(p); }
3.本体调试过程碰到问题及解决办法
错误信息1:不能准确的控制输入的人数
错误原因1:没有准确的用指针,导致无法控制
git地址:https://git.coding.net/xiaowangnaonao/7-1.git
这两周来所有PTA作业中题目所使用的知识点:
1.字符串与指针的关系
2.函数指针调用函数
3.指针作函数参数
4.循环语句等基础知识
请用表格和折线图呈现你本周(3/1913:00~4/5 8:00)的代码行数和时间、博客字数和时间
以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章