c++新手求解

吾乃长衫赵子龙 2019-05-22 10:38:12
现有二维数据大量(数量是N的平方),现将这些数据纵坐标按大到小,然后纵坐标按N等份,每等分的横坐标从小到大,最后输出这些数据。有什么办法可以输入这些原有的数据,最后直接得到处理后的数据?
...全文
21 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-05-22
  • 打赏
  • 举报
回复
仅供参考:
//NAME: essaie bla bla
//DIMENSION: 8
//DATA
//1  14  15
//2  11  10
//3  6   4
//4  7   13
//5  9   21
//6  19  3
//7  1   5
//8  8   8
//EOF
//
// 文本文件中可能还含有其他内容,但是需要用到的内容即以上

//比如data.txt:
//NAME: essaie bla bla
//其它内容
//DIMENSION: 8
//其它内容
//DATA
//其它内容
//1  14  15
//其它内容
//2  11  10
//其它内容
//3  6   4
//其它内容
//4  7   13
//其它内容
//5  9   21
//其它内容
//6  19  3
//其它内容
//7  1   5
//其它内容
//8  8   8
//其它内容
//EOF

// 目标是要获取NAME后字串,DIMENSION后数值,以及DATA以下的数值
// 其中NAME就是随便个字句,DIMENSION是城市数量,DATA以下是城市编号,X坐标,Y坐标
// 所有的这些将赋值给一个事先定义好的结构
#include <stdio.h>
#include <string.h>
#define MAXCPL   80   //每行最大字符数
#define MAXCITY  100  //每组数据中DATA最多项数,DIMENSION的最大值
#define MAXNAMEL 32   //NAME最大长度
struct S {
    char NAME[MAXNAMEL+1];
    int  DIMENSION;
    struct D {
        int NO;
        int X;
        int Y;
    } DATA[MAXCITY];
} s;
FILE *f;
int st,n,i;
char ln[MAXCPL];
int main() {
    f=fopen("data.txt","r");
    if (NULL==f) {
        printf("Can not open file data.txt!\n");
        return 1;
    }
    st=0;
    n=0;
    while (1) {
        if (NULL==fgets(ln,MAXCPL,f)) break;
        if (st==0) {
            if (1==sscanf(ln,"NAME: %31[^\n]",s.NAME)) st=1;
        } else if (st==1) {
            if (1==sscanf(ln,"DIMENSION: %d",&s.DIMENSION)) st=2;
        } else if (st==2) {
            if (0==strcmp(ln,"DATA\n")) st=3;
        } else if (st==3) {
            if (3==sscanf(ln,"%d%d%d",&s.DATA[n].NO,&s.DATA[n].X,&s.DATA[n].Y)) {
                n++;
                if (n>=MAXCITY || n>=s.DIMENSION) break;
            }
        }
    }
    fclose(f);
    printf("s.NAME=[%s]\n",s.NAME);
    printf("s.DIMENSION=%d\n",s.DIMENSION);
    for (i=0;i<n;i++) {
        printf("s.DATA[%d].NO,X,Y=%d,%d,%d\n",i,s.DATA[i].NO,s.DATA[i].X,s.DATA[i].Y);
    }
    return 0;
}
//s.NAME=[essaie bla bla]
//s.DIMENSION=8
//s.DATA[0].NO,X,Y=1,14,15
//s.DATA[1].NO,X,Y=2,11,10
//s.DATA[2].NO,X,Y=3,6,4
//s.DATA[3].NO,X,Y=4,7,13
//s.DATA[4].NO,X,Y=5,9,21
//s.DATA[5].NO,X,Y=6,19,3
//s.DATA[6].NO,X,Y=7,1,5
//s.DATA[7].NO,X,Y=8,8,8

