2019学期第八周编程总结

Wesley13
• 阅读 608

6-1 函数实现字符串逆序 (15 分)

本题要求实现一个字符串逆序的简单函数。

函数接口定义:

void f( char *p );

函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。

裁判测试程序样例:

#include <stdio.h>
#define MAXS 20

void f( char *p );
void ReadString( char *s ); /* 由裁判实现,略去不表 */

int main()
{
    char s[MAXS];

    ReadString(s);
    f(s);
    printf("%s\n", s);

    return 0;
}

/* 你的代码将被嵌在这里 */ 输入样例:

Hello World!

输出样例:

!dlroW olleH

1)代码

void f( char *p )
{
    int i=0,s,m;
    while(p[i]!='\0')
        i++;
        s=0;
        m=i-1;
    while(s<=m)
    {
        int t=p[s];
        p[s]=p[m];
        p[m]=t;
        s++;
        m--;
    }
}

2)设计思路

2019学期第八周编程总结

3)问题

我一直想用直接倒序输出的方法解决,可终日不得解出,有时间找大佬交流下

4)截图

2019学期第八周编程总结

6-3 字符串的连接 (15 分)

本题要求实现一个函数,将两个字符串连接起来。

函数接口定义:

char *str_cat( char *s, char *t );

函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。

裁判测试程序样例:

#include <stdio.h>
#include <string.h>

#define MAXS 10

char *str_cat( char *s, char *t );

int main()
{
    char *p;
    char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'};

    scanf("%s%s", str1, str2);
    p = str_cat(str1, str2);
    printf("%s\n%s\n", p, str1);

    return 0;
}

/* 你的代码将被嵌在这里 */ 输入样例:

abc
def

输出样例:

abcdef
abcdef

1)代码

char *str_cat(char *s,char *t)
{
    return strcat(s,t);
    return s;

}

2)设计思路

使用string.h中的函数stecat直接返回连接后的值,

3)问题

4)截图

2019学期第八周编程总结

7-1 输出学生成绩 (20 分)

本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。

输入格式: 输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。

输出格式: 按照以下格式输出:

average = 平均成绩
max = 最高成绩
min = 最低成绩

结果均保留两位小数。

输入样例:

3
85 90 95

输出样例:

average = 90.00
max = 95.00
min = 85.00

1)代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
int N,i,*p;
double sum,max=0,min=111; 
scanf("%d",&N);
if((p=(int *)calloc(N,sizeof(int)))==NULL){
    printf("Not able to allocate memory.\n");
    exit(1);
}
for(i=0;i<N;i++){
    scanf("%d",p+i);
    if(max<*(p+i))
    max=*(p+i);
    if(min>*(p+i))
    min=*(p+i);
}
for(i=0;i<N;i++){
    sum=sum+*(p+i);
}
printf("average = %.2f\nmax = %.2f\nmin = %.2f",sum/N,max,min);
free(p);

return 0;

}

2)设计思路

2019学期第八周编程总结

3)问题

真的没有凭空想出来的能力,参照书上例题,求最大最小值已经是做烂了的题

4)截图

2019学期第八周编程总结

7-4 字符串排序 (20 分)

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

输出格式: 按照以下格式输出排序后的结果:

After sorted:

每行一个字符串 输入样例:

red yellow blue green white
输出样例:
After sorted:
blue
green
red
white
yellow

1)代码

#include<stdio.h>
#include<string.h>
int main()
{
    char a[80][80],min[80];
    for(int i=0;i<5;i++){
       scanf("%s",&a[i]);
    }
    for(int i=1;i<5;i++){
        for(int j=0;j<5-i;j++){
            if(strcmp(a[j],a[j+1])>0){
                strcpy(min,a[j]);
                strcpy(a[j],a[j+1]);
                strcpy(a[j+1],min);
            }
        }
    }
    printf("After sorted:\n");
    for(int i=0;i<5;i++){
        printf("%s\n",a[i]);
    }
    return 0;
}

2)设计思路

2019学期第八周编程总结

3)问题

不知道用冒泡排序的方法在自定义函数中还能不能用string.h的函数,反正冒泡排序没通过pta

4)截图

2019学期第八周编程总结

7-3 计算平均成绩 (15 分)

给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。

输入格式: 输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩”,中间以空格分隔。

输出格式: 首先在一行中输出平均成绩,保留2位小数。然后按照输入顺序,每行输出一位平均线以下的学生的姓名和学号,间隔一个空格。

输入样例:

5
00001 zhang 70
00002 wang 80
00003 qian 90
10001 li 100
21987 chen 60

输出样例:

80.00
zhang 00001
chen 21987

1)代码

#include<stdio.h>
struct student{
    char num[10];
    char name[20];
    float count;
};
int main()
{
    struct student stu[10];
    int i,n;
    double sum=0;
    scanf("%d\n", &n);
    for (i=0;i<n;i++) {
        scanf("%s%s%f", &stu[i].num, &stu[i].name, &stu[i].count);
        sum=sum+stu[i].count;
    }
    printf("%.2f\n",sum/n);
    for (i = 0; i<n; i++){
        if (stu[i].count<sum/n){
            printf("%s %s\n", stu[i].name, stu[i].num);    
        }
    }
    return 0;
}

2)设计思路

2019学期第八周编程总结

3)问题

定义结构仿照的书上例题,错误原因 定义信息结构式开创空间不够大 2019学期第八周编程总结

4)截图

2019学期第八周编程总结

日期

花的时间

代码行数

学到的知识

目前比较迷惑的问题

3/11-3/16

8小时

25

2维数组应用

文件与代码创立联系和输入输出具体方式

3/17-3/22

5小时

47

选择法排序

二维数组使用过程中数据的储存

3/23-3/29

5小时

19

字符串编程

指针的运算

3/30-4/4

3小时

62

指针的使用

指针在哪些方面能是编程更简便

4/5-4/12

5小时

114

字符数组

指针实用性怎么样

4/13-4/19

4小时

96

指针和字符

怎么在众多解题方法中寻找最好的

学习感悟

在这个章节的学习中发现每个题目不同的解题方法寻找过程的乐趣,再者这次的题目结合了以的学习的知识,让我得以巩固不熟练的知识,从学习中发现乐趣是我最大的收获

结对编程感悟

这周自习课没上没有结对

折线图

2019学期第八周编程总结

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这