第二次作业
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;
while(s[i] != '\0'){
if (!(s[i] >= '0' && s[i] <= '9')) {
s[j++] = s[i];
}
i++;
}
s[j] = '\0';
}
3.本题调试过程中碰到的问题及解决办法
错误原因1:无
改正方法:无
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 n=0,i=0,j=0,k=0;
for(i=0;str[i]!='\0';i++)
{
for(j=i,k=0;str[j]==substr[k];j++,k++)
{
if(substr[k+1]=='\0')
{
n++;
}
}
}
return n;
3.本题调试过程中碰到的问题及解决办法
错误原因无
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=0, j=0, k=0, n=0;
char t;
for(n=0;;n++)
{
if(*(s+n)=='\0')break;
}
n--;
for(i=1;i<n-1;i++)
{
for(j=i;j<n;j++)
{
if(*(s+i)<*(s+j))
{
t=*(s+i);
*(s+i)=*(s+j);
*(s+j)=t;
}
}
}
}
3.本题调试过程中碰到的问题及解决办法
无
7-1 输出学生成绩
1.设计思路
(1)
第一步:阅读题目
第二步:理清思路,进行编写程序
第三步:检查程序,进行编译运行
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);
}


浙公网安备 33010602011771号