大家好!现在我们将要开始一个穿越“数据结构、算法和程序”这个抽象世界的特殊旅程, 以解决现实生活中的许多难题。在程序开发过程中通常需要做到如下两点:一是高效地描述数 据;二是设计一个好的算法,该算法最终可用程序来实现。要想高效地描述数据,必须具备数 据结构领域的专门知识;而要想设计一个好的算法,则需要算法设计领域的专门知识。 在着手研究数据结构和算法设计方法之前,需要你能够熟练地运用C + +编程并分析程序, 这些基本的技能通常是从C + +课程以及其他分散的课程中学到的。本书的前两章旨在帮助你回 顾一下这些技能,其中的许多内容你可能已经很熟悉了。 本章我们将回顾C++ 的一些特性。因为不是针对C++ 新手,因此没有介绍诸如赋值语句、 if 语句和循环语句(如for 和w h i l e)等基本结构,而是主要介绍一些可能已经被你忽略的C + + 特性: • 参数传递方式(如传值、引用和常量引用)。 • 函数返回方式(如返值、引用和常量引用)。 • 模板函数。 • 递归函数。 • 常量函数。 • 内存分配和释放函数:n e w与d e l e t e。 • 异常处理结构:t r y, c a t c h和t h r o w。 • 类与模板类。 • 类的共享成员、保护成员和私有成员。 • 友元。 • 操作符重载。 本章中没有涉及的其他C + +特性将在后续章节中在需要的时候加以介绍。本章还给出了如 下应用程序的代码: • 一维和二维数组的动态分配与释放。 • 求解二次方程。 • 生成n 个元素的所有排列方式。 • 寻找n个元素中的最大值。 此外,本章还给出了如何测试和调试程序的一些技巧。
1、这是一个C/C++新手基础教程,合适完全不懂程序的新手入坑,半生不熟的程序入坑,其他语言的程序想学C++。2、这是一个C++基础系列教程,本季是作为基础教程的第一集,主要为学习C语言,为学好C++打好坚实的基础,C++包含了C部分,要学好C++,学好C语言是必然的趋势。3、C++入行系列教程是一个由浅入深的一个过程,第一第二集主要学习C语言和C++,后面三集主要教大家如何用C++去写封装一些商业级案例,。第三集主要学SOCKET编程,了解熟悉socket编程。第四集主要学用C++自定义数据库,纯C++编写 第五集主要学习数据结构,学习C++的各个标准模板库。大家如有兴趣可以学习已经制作完毕的C++游戏服务器和Mysql数据库教程。4、C++入行系列教程不单单是讲解语法知识,还有另外讲解C/C++内存,以及内存优化,工作中经常用到的经验,以及避免一些坑。5、本季教程主要内容是讲解编程语言,计算机组成原理,开发环境,C语言基础语法。普及一些基础知识,并且结合工作经验讲解一些案列。教程后面会安排一些工作任务给学员。具体内容看教程课题大纲6、不保证每个人都学的会,良心之作,不喜勿买。7、教程会结合本人20年工作经验讲解工作经常用到的地方,以及新手入职面试需要注意的地方。打好基础学好C++走遍天下都不怕,相信自己,你行的。8、每一集都是单独的,需要单独购买噢,亲,请看清楚,C++系列每一集 并不是必须购买的。新手朋友第一第二集是必须学购买的哈,千万记得。切记切记切记
第1章 C + +程序设计 大家好!现在我们将要开始一个穿越“数据结构、算法和程序”这个抽象世界的特殊旅程, 以解决现实生活中的许多难题。在程序开发过程中通常需要做到如下两点:一是高效地描述数 据;二是设计一个好的算法,该算法最终可用程序来实现。要想高效地描述数据,必须具备数 据结构领域的专门知识;而要想设计一个好的算法,则需要算法设计领域的专门知识。 在着手研究数据结构和算法设计方法之前,需要你能够熟练地运用 C + +编程并分析程序, 这些基本的技能通常是从 C + +课程以及其他分散的课程中学到的。本书的前两章旨在帮助你回 顾一下这些技能,其中的许多内容你可能已经很熟悉了。 本章我们将回顾C++ 的一些特性。因为不是针对 C++ 新手,因此没有介绍诸如赋值语句、 if 语句和循环语句(如 for 和w h i l e)等基本结构,而是主要介绍一些可能已经被你忽略的 C + + 特性: • 参数传递方式(如传值、引用和常量引用)。 • 函数返回方式(如返值、引用和常量引用)。 • 模板函数。 • 递归函数。 • 常量函数。 • 内存分配和释放函数: n e w与d e l e t e。 • 异常处理结构: t r y, c a t c h和t h r o w。 • 类与模板类。 • 类的共享成员、保护成员和私有成员。 • 友元。 • 操作符重载。 本章中没有涉及的其他 C + +特性将在后续章节中在需要的时候加以介绍。本章还给出了如 下应用程序的代码: • 一维和二维数组的动态分配与释放。 • 求解二次方程。 • 生成n 个元素的所有排列方式。 • 寻找n个元素中的最大值。 此外,本章还给出了如何测试和调试程序的一些技巧。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