DaiMaDaiMaDaiMaDaiMa 2020-01-09 08:35 采纳率: 100%
浏览 241
已采纳

怎么写这道c语言编程题啊?

图片说明

我是新人,希望能直接给出代码,如果正确,我一定会采纳的。

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-01-09 12:35
    关注

    给你做了几个命令,我不要你额外的悬赏分,更不要你的钱,但是你这个实在比较复杂,采纳本回答后,其余的一个要求开一个0悬赏的问题。我分别回答。

    // Q1051301.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    
    #include <stdio.h>
    #include <string.h>
    
    char content[1000][5000];
    char filename[512];
    int linecnt;
    
    void display()
    {
        int n;
        scanf("%d", &n);
        if (n > linecnt)
            printf("第%d行不存在!", n);
        else
            printf("%s", content[n - 1]);
    }
    
    void del()
    {
        int n;
        scanf("%d", &n);
        if (n > linecnt)
            printf("第%d行不存在!", n);
        else
        {
            for (int i = n - 1; i < linecnt - 1; i++)
            {
                strcpy(content[i], content[i + 1]);
            }
            linecnt--;
        }
    }
    
    void cucd(int type)
    {
        int n, m;
        scanf("%d %d", &n, &m);
        if (type == 2) m = m + 1;
        for (int i = linecnt; i > m - 1; i--)
        {
            strcpy(content[i], content[i - 1]);
        }
        if (n >= m) n = n + 1;
        strcpy(content[m - 1], content[n - 1]);
        linecnt++;
    }
    
    void save()
    {
        FILE *fp;
        fp = fopen(filename, "w+");
        for (int i = 0; i < linecnt; i++)
        fputs(content[i], fp);
        fclose(fp);
    }
    
    int main()
    {
        int choice;
    start:
        printf("文本编辑器\n1 新建文件\n2 编辑文件\n请选择:");
        scanf("%d", &choice);
        if (choice == 1)
            printf("请输入新文件的文件名:");
        else if (choice == 2)
            printf("请输入打开文件的文件名:");
        else
            goto start;
        scanf("%s", &filename[0]);
        FILE *file;
        if (choice == 1)
        {
            if (fopen(filename, "r") == NULL)
            {
                file = fopen(filename, "w");
                fclose(file);
            }
            else
            {
                fclose(file);
                printf("文件已经存在\n");
                goto start;
            }
        }
        else
        {
            if ((file = (fopen(filename, "r"))) != NULL)
            {
                linecnt = 0;
                while (1)
                {
                    if (fgets(&content[linecnt++][0], 5000, file) == NULL) 
                        break;
                }
                fclose(file);
            }
            else
            {
                printf("文件不存在\n");
                goto start;
            }
        }
        char cmd[10];
        while (1)
        {
            printf("L n 显示第n行\n");
            printf("D n 删除第n行\n");
            printf("CU n m 将第n行复制到第m行上面\n");
            printf("CD n m 将第n行复制到第m行上面\n");
            printf("SAVE 保存退出\n");
            printf("EXIT 放弃修改直接退出\n");
            scanf("%s", cmd);
            if (strcmp("L", cmd) == 0)
            {
                display();
            }
            else if (strcmp("D", cmd) == 0)
            {
                del();
            }
            else if (strcmp("CU", cmd) == 0)
            {
                cucd(1);
            }
            else if (strcmp("CD", cmd) == 0)
            {
                cucd(2);
            }
            else if (strcmp("SAVE", cmd) == 0)
            {
                save();
                break;
            }
            else if(strcmp("EXIT", cmd) == 0)
            {
                break;
            }
        }
        return 0;
    }
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 pycharm倒入虚拟环境的时候,显示这个,但是我的虚拟环境已经创建了
  • ¥15 FPGA芯片60进制计数器
  • ¥15 前端js怎么实现word的.doc后缀文件在线预览
  • ¥20 macmin m 4连接iPad
  • ¥15 DBIF_REPO_SQL_ERROR
  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部