一个简单的问题
指针的课后题已知有一个文件,它的内容是
3
100001 100002 110001 100089
100001 100003 100005
110001 100089我们要把这个文件读取后,输出以下结果:
100001 110001 100089对,这个题目就是二维的字符串去重(返回重复的元素)!但题目要求不要定义一个二维数组去存储……
新手表示,C有集合这样的类型吗?若没有,是否可以用 Python 来转换下后处理? 链表?? 虽然我不是很懂C,但是不是可以定义1维数组吗 永恒的蓝色梦想 发表于 2020-3-28 10:26
虽然我不是很懂C,但是不是可以定义1维数组吗
可以自己定义一维数组,但是按照二维的方式索引,虽然有点专空子 time1970 发表于 2020-3-29 14:27
可以自己定义一维数组,但是按照二维的方式索引,虽然有点专空子
为啥要按照二维的方式索引呢? 永恒的蓝色梦想 发表于 2020-3-29 14:47
为啥要按照二维的方式索引呢?
自然是方便啦 time1970 发表于 2020-3-29 15:00
自然是方便啦
我还真看不出来哪方便 本帖最后由 time1970 于 2020-3-29 15:15 编辑
永恒的蓝色梦想 发表于 2020-3-29 15:06
我还真看不出来哪方便
那你就按照你自己的想法写,写出来,测试答案,如果想优化,再考虑做一个做成一个通用的集合接口,比如用在检测一个文件中的有哪些单词 time1970 发表于 2020-3-29 15:12
那你就按照你自己的想法写,写出来,测试答案,如果想优化,再考虑做一个做成一个通用的集合接口,比如 ...
那你先讲讲怎么把一维数组按照二维方式索引喽 本帖最后由 time1970 于 2020-3-29 15:27 编辑
永恒的蓝色梦想 发表于 2020-3-29 15:19
那你先讲讲怎么把一维数组按照二维方式索引喽
自行百度以行主序的数组内存地址计算公式
这里提供二维的 xd + L(C * i + j) 永恒的蓝色梦想 发表于 2020-3-29 15:19
那你先讲讲怎么把一维数组按照二维方式索引喽
#include <iostream>
int main()
{
const int w = 5;
const int h = 4;
int *p = new int;
for(int y = 0; y < h; ++y) {
for(int x = 0; x < w; ++x) {
p = y + x;
}
}
for(int y = 0; y < h; ++y) {
for(int x = 0; x < w; ++x) {
std::cout << p << " ";
}
std::cout << std::endl;
}
delete[] p;
return 0;
}
有点没看懂 你可以定义一个结构体
typedef struct MyData
{
long data;
int count;
}MYDATA;
依次输入,每次输入遍历数组,查找对比,没有就新增,有相同的data就count+1;最后查看count,就知道哪些重复,哪些没重复
页:
[1]