第二次作业

Posted jj990519

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。

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

1.设计思路

(1)主要描述题目算法

第一步:用for循环来进行查找

第二步:遇到0到9的数不做处理,其他的字符存储在另一个新的数组中

第三步:在数组后加上字符‘\\0‘

(2)流程图

技术分享图片

2.实验代码

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

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

技术分享图片

错误信息1:无

改正方法1:无

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

1.设计思路

(1)主要描述题目算法

第一步:用for循环来查找

第二步:用if语句判断判断str数组中相邻三个数与substr相邻三个数是否相等

第三步:如果多符合条件的话,t++

(2)流程图

技术分享图片

2.实验代码

 1 int fun(char *str,char *substr)
 2 {
 3     int i, t=0;
 4     for(i=0; i<81; i++)
 5     {
 6         if(*(str+i)==*(substr+0) && *(str+i+1)==*(substr+1) && *(str+i+2)==*(substr+2))    
 7         t++;
 8     }
 9     return t;
10 }

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

技术分享图片

错误信息1:无

改正方法1:无

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

1.设计思路

(1)主要描述题目算法

第一步:在for循环中除掉首尾

第二步:再用冒泡排序算法按照降序排列

第三步:输出数组

(2)流程图

技术分享图片

2.实验代码

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

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

技术分享图片

错误信息1:无

改正方法1:无

题目7-1输出学生成绩

1.设计思路

(1)主要描述题目算法

第一步:调用malloc,申请一段指定大小的内存

第二步:用for循环输入数据,并求出总和

第三步:用for找出最大最小值,并求出平均值

(2)流程图

技术分享图片

2.实验代码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 int main ()
 5 {
 6     int n,i;
 7     scanf("%d",&n);
 8     int* a;
 9     a = (int*)malloc(n*sizeof(int));
10     //int a[n];
11 
12     float sum=0;
13     
14     for(i=0; i<n; i++)
15     {
16         if(i == n-1)
17         scanf("%d",&a[i]);
18         else
19         scanf("%d ",&a[i]);
20         sum = sum + a[i];
21     }
22     float max=0,min=a[0],average;
23     average = sum/n;
24     
25     for(i=0; i<n; i++)
26     {
27         if(max < a[i])
28         {
29             max = a[i];
30         }
31         
32         if(min > a[i])
33         min = a[i];
34     }
35     
36     printf("average = %.2f\\n",average);
37     printf("max = %.2f\\n",max);
38     printf("min = %.2f\\n",min);
39     //free(a);
40     /*average = 平均成绩max = 最高成绩min = 最低成绩*/
41     free(a);
42     return 0;
43 }

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

技术分享图片

错误信息1:编译错误,多种错误

错误原因1:在没有输入数组数据之前,提前定义了min=a[0]

改正方法1:将min=a[0]放在输入数组数据之后

以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章

第二次在对话框中膨胀片段时出错

第二次作业电梯编程题测试结果

第二次作业

第二次作业

OO第二次博客作业

第二次作业——题目一