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=0,j=0;
for(i=0,j=0;*(s+i)!=‘\0‘;i++)
{
if(s[i]<‘0‘||s[i]>‘9‘)
{
s[j]=s[i];
j++;
}
}
s[j]=‘\0‘;
}
3.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因:无
改正方法:无
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/1?public=true
6-8 统计子串在母串出现的次数
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:借用strlen()函数统计字符串长度,再进行判断。
(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)
{
unsigned int i, n = 0;
for(i = 0; i < strlen(str); i++)
if((str[i] == substr[0]) && (str[i + 1] == substr[1]) && (str[i + 2] == substr[2]))
++n;
return n;
}
3.本体调试过程碰到问题及解决办法
错误信息1:无
错误原因1:无
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/2?public=true
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://coding.net/u/zhong123456/p/pta2/git/blob/master/3?public=true
7-1 输出学生成绩
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:上机运行程序,检查程序对错。
(2)流程图
无
2.实验代码
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int n,i,*p;
double max=0,min=999,average=0;
scanf("%d",&n);
if((p=(int*)calloc(n,sizeof(int)))==NULL){
exit(1);
}
for(i=0;i<n;i++)
![](https://images2018.cnblogs.com/blog/1358214/201804/1358214-20180408122151518-446991032.png)
scanf("%d",p+i);
for(i=0;i<n;i++)
average=average+*(p+i);
for(i=0;i<n;i++)
{
if(*(p+i)>max)
max=*(p+i);
}
for(i=0;i<n;i++){
if(*(p+i)<min)
min=*(p+i);
}
free(p);
printf("average = %0.2f\n",average/n);
printf("max = %0.2f\n",max);
printf("min = %0.2f\n",min);
}
3.本体调试过程碰到问题及解决办法
错误信息1:多种错误。
错误原因1:没有用明白指针
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/4?public=true
这两周来所有PTA作业中题目所使用的知识点:
1.字符串与指针的关系
2.函数指针调用函数
3.指针作函数参数
4.了解字符型函数
请用表格和折线图呈现你本周(3/26 8:00~4/9 8:00)的代码行数和所用时间、博客字数和所用时间