- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 C 编写第一个更严肃的程序,但我陷入了困境。我需要将此列表排序为不同的单独文件,因此它看起来像这样:
BE30B Berlin 2014-04-02 Gale 02
BE30B Berlin 2014-04-02 Dobbs 15
OS43K Oslo 2014-04-03 Malik 34
BE30B Berlin 2014-04-02 Hatton 09
OS43K Oslo 2014-04-03 Lowe 21
OS43K Oslo 2014-04-03 Smith 03
BE30B Berlin 2014-04-02 Chapman 13
OS43K Oslo 2014-04-03 Murphy 41
BE30B Berlin 2014-04-02 Dawkins 19
输出:
BE30B.txt
Berlin 2014-04-02
02 Gale
09 Hatton
13 Chapman
15 Dobbs
19 Dawkins
我不知道如何开始写它。我不太擅长编程,我通常做html/css。我的函数目前看起来像这样,它在屏幕上打印整个列表。
struct Booking // creating a structure
{
char number[6];
char dest[30];
char date[11];
char name[20];
int seat;
};
struct Bkg
{
struct Booking res;
struct Bkg *next;
};
struct Bkg *head = NULL;
void add_on_top( char* argnumber, char* argdest, char* argdate, char* argname, int argseat)
{
struct Bkg *temp=(struct Bkg*) malloc (sizeof(struct Bkg));
strcpy(temp->res.number, argnumber);
strcpy(temp->res.dest, argdest);
strcpy(temp->res.date, argdate);
strcpy(temp->res.name, argname);
temp->res.seat = argseat;
temp->next = head;
head = temp;
}
void insert( char* argnumber, char* argdest, char* argdate, char* argname, int argseat)
{
struct Bkg *head1 = head;
if (head != NULL) {
while (head1->next != NULL)
{
head1 = head1->next;
}
struct Bkg *temp = (struct Bkg*) malloc (sizeof(struct Bkg));
strcpy(temp->res.number, argnumber);
strcpy(temp->res.dest, argdest);
strcpy(temp->res.date, argdate);
strcpy(temp->res.name, argname);
temp->res.seat = argseat;
temp->next = NULL;
head1->next = temp;
}
else
add_on_top( argnumber, argdest, argdate, argname, argseat);
}
如果有人能帮助我,我将不胜感激。我只是不知道如何按符号对其进行排序,剩下的我可以做。
符号是航类号:BE30B。
我没有添加 main,因为那里没有发生太多事情,我有 struct Booking temp;
,我保留打开一个文件并读取它,然后使用函数 fscanf 处理它并使用我的函数 insert(temp.number, temp.dest, temp.date, temp.name, temp.seat);
用 C 编写代码不是我的选择,这是我的学校本学期才要求的东西。
最佳答案
开始:
定义一个结构体
struct flight
{
char flightNumber[6];
char destinationCity[30];
char flightDate[11];
char passengerName[30];
unsigned passengerNumber;
}
使用struct Flight数组
struct flight Flights[20];
打开源文件阅读,一定要添加错误检查
FILE *fp = NULL;
fp = fopen( "inputfile.txt", "r" );
使用以下方式从文件中读取一行:
char *buffer = NULL;
size_t length = 0;
// loop through file
int recNum = 0;
while( -1 != getline( &buffer, &length, fp ) )
解析字段
char *token = NULL;
token = strtok( buffer, " " ); //< add error checking for each call to strtok
strcpy( Flights[ recNum ].flightNumber, token );
token = strtok( NULL, " " );
strcpy( Flights[ recNum ].destinationCity, token );
token = strtok( NULL, " " );
strcpy( Flights[ recNum ].flightDate, token );
token = strtok( NULL, " " );
strcpy( Flights[ recNum ].passengerName, token );
token = strtok( NULL, " " );
Flights[ recNum ].passengerNumber = atoi(token);
recNum++;
结束输入循环
对列表进行排序,首先按乘客编号字段排序,然后再次按航类编号排序
(简单的冒泡排序可以处理这么少量的条目。您可以在互联网上搜索该算法)
循环打印输出
清理
fclose( fp );
对于大型输入文件来说,这可能无法很好地扩展,其中 Flights[] 最好声明为:
struct flight **Flights = NULL;
并使用realloc()
获取指向struct Flight
的指针数组的内存
并使用malloc()
获取struct Flight
的每个实例的实际内存区域
如果使用内存分配函数,为了提高效率,请跟踪数组中使用了多少条目,当已满时,将条目数加倍。这最大限度地减少了对 realloc()
的调用次数,这一点很重要,因为每次对 realloc()
的调用都可能导致整个数组被复制。
关于c - 动态数据结构、保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850246/
我目前正在尝试基于哈希表构建字典。逻辑是:有一个名为 HashTable 的结构,其中包含以下内容: HashFunc HashFunc; PrintFunc PrintEntry; CompareF
如果我有一个指向结构/对象的指针,并且该结构/对象包含另外两个指向其他对象的指针,并且我想删除“包含这两个指针的对象而不破坏它所持有的指针”——我该怎么做这样做吗? 指向对象 A 的指针(包含指向对象
像这样的代码 package main import "fmt" type Hello struct { ID int Raw string } type World []*Hell
我有一个采用以下格式的 CSV: Module, Topic, Sub-topic 它需要能够导入到具有以下格式的 MySQL 数据库中: CREATE TABLE `modules` ( `id
通常我使用类似的东西 copy((uint8_t*)&POD, (uint8_t*)(&POD + 1 ), back_inserter(rawData)); copy((uint8_t*)&PODV
错误 : 联合只能在具有兼容列类型的表上执行。 结构(层:字符串,skyward_number:字符串,skyward_points:字符串)<> 结构(skyward_number:字符串,层:字符
我有一个指向结构的指针数组,我正在尝试使用它们进行 while 循环。我对如何准确初始化它并不完全有信心,但我一直这样做: Entry *newEntry = malloc(sizeof(Entry)
我正在学习 C,我的问题可能很愚蠢,但我很困惑。在这样的函数中: int afunction(somevariables) { if (someconditions)
我现在正在做一项编程作业,我并没有真正完全掌握链接,因为我们还没有涉及它。但是我觉得我需要它来做我想做的事情,因为数组还不够 我创建了一个结构,如下 struct node { float coef;
给定以下代码片段: #include #include #define MAX_SIZE 15 typedef struct{ int touchdowns; int intercepti
struct contact list[3]; int checknullarray() { for(int x=0;x<10;x++) { if(strlen(con
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Empty “for” loop in Facebook ajax what does AJAX call
我刚刚在反射器中浏览了一个文件,并在结构构造函数中看到了这个: this = new Binder.SyntaxNodeOrToken(); 我以前从未见过该术语。有人能解释一下这个赋值在 C# 中的
我经常使用字符串常量,例如: DICT_KEY1 = 'DICT_KEY1' DICT_KEY2 = 'DICT_KEY2' ... 很多时候我不介意实际的文字是什么,只要它们是独一无二的并且对人类读
我是 C 的新手,我不明白为什么下面的代码不起作用: typedef struct{ uint8_t a; uint8_t* b; } test_struct; test_struct
您能否制作一个行为类似于内置类之一的结构,您可以在其中直接分配值而无需调用属性? 前任: RoundedDouble count; count = 5; 而不是使用 RoundedDouble cou
这是我的代码: #include typedef struct { const char *description; float value; int age; } swag
在创建嵌套列表时,我认为 R 具有对列表元素有用的命名结构。我有一个列表列表,并希望应用包含在任何列表中的每个向量的函数。 lapply这样做但随后剥离了列表的命名结构。我该怎么办 lapply嵌套列
我正在做一个用于学习目的的个人组织者,我从来没有使用过 XML,所以我不确定我的解决方案是否是最好的。这是我附带的 XML 文件的基本结构:
我是新来的 nosql概念,所以当我开始学习时 PouchDB ,我找到了这个转换表。我的困惑是,如何PouchDB如果可以说我有多个表,是否意味着我需要创建多个数据库?因为根据我在 pouchdb
我是一名优秀的程序员,十分优秀!