码迷,mamicode.com
首页 > 其他好文 > 详细

memory函数

时间:2015-06-27 21:25:03      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

题目:根据一系列指令操作一段内存。指令有两种,set和copy。set的格式是set <from> <size> <value>:将这段内存中from开始size长度赋值为valuecopy的格式是copy <from> <size> <to>:将from开始的内存赋值到to的位置,长度为size以byte为单位。其中from, to, size 都是非负整数,value在byte范围内。内存初始值应为0
输入:多组数据,每组数据包括整数m、n,m为内存的长度,以byte为单位,n为指令的个数,其后n行包括n条指令,2<=m<=20, 1<=n<=10。输入数据保证不越界。
输出:每组数据一行,用16进制输出最后的内存值,16进制中的ABCDEF用大写字母
请将代码修正后提交:
#include <stdio.h>
#include <string.h>
int main() {
    int m, n;
    char buf[20], cmd[5];
    int i;
    int from, size, to_value;
    while (scanf("%d%d", &m, &n) != EOF) {
        memset(buf, m, 0);
        for (i = 0; i < n; i++) {
            scanf("%s%d%d%d", cmd, &from, &size, &to_value);
            if (cmd[0] == ‘s‘) {
                memset(buf + from, size, to_value);
            } else {
                memcpy(buf + to_value, buf + from, size);
            }
        }
        for (i = 0; i < m; i++) {
            printf("%02X", buf[i]);
        }
        printf("\n");
    }
    return 0;
}

 

输入

多组数据,每组数据包括整数m、n,m为内存的长度,以byte为单位,
n为指令的个数,其后n行包括n条指令,2<=m<=20, 1<=n<=10。输入数据保证不越界。

 

输出

每组数据一行,用16进制输出最后的内存值,16进制中的ABCDEF用大写字母

 

样例输入

5 1 set 1 3 32

样例输出

0020202000
 
修改如下:
 1 #include <stdio.h>
 2 #include <string.h>
 3 int main() {
 4     int m, n;
 5     char buf[20], cmd[5];
 6     int i;
 7     int from, size, to_value;
 8     while (scanf("%d%d", &m, &n) != EOF) {
 9         memset(buf, 0, m);
10         for (i = 0; i < n; i++) {
11             scanf("%s%d%d%d", cmd, &from, &size, &to_value);
12             if (cmd[0] == s) {
13                 memset(buf + from, to_value, size);
14             } else {
15                 memmove(buf + to_value, buf + from, size);
16             }
17         }
18         for (i = 0; i < m; i++) {
19             printf("%02X", buf[i]);
20         }
21         printf("\n");
22     }
23     return 0;
24 }

代码不是我修改的,同学帮我看的。

下面是三个需要了解的函数,我在百度上找到的,虽然不太精确,但也可以懂了。

http://baike.baidu.com/link?url=yOyPxGIYBZrTpi5_AqCNZVJ2QoG6I5yuVfVgjZRvzWwMFVH7_-mhoqzGsGFVm7uir698K9bjy_1O2vY8aY1Ky_

http://baike.baidu.com/link?url=ovGppkijQ9ODwKa1Pm43gllSTBL3dIQkmsaXQXl6JSMpsudOpaorA0eJl_npokIgQgQhzt0fXJ1r9e2n6gRMVK

http://baike.baidu.com/link?url=B-ZYULjMcrjtJ9DVLXzhIpFveAwnV4NOlxmYqEQjxIITntepIcWE8ELmm7hdGPgy0pYBWP_kzRqj3rTu1-O1v_

memory函数

标签:

原文地址:http://www.cnblogs.com/baigg1995/p/4604595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!