![]() |
1
1
这里至少有几个问题。
0:
1.本公司:
2:您使用strcpy(),然后插入一个终止字符,大概是为了防止您从strcpy()复制了超过10个字符。在这种情况下,数据溢出。您要使用strncpy(),并且 然后 终止字符串。
具有
替代
具有
3:打印“和%s”列表的循环正在使用错误的变量取消对数组的引用。您正在使用“j”进行迭代,但将“i”元素拉出。 4:就换行而言,network[i].name(对于任何i)很可能包含要复制的换行符。 5:如果你在同一个地方有三样东西,你可能会以你不想要的方式列出它们。
可能会输出(其他错误修复后)
解决这个问题剩下的只是一个练习。 |
![]() |
2
1
我会把这个改一改。我首先根据xx和yy值对地址/名称数组进行排序。然后你可以穿过阵列,所有来自同一地点的人都会紧挨着彼此…… |
![]() |
3
1
显然,你用
你的其他问题是错误的索引
|
![]() |
4
0
避免使用
数组
关于额外的新行,我将重新检查您在数据中的阅读方式。如果是从文本文件中读取,则可能是在文件每行末尾的换行符中读取。解决这个问题的方法是用一个空值(因为这通常是字符串的结尾)替换换行符,比如
|
![]() |
5
0
下面是我在修改代码时采取的一些不同的迭代步骤。我没有运行任何一个函数,但是我希望它基本上是正确的(除了最后一个函数,我很久没有接触过c qsort()函数)。前两个具有复杂性O(n^2),而后一个具有复杂性O(n*log(n))。这在“大型”网络上很重要。 除非你有一个特别的需要去做所有这些副本,否则你真的应该远离它。 下面代码的最后一个版本还修改了数组的顺序。(对它排序)。
|
![]() |
6
0
您可能想尝试使用更多的抽象。你的问题本质上与我在 introductory homework assignment . 在同一个网站上 a solution 使用Dave Hanson的 C Interfaces and Implementations 图书馆。
最基本的想法是使用
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |