排行榜

  • 用户榜
  • 标签榜
  • 冲榜分奖金

频道

最新最热悬赏待采纳 筛选
  • 1

    回答

  • 6

    浏览

#include <iostream> #include<vector> #include<opencv2/opencv.hpp> #include<opencv2/highgui/highgui_c.h> #include<imgproc/imgproc.hpp> #include<core/core.hpp> using namespace std; using namespace cv; Mat src, src_cv, src_sp, src_end, dst; float min_area = 1.0; RotatedRect rect; Rect rect_first; Point currentCenter; vector<RotatedRect>rect_marry; double max(double first, double second); double min(double first, double second); Point2f marry(); int main(int argc, char** argv) {     double a[100], b[100];     int num = 0;     src = imread("C:/Users/cycqq/Desktop/chengguo/1.jpg");     blur(src, src, Size(3, 3), Point(-1, -1), 4);     cvtColor(src, src_cv, CV_BGR2GRAY);     threshold(src_cv, dst, 200, 255, THRESH_BINARY);     Mat structureElement = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));     dilate(dst, dst, structureElement, Point(-1, -1), 1);     vector<Mat>S;     split(src, S);     src_sp = S[0] - S[2];     inRange(src_sp, 100, 180, src_sp);     dilate(src_sp, src_sp, structureElement, Point(-1, -1), 1);     src_end = src_sp & dst;     morphologyEx(src_end, src_end, MORPH_CLOSE, structureElement);     Canny(src_end, src_end, 50, 150, 3);     vector<vector<Point>>contours;     vector<Vec4i>hireachy;     vector<RotatedRect>rect_marry;     Point2f point[4];     findContours(src_end, contours, hireachy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));     for (int i = 0; i < hireachy.size(); i++)     {         rect = minAreaRect(contours.at(i));         rect.points(point);        /* rect_first = boundingRect(contours.at(i));         if (rect_first.width < rect_first.height/2.5 )         {             rectangle(src, rect_first, Scalar(255, 0, 255), 2, LINE_8);         }*/         if (rect.size.width < (rect.size.height / 2.5))         {             rect_marry.push_back(rect);         }     }     marry();     imshow("Shlimazl", src);     waitKey(0);     return 0; } double max(double first, double second) {     return first > second ? first : second; } double min(double first, double second)  {     return first < second ? first : second; } Point2f marry()//匹配灯条 {     RotatedRect leftrect, rightrect;     vector<int*>level_end;     double area[2], distence;     for (int j = 0; j < rect_marry.size(); ++j)     {         for (int k = j + 1; k < rect_marry.size(); ++k)         {             int level = 0;             int temp[3];             leftrect = rect_marry[j];             rightrect = rect_marry[k];             if (leftrect.angle == rightrect.angle)             {                 level += 10;             }             else if (abs(leftrect.angle - rightrect.angle) < 10)             {                 level += 8;             }             else if (abs(leftrect.angle - rightrect.angle) < 20)             {                 level += 6;             }             else if (abs(leftrect.angle - rightrect.angle) < 30)             {                 level += 4;             }             else if (abs(leftrect.angle - rightrect.angle) < 40)             {                 level += 2;             }             else break;             area[0] = leftrect.size.width * leftrect.size.height;             area[1] = rightrect.size.width * rightrect.size.height;             if (area[0] == area[1])             {                 level += 10;             }             else if (min(area[0], area[1]) * 2 > max(area[0], area[1]))             {                 level += 8;             }             else if (min(area[0], area[1]) * 3 < max(area[0], area[1]))             {                 level += 6;             }             else if (min(area[0], area[1]) * 4 < max(area[0], area[1]))             {                 level += 4;             }             else if (min(area[0], area[1]) * 5 < max(area[0], area[1]))             {                 level += 2;             }             else break;             double height = (leftrect.size.height + rightrect.size.height) / 2;             if (leftrect.center.y == rightrect.center.y)             {                 level += 10;             }             else if (abs(leftrect.center.y - rightrect.center.y) < 0.1 * height)             {                 level += 8;             }             else if (abs(leftrect.center.y - rightrect.center.y) < 0.2 * height)             {                 level += 6;             }             else if (abs(leftrect.center.y - rightrect.center.y) < 0.3 * height)             {                 level += 4;             }             else if (abs(leftrect.center.y - rightrect.center.y) < 0.4 * height)             {                 level += 2;             }             else break;             if ((abs(leftrect.center.x - rightrect.center.x) / 2.5 * height) == 1)             {                 level += 10;             }             else if ((abs(leftrect.center.x - rightrect.center.x) / 2.5 * height) > 0.9)             {                 level += 8;             }             else if ((abs(leftrect.center.x - rightrect.center.x) / 2.5 * height) > 0.8)             {                 level == 6;             }             else if ((abs(leftrect.center.x - rightrect.center.x) / 2.5 * height) > 0.7)             {                 level += 4;             }             else if ((abs(leftrect.center.x - rightrect.center.x) / 2.5 * height) > 0.6)             {                 level += 2;             }             else break;             temp[0] = j;             temp[1] = k;             temp[2] = level;             level_end.push_back(temp);         }     }     int maxlevel = 0, index = 0;     for (int C = 0; C < level_end.size(); ++C)     {         if (level_end[C][2] > maxlevel)         {             maxlevel = level_end[C][2];             index = C;         }     }     currentCenter.x = (rect_marry[level_end[index][0]].center.x + rect_marry[level_end[index][1]].center.x) / 2;     currentCenter.x = (rect_marry[level_end[index][0]].center.y + rect_marry[level_end[index][1]].center.y) / 2;     line(src, Point(currentCenter.x - 10, currentCenter.y - 10), Point(currentCenter.x + 10, currentCenter.y - 10), Scalar(255, 255, 0), 5, LINE_8);     line(src, Point(currentCenter.x + 10, currentCenter.y - 10), Point(currentCenter.x - 10, currentCenter.y - 10), Scalar(255, 255, 0), 5, LINE_8);     circle(src, currentCenter, 6.5, Scalar(0, 0, 255), 5);     imshow("Shlimazl1", src);     return currentCenter; } 上文为代码,运行时提示我将无效参数传递的错误,大致应该是我的匹配函数问题,但是个人还是个新手,本身就对opencv理解不深,这个问题也是看的我云里雾里,希望有大佬能帮忙解决。 我的程序有点冗长。图片上传,只能幸苦大佬看文本了。 PS:marry函数中间都是判断矩形信息,模式相同,看一段应该即可。  

  • 1

    回答

  • 16

    浏览

class Solution { public: int lengthOfLongestSubstring(string s) { unordered_map<char,int> hashmap; int max=0; unordered_map<char, int>::iterator it; for (int i = 0; i < s.size(); i++) { it = hashmap.find(s[i]); if (it == hashmap.end()) { hashmap[s[i]] = i; } else { max = max < hashmap.size() ? hashmap.size() : max; it++; hashmap.erase(hashmap.begin(), it); hashmap[s[i]] = i; } max = max < hashmap.size() ? hashmap.size():max; } return max; } }; 同一个示例,vs跑出来的结果是对的,但上传力扣是错的。

  • 1

    回答

  • 12

    浏览

#include<iostream> #include<stdio.h> #include<string> using namespace std; typedef struct LNode {     int data;     struct LNode* next; }LNode ,*Linklist ; //不带头节点 //bool InitList(LNode *&L)   //初始化单链表 //{ //    L = NULL;  //空链表,暂时没有任何节点,以防止又其他脏数据 //    cout << "1" << endl; //    return true; //} //带头节点的单链表 bool InitList(LNode*& l) {     l = (LNode*)malloc(sizeof(LNode));     if (l == NULL)         return false;     l->next = NULL;     return true; } //代码测试 //头插法创建单链表 ( 每个新插入的数据都在头结点的后面)  Linklist Creatlist1(Linklist& l) {     LNode* s; int x;     l = (LNode*)malloc(sizeof(LNode));         if (l)     {         l->next = NULL;     }     cout << "请输入节点的值";     //scanf("&d", &x);     不兼容     cin >> x;     while (x!= 1000)            //输入1000时自动退出循环     {         s = (LNode*)malloc(sizeof(LNode));   //创建一个新的节点         if (s)              //判断s是否为空         {             s->data = x;             s->next = l->next;         }         l->next = s;         cout << "请再次输入节点的值";     //    scanf("%d", &x);    不兼容         cin >> x;     }     l->next = NULL;     return l; } //尾插法创建点链表 Linklist Creatlist2(Linklist &l) {     LNode* s, * r = l; int x;     l = (LNode*)malloc(sizeof(LNode));     cout << "请输入节点的值 :";     cin >> x;     while (x != 1000)     {         s = (LNode*)malloc(sizeof(LNode));         if (s && r) {             s->data = x;             r->next = s;             r = s;         }         cout << "请再次输入节点的值 :";         cin >> x;     }     if (r)     {         r->next = NULL;     }     return l; } //按照顺序输出单链表 void Getlist(Linklist l) {     //LNode *p = NULL;          LNode* p = l->next;    //将头结点赋给一个指针     while (p)              //当p为空时退出     {         cout << p->data;         cout << "  ";         p= p->next;     }     cout << endl; } void  Getlist2(Linklist &l) {     //LNode *p = NULL;          LNode* a = l->next;    //将头结点赋给一个指针          while (a)              //当p为空时退出     {         cout << a->data;         cout << "  ";         a = a->next;     }     cout << endl;      } Linklist  LocateElem(Linklist l, int e) {     LNode *p = l->next;     while (p != NULL && p->data != e)     {         p = p->next;     }     return p; } void test() {     Linklist l;     InitList(l);     Creatlist1(l);     //Creatlist2(l);          int i; LNode* p;     cout << "请输入查询的数据" << endl;     cin >> i;     p = LocateElem(l, i);     if (p)     {         cout << p->data << endl;     }     //Getlist(l);     //Getlist2(l);     //cout << "1" << endl; } int main() {     test();     system("pause");     return 0; }

  • 7

    回答

  • 34

    浏览

#include<stdio.h> #include<string.h> int main() {     int n,i,a;     char c[100]="1",b[100]="0",d[100]="0";     scanf("%d\n",&n);     gets_s(c);     a=strlen(c);     {if(n%2==1)     printf("No");     else     {         for(i=0;i<n/2;i++)         {b[i]=c[i];         d[i]=c[i+n/2];         }         b[n/2+1]='\0';         c[n/2+1]='\0';         if(strcmp(b,d)==0)         {printf("yes.");}     }}      }

  • 4

    回答

  • 24

    浏览

void JudgeGrap(struct Mine* h) {     struct Mine* p = h;     //判断抓到那个物品     for (int i = 0; i < MAX_MINE; i++)     {         if (p->flag == true &&hok.endx > p->x && hok.endx<p->x + p->size             && hok.endy>p->y && hok.endy < p->y + p->size)         {             hok.index = i;             break;         }         p = p->next;     }          p = h;     //如果抓到了     if (hok.index != -1)     {         int u = 0;         if (u == 0)         {             sole.num = 0;             u = 1;         }         for (int i = 0; i < 10; i++)         {                     p = p->next;         }         hok.state = M_SHORT;         p->x = hok.endx;问题在这里会显示引发了异常: 写入访问权限冲突。 **p** 是 nullptr。求大佬解答,谢谢!         p->y = hok.endy;                  sole.num = sole.num + 1;         //缩短完成         if (distance(hok))         {             if (p->gold == 1)             {                 sole.coin = 0;             }             else             {                 sole.coin = sole.coin + p->gold;             }             p->flag = false;             hok.index = -1;             hok.state = M_NOMAL;         }     }     p = h; }

  • 4

    回答

  • 21

    浏览

#include <iostream> #include <string> #include <algorithm> #include <string> using namespace std; class Coordinate { public: Coordinate(); Coordinate(double xx, double yy); //构造函数,对数据成员进行初始化 void display(); //显示坐标(x,y) void setX(double); //设置 X void setY(double); //设置 Y double distance(); //计算并返回点到坐标原点的距离 private: double x, y; }; Coordinate::Coordinate() {} Coordinate::Coordinate(double xx, double yy) { x = xx; y = yy; } void Coordinate::display() { cout << x << "," << y; } void Coordinate::setX(double) { //这里 } void Coordinate::setY(double) { //和这里 } double Coordinate::distance() { double d = 0; return d = sqrt(x * x + y * y); } int main() { Coordinate point1(1.0, 1.0); double d1 = point1.distance(); cout << d1 << endl; Coordinate point2; point2.setX(5.0); point2.setY(10.5); point2.display(); return 0; };  

  • 7

    回答

  • 34

    浏览

struct node { int data; struct node *next; } //swap between second and third void swap(node *first, node *second, node *third) { third->next = second; first->next = third; second->next = third->next; }  

  • 4

    回答

  • 15

    浏览

#define green redbud::io::state::manual << redbud::io::hfg::green 其中manual 和gree都是枚举值,我不太明白 << 这个符号在代码中的含义,求大神指教!!!

  • 1

    回答

  • 7

    浏览

编译通过 运行时出现 ****** loop 1 ****** extract keypoints cost time: 0.007447 descriptor computation cost time: 0.00627 good matches: 134 match cost time: 0.006377 pnp inliers: 130 bin/run_vo: symbol lookup error: /home/gyc/slambook-master/project/0.4/lib/libmyslam.so: undefined symbol: _ZN3g2o30OptimizationAlgorithmLevenbergC1EPNS_6SolverE 报错 跪求大神帮忙

  • 5

    回答

  • 16

    浏览

class Bird { virtual void fly(); //birds can fly void travel() { fly(); } //birds travel by flying } class Eagle: public Bird { virtual void fly() {/* implement the flying code here */} } class Penguin: public Bird { virtual void swim(); //penguins can swim } Eagle e(); e.travel(); //OK, eagle can fly Penguin p(); p.travel(); //Error, penguin can't fly  

回答 以弱证道
采纳率0%
21小时前
  • 4

    回答

  • 31

    浏览

#include<iostream> using namespace std; class student { public:     student(int n,int a,int b,int c,int d,int e):num(n),za(a),zb(b),zc(c),zd(d),ze(e){}     int sum();     double average(); private:     int num;     int za;     int zb;     int zc;     int zd;     int ze; }; int student::sum(){return(za + zb + zc + zd + ze);} double student::average() { return((za + zb + zc + zd + ze) / 5); } int main() {     student a[5] = {         student(1001,87,88,88,89,78),         student(1002,76,77,67,89,89),         student(1003,99,87,98,67,87),         student(1004,78,87,99,98,67),         student(1005,67,87,98,89,88)     };     for (int i = 0; i < 5; i++)     {         cout << a[i].student << a[i].sum() << a[i].average();         cout << endl;     }     system("pause");     return 0; } 输出的a[i].student一直报错是不允许使用类型名,求解,谢谢各位大佬!!!

  • 7

    回答

  • 108

    浏览

1.设有正规式r=1(0|1)*0   (a)列举该三个该正规式所表示正规集的元素。 (b)构造识别该正规集的NFA; (c)将NFA确定化为DFA并进行最小化(要有计算过程)。 2.对于文法: A → id = E  E → E + F | F  F → id (a)计算该文法所有非终结符的 FIRST、FOLLOW 集合; (b)拓广文法并构造识别该文法活前缀的 DFA。

  • 1

    回答

  • 15

    浏览

【问题描述】   编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树。例如如下的先序遍历字符串:ABC##DE#G##F### ,其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再计算任意两个结点的最近公共祖先,输出共同祖先。 【输入形式】    1、输入包括1行字符串,长度不超过100。    2、两个节点 【输出形式】   可能有多组测试数据,对于每组数据,输出共同祖先字符。 【样例输入】   abc##de#g##f###   c f 【样例输出】   b

  • 5

    回答

  • 21

    浏览

#include<iostream> using namespace std; const int size=10; struct str { int length; int time; int maxsize; char *a; }; void initial(str &n); void input(str &n); void extend(str &n); void copy(str &n,str m); void connect(str &n,str m); void output(str n); void sub(str &n,str m); void length(str &n); void dele(str &n); int main() { str a,b; initial(a); initial(b); //初始化 a,b input(a); //向 a 中输入字符串 copy(b,a); //将 a 中字符串复制到 b 中 length(b); connect(b,a); // 将 a 连接到 b的尾部 connect(b,a); output(a); output(b); length(a); length(b); dele(a); dele(b); } void initial(str &n) { n.time=1; n.maxsize=size; n.a=new char[size]; } void input(str &n) { cout<<"输入字符串"<<endl; char a; int i=1; for(;;i++) { cin>>a; if(i>=n.maxsize-1) //大于当前空间则执行扩容 { extend(n); } if(a=='#') { cout<<"输入结束"<<endl; break; } else { n.a[i]=a; } } n.length=i-1; } void extend(str &n) //作用相当于 realloc { n.time++; char *temp=new char[n.time*size]; n.maxsize=(n.time)*size; for(int i=0;i<=n.length;i++) { temp[i]=n.a[i]; } n.a=temp; } void copy(str &n,str m) //把 m 串复制给 n,此处默认 n为空 { if(m.length>n.maxsize-1) { int i=1; int time=(m.length-n.maxsize)/10+1; for(;i<=time;i++) { extend(n); } } int i=1; for(;i<=m.length;i++) { n.a[i]=m.a[i]; } n.length=m.length; } void connect(str &n,str m) //把 m 接到 n的尾部 { if((n.length+m.length)>n.maxsize-1) //本来是 -2 ,但是新连接的串没有必要 用空的 [0]位置占地,所以改为-1 { int t=((n.length+m.length)-n.maxsize+1)/10+1; for(int i=1;i<=t;i++) { extend(n); } } int i=n.length+1; int o=1; for(;i<=m.length+n.length;i++) // for(;i<=m.length;i++,o++) { n.a[i]=m.a[o]; o++; } n.length=m.length+n.length; // n.length=m.length+1; } void output(str n) { int i=1; for(;i<=n.length;i++) { cout<<n.a[i]; } cout<<endl; } void sub(str &n,str m) //将 m中某子串取出赋值给 n { cout<<"请输入从第几个字符开始"<<endl; int a; cin>>a; if(n.maxsize-1<m.length-a) { int time=(n.maxsize-1-(m.length-a))/10+1; for(int i=1;i<=time;i++) { extend(n); } } int b=1; for(;a<=m.length;a++) { n.a[b]=m.a[a]; b++; } n.length=m.length-a; } void length(str &n) { cout<<"字符串长为: "<<n.length<<endl; } void dele(str &n) { delete []n.a; } 在字符数超过7个之后,再输出就会出现乱码

  • 3

    回答

  • 19

    浏览

#include<windows.h> #include<tchar.h> LRESULT CALLBACK WINAPI WndProc (HWND,UINT,UINT,LONG);//窗口函数说明 //WinMain入口函数,完成一系列定义和初始化工作,产生消息循环 int WINAPI WinMain (HINSTANCE hInstance,//应用程序当前实例句柄 HINSTANCE hPrevInstance,//应用程序其他实例句柄 LPSTR szCmdLine,//指向程序命令行参数的指针 int iCmdShow)//应用程序开始执行时窗口显示方式的整数值标识 { WNDCLASS wndcls;//初始化 窗口类的定义 //为窗口类各个字段赋值 wndcls.cbClsExtra = NULL;//分配在窗口类结构后的字节数(窗口类无扩展) wndcls.cbWndExtra = NULL;//分配在窗口实例后的字节数(窗口实例无扩展) wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口类的背景刷(白色) wndcls.hCursor= LoadCursor(NULL,IDC_CROSS);//光标 wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);//最小化图标为缺省图标 wndcls.hInstance = hInstance;//创建窗口的应用程序当前句柄 wndcls.lpfnWndProc = WndProc;//窗口处理函数为WinProc wndcls.lpszClassName = _T("win32");//窗口类名 wndcls.lpszMenuName = NULL;//窗口中无菜单 wndcls.style = CS_HREDRAW|CS_VREDRAW;//样式 //注册窗口类 RegisterClass(&wndcls); //创建窗口类 HWND hwnd = CreateWindow (_T("Win32"),//窗口类名 _T("文本动画输出"),//窗口标题名 WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //显示窗口 ShowWindow(hwnd,iCmdShow); UpdateWindow(hwnd);//更新并绘制用户区 //消息循环 MSG msg; while (GetMessage(&msg,NULL,0,0))//从消息队列中读取一条消息并放在MSG结构中 { TranslateMessage(&msg);//将消息虚拟键转换为字符消息 DispatchMessage(&msg);//将消息传送到指定窗口 } return msg.wParam;//检测到WM_QUIT消息,程序结束循环并退出 }; LRESULT CALLBACK WINAPI WndProc (HWND hwnd,//接收消息的窗口句柄 UINT iMessage,//消息值 UINT wParam, LONG lParam) { int iFontFlag; HDC hDC; //定义设备环境句柄. HFONT hF; //定义字体句柄. PAINTSTRUCT ps; //定义包含绘图信息的结构体变量 TEXTMETRIC tm; //定义包含字体信息的结构体变量. char lpsz_1[]="欲穷千里目 更上一层楼"; //定义输出字符串. char chFont[7]; //定义包含字体的字符串. int X=0,Y=0,nCharlen=strlen(lpsz_1); switch(iMessage) { case WM_CREATE: SetTimer(hwnd,1,200,NULL); //设定定时器.每0.2秒发出WM_TIMER消息. break; case WM_TIMER: InvalidateRect(hwnd,NULL,1); //刷新用户区. break; case WM_PAINT: //处理绘图消息. hDC=BeginPaint(hwnd,&ps); //获取设备环境指针. if(iFontFlag/nCharlen==0) //设置字体颜色. { SetTextColor(hDC,RGB(255,0,0)); strcpy(chFont,"楷体"); } else if(iFontFlag/nCharlen==1) { SetTextColor(hDC,RGB(0,255,0)); strcpy(chFont,"隶书"); } else if(iFontFlag/nCharlen==2) { SetTextColor(hDC,RGB(255,255,0)); strcpy(chFont,"宋体"); } else if(iFontFlag/nCharlen==3) { SetTextColor(hDC,RGB(0,0,255)); strcpy(chFont,"黑体"); } else { iFontFlag=0; SetTextColor(hDC,RGB(255,0,0)); } //设置字体. hF=CreateFont( //获得字体句柄. 40, //字体高度 0, //系统自动调整宽度. 0, //文本水平 0, //字体倾斜度为0 400, //字体粗度.400为正常. 0, //字体不倾斜. 0, //无下划线. 0, //无中划线. GB2312_CHARSET, //字符集 OUT_DEFAULT_PRECIS, //默认输出精度. CLIP_DEFAULT_PRECIS, //默认裁剪精度 DEFAULT_QUALITY, //默认输出质量. DEFAULT_PITCH|FF_DONTCARE,//默认间距 chFont); //字体名称. SelectObject(hDC,hF); //选入字体. GetTextMetrics(hDC,&tm); //得到字体的信息. TextOut(hDC,X,Y,&lpsz_1[iFontFlag%nCharlen], nCharlen-iFontFlag%nCharlen); //输出. iFontFlag+=2; //字体标志自增. DeleteObject(hF); //删除字体. EndPaint(hwnd,&ps); //删除设备环境指针. return 0; case WM_DESTROY: //结束. PostQuitMessage(0); KillTimer(hwnd,1); //删除定时器. return 0; default: return(DefWindowProc(hwnd,iMessage,wParam,lParam)); } return 0; }; 显示end of file found before the left brace '{' was matched 有没有大佬看一下呜呜呜,万分感谢!

  • 1

    回答

  • 17

    浏览

试了下直接用target_link_libraries链接正常无问题 用find_library查找库查找不到,然后链接的时候报错,路径代码如下   include_directories(./include/) find_library(GLFWDLL  glfw3.dll  HINTS ${PROJECT_SOURCE_DIR}/lib)   SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/)   add_executable(demo src/main.cpp src/glad.c) target_link_libraries(demo ${PROJECT_SOURCE_DIR}/lib/glfw3.dll) #target_link_libraries(demo ${GLFWDLL})

  • 5

    回答

  • 21

    浏览

(编译运行多次才会成功显示一次,大部分概率控制台无显示) 是否是因为while循环的if判断条件太多导致生成随机数的数目过多导致控制台无显示? #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main() {         srand((unsigned int)time(0));                //用 srand 修改种子     int a,r;     int aa=0;                                     int num1[9]={1,2,3,4,5,6,7,8,9};     int num2[9]={1,2,3,4,5,6,7,8,9};     int num3[9]={1,2,3,4,5,6,7,8,9};     int num4[9]={1,2,3,4,5,6,7,8,9};     int num5[9]={1,2,3,4,5,6,7,8,9};     int num6[9]={1,2,3,4,5,6,7,8,9};     int num7[9]={1,2,3,4,5,6,7,8,9};     int num8[9]={1,2,3,4,5,6,7,8,9};     int array[9][9];                            //生成9*9的数独棋盘                                  /* 第一行*/         for(int i=0; i<9; i++)                             {             r=rand()%(9-i);                        //生成随机数              array[0][aa]=num1[r];                                     for(int j=r;j<9;j++)                 num1[j]=num1[j+1];                 aa++;                 }                 aa=0; /*第二行*/                                  for(int i=0; i<3; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num2[r]!=array[0][0]&&num2[r]!=array[0][1]&&num2[r]!=array[0][2])                 break;                                                                                          }                 array[1][aa]=num2[r];                                                     for(int j=r;j<9;j++)                 num2[j]=num2[j+1];                     aa++;                      }         for(int i=3; i<6; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num2[r]!=array[0][3]&&num2[r]!=array[0][4]&&num2[r]!=array[0][5])                 break;                                                                                          }                 array[1][aa]=num2[r];                                                     for(int j=r;j<9;j++)                 num2[j]=num2[j+1];                     aa++;                      }         for(int i=6; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num2[r]!=array[0][6]&&num2[r]!=array[0][7]&&num2[r]!=array[0][8])                 break;                                                                                          }                 array[1][aa]=num2[r];                                                     for(int j=r;j<9;j++)                 num2[j]=num2[j+1];                     aa++;                      }                 aa=0; /*第三行*/                         for(int i=0; i<3; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num3[r]!=array[0][0]&&num3[r]!=array[0][1]&&num3[r]!=array[0][2]                  &&num3[r]!=array[1][0]&&num3[r]!=array[1][1]&&num3[r]!=array[1][2])                 break;                                                                                          }                 array[2][aa]=num3[r];                                                     for(int j=r;j<9;j++)                 num3[j]=num3[j+1];                     aa++;                      }         for(int i=3; i<6; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num3[r]!=array[0][3]&&num3[r]!=array[0][4]&&num3[r]!=array[0][5]                     &&num3[r]!=array[1][3]&&num3[r]!=array[1][4]&&num3[r]!=array[1][5])                 break;                                                                                          }                 array[2][aa]=num3[r];                                                     for(int j=r;j<9;j++)                 num3[j]=num3[j+1];                     aa++;                      }         for(int i=6; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num3[r]!=array[0][6]&&num3[r]!=array[0][7]&&num3[r]!=array[0][8]                  &&num3[r]!=array[1][6]&&num3[r]!=array[1][7]&&num3[r]!=array[1][8])                 break;                                                                                          }                 array[2][aa]=num3[r];                                                     for(int j=r;j<9;j++)                 num3[j]=num3[j+1];                     aa++;                      } aa=0;                   /*第四行*/                         for(int i=0; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num4[r]!=array[0][i]&&num4[r]!=array[1][i]&&num4[r]!=array[2][i])                 break;                                                                                          }                 array[3][aa]=num4[r];                                                     for(int j=r;j<9;j++)                 num4[j]=num4[j+1];                     aa++;                      } aa=0;                                                 /*第五行*/         for(int i=0; i<3; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num5[r]!=array[0][i]&&num5[r]!=array[1][i]&&num5[r]!=array[2][i]                  &&num5[r]!=array[3][0]&&num5[r]!=array[3][1]&&num5[r]!=array[3][2])                 break;                                                                                          }                 array[4][aa]=num5[r];                                                     for(int j=r;j<9;j++)                 num5[j]=num5[j+1];                     aa++;                      }         for(int i=3; i<6; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num5[r]!=array[0][i]&&num5[r]!=array[1][i]&&num5[r]!=array[2][i]                  &&num5[r]!=array[3][3]&&num5[r]!=array[3][4]&&num5[r]!=array[3][5])                 break;                                                                                          }                 array[4][aa]=num5[r];                                                     for(int j=r;j<9;j++)                 num5[j]=num5[j+1];                     aa++;                      }         for(int i=6; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num5[r]!=array[0][i]&&num5[r]!=array[1][i]&&num5[r]!=array[2][i]                  &&num5[r]!=array[3][6]&&num5[r]!=array[3][7]&&num5[r]!=array[3][8])                 break;                                                                                          }                 array[4][aa]=num5[r];                                                     for(int j=r;j<9;j++)                 num5[j]=num5[j+1];                     aa++;                      } aa=0;  /*第六行*//*         for(int i=0; i<3; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num6[r]!=array[0][i]&&num6[r]!=array[1][i]&&num6[r]!=array[2][i]&&num6[r]!=array[3][i]&&num6[r]                  &&num6[r]!=array[4][0]&&num6[r]!=array[4][1]&&num6[r]!=array[4][2]&&num6[r]!=array[3][0]&&num6[r]!=array[3][1]&&num6[r]!=array[3][2])                 break;                                                                                          }                 array[5][aa]=num6[r];                                                     for(int j=r;j<9;j++)                 num6[j]=num6[j+1];                     aa++;                      }         for(int i=3; i<6; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num6[r]!=array[0][i]&&num6[r]!=array[1][i]&&num6[r]!=array[2][i]&&num6[r]!=array[3][i]                  &&num6[r]!=array[4][3]&&num6[r]!=array[4][4]&&num6[r]!=array[4][5]&&num6[r]!=array[3][3]&&num6[r]!=array[3][4]&&num6[r]!=array[3][5])                 break;                                                                                          }                 array[5][aa]=num6[r];                                                     for(int j=r;j<9;j++)                 num6[j]=num6[j+1];                     aa++;                      }         for(int i=6; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num6[r]!=array[0][i]&&num6[r]!=array[1][i]&&num6[r]!=array[2][i]&&num6[r]!=array[3][i]                  &&num6[r]!=array[4][6]&&num6[r]!=array[4][7]&&num6[r]!=array[4][8]&&num6[r]!=array[3][6]&&num6[r]!=array[3][7]&&num6[r]!=array[3][8])                 break;                                                                                          }                 array[5][aa]=num6[r];                                                     for(int j=r;j<9;j++)                 num6[j]=num6[j+1];                     aa++;                      }                 aa=0; */ /*第七行*//*         for(int i=0; i<3; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num7[r]!=array[0][i]&&num7[r]!=array[1][i]&&num7[r]!=array[2][i]&&num7[r]!=array[3][i]&&num7[r]!=array[3][i]&&num7[r]!=array[4][i]&&num7[r]!=array[5][i])                 break;                                                                                          }                 array[6][aa]=num7[r];                                                     for(int j=r;j<9;j++)                 num7[j]=num7[j+1];                     aa++;                      }         for(int i=3; i<6; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num7[r]!=array[0][i]&&num7[r]!=array[1][i]&&num7[r]!=array[2][i]&&num7[r]!=array[3][i]&&num7[r]!=array[3][i]&&num7[r]!=array[4][i]&&num7[r]!=array[5][i])                 break;                                                                                          }                 array[6][aa]=num7[r];                                                     for(int j=r;j<9;j++)                 num7[j]=num7[j+1];                     aa++;                          }         for(int i=6; i<9; i++)                             {                                 while(true){                 r=rand()%(9-i);                        //生成随机数                  if(num7[r]!=array[0][i]&&num7[r]!=array[1][i]&&num7[r]!=array[2][i]&&num7[r]!=array[3][i]&&num7[r]!=array[3][i]&&num7[r]!=array[4][i]&&num7[r]!=array[5][i])                 break;                                                                                          }                 array[6][aa]=num7[r];                                                     for(int j=r;j<9;j++)                 num7[j]=num7[j+1];                     aa++;                          }                 aa=0;*/ /*第八行*/ /*第九行*/   /*输出数独*/             for(int y = 0;y < 9;++y)                 {         cout<<array[0][y]<<" ";                 }                 cout<<endl;         for(int y = 0;y < 9;++y)                 {         cout<<array[1][y]<<" ";                 }             cout<<endl;         for(int y = 0;y < 9;++y)                 {         cout<<array[2][y]<<" ";                 }         cout<<endl;         for(int y = 0;y < 9;++y)                 {         cout<<array[3][y]<<" ";                 }         cout<<endl;         for(int y = 0;y < 9;++y)                 {         cout<<array[4][y]<<" ";                 }         cout<<endl;                                  }  

  • 1

    回答

  • 11

    浏览

通过pushbutton“导入数据”,使combobox的下拉列表选项,替换成excel文档里的某一列数据

  • 3

    回答

  • 9

    浏览

如图,我想要把文字显示在曲线上面用以绑定鼠标事件显示鼠标位置各曲线的值,请问该怎么做呢? qlabel父窗口与qchart父窗口同级无用。 qLabel->raise()无用。

  • 0

    回答

  • 20

    浏览

现在又TIFF图片,有等高线,请问怎样提取山顶点啊?孩子头秃了。

  • 4

    回答

  • 51

    浏览

c++输出4×4整型数组(方阵)主对角线的最大值及主对角线所有元素的乘积。算法提示:主对角线上的数组元素列和行下标相等。

  • 4

    回答

  • 40

    浏览

我在写程序时遇到一个问题,在类的数据域中定义了变量len,然后动态分配int* p=new int[len]。之后在类的析构函数中delete[] p,触发断点。但是将动态分配的数组改为int* p=new int [6];即确定数组的太小,此时再delete[] p,没有问题。我想问一下各位大佬,是因为在类的析构函数中len最终也会销毁的原因吗,所以它delete越界了?

回答 blackme^u
采纳率66.7%
昨天
  • 3

    回答

  • 10

    浏览

用INSTALL_opts="--no-multiarch"下载了brms64位版本(根据可能的版本不适用);CPU可以执行AVX系列指令;电脑电源性能已调最大 这是版本信息

  • 3

    回答

  • 20

    浏览

#include <iostream> using namespace std; int BF(string duan, string qiao, int pos); void getNext(string t, int* next); int KMP(string t, string s, int pos); int main() {     string s("henuuniversityd