整形数字元素1,2,3依次进栈,有几种出栈顺序?

3个整形数字元素1,2,3依次进栈,请问有几种出栈顺序?
老师说答案是5.
为什么啊,不是6吗?

4个回答

(1)3个均入栈后才可出栈
1(in)、2(in)、3(in)、3(out)、2(0ut)、1(out)
(2)2个先入栈后才可以出栈
1(in)、2(in)、2(0ut)、1(out)、3(in)、3(out)
1(in)、2(in)、2(0ut)、3(in)、3(out)、1(out)
(3)1个先入栈后才可出栈
1(in)、1(out)、2(in)、2(0ut)、3(in)、3(out)
1(in)、1(out)、2(in)、3(in)、3(0ut)、2(out)

1.进一个出一个 1、2、3
2.一次进去,一次出来 3、2、1
3. 先进1,出1。2和3一次进 1、3、2
4.1,2一次进,一次出,3再进 2、1、3
5.1先进不出,2、3一次进,一次出,1再出 2、3、1

5种,公式是 (2n)!/(n!(n+1)!),出栈顺序如下
1、1,2,3
2、1,3,2
3、2,1,3
4、2,3,1
5、3,2,1

u012505618
cxlovu 不会出现你说的这种情况,栈是先进后出,3第一个出栈的话2进栈的时间一定晚于1不可能比1还晚再出栈
4 年多之前 回复
u012505618
cxlovu 回复暮婉歌: 为什么
4 年多之前 回复
qq_27831145
暮婉歌 3,1,2为什么不可以啊
4 年多之前 回复

为什么会是6呢?抛开公式不谈,你可以枚举。你要知道,如果是3第一个出栈的话,那么1,2的出栈顺序实际上已经确定了,也就是说3第一个出栈
只有一种情况。那么总的情况数应该是2+2+1=5

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
学生求大神解答:使用栈编程一个计算器程序,但输出结果只有8位负数如-33686016,是出了什么问题?
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string> using namespace std; #define MAXSIZE 1000 typedef struct { int in; }IN; typedef struct { IN* base; IN* top; int stacksize; }SqStack;//构造栈元素 void InitStack(SqStack& s)//构造空栈s函数 { s.base = (IN*)malloc(MAXSIZE * sizeof(IN)); s.top = s.base; s.stacksize = MAXSIZE; } //入栈函数 void push(SqStack& s, int e) { s.top->in = e;//将e压入栈顶 s.top++;//top上移 } //出栈函数 int pop(SqStack& s) { s.top--; return s.top->in; } //获取栈顶元素 int Gettop(SqStack& s) { return (s.top - 1)->in; } //计算函数 void ope(SqStack& A, SqStack& B) { int a, b, s = 0; char c; a = pop(A); b = pop(A); c = pop(B); switch (c) { case '+':s = b + a; break; case '-':s = b - a; break; case '*':s = b * a; break; case '/':s = b / a; break; } push(A, s); } //比较计算符优先级 char pre(char a, char b) { if (b == '(') return '0';//为(直接入栈 else { if (a == '(') { if (b == ')') return '1';//左右括号相遇,左括号出栈 else return '2';//左括号右侧第一个运算符入栈 } else if (a == '*' || a == '/') { if (b == ')') return '3';//括号之间有尚未完成的运算符 else if (b == '*'|| b == '/') return '='; else return '>'; } else if (a == '+' || a == '-') { if (b == '+'||b == '-') return '='; else if (b == ')') return '3'; else return '<'; } } } int main() { SqStack num, sig;//构造两个栈,num:数字;;sig:运算符 InitStack(num); InitStack(sig); push(sig,'#'); //做栈底标记 char ch, c[10] = { '\0' };//ch存得到的字符,,c[50]将数字字符成串 int x=0,j=0; //x存储存c[50]转化的整形数字,j标记存c[50] int t = 0; ch = getchar();//读入第一个字符 for (; ch != '='; ch = getchar()) //用for循环进行输入,输入等号时结束,一次循环只处理一个字符 { if ('0' <= ch && ch <= '9') { c[j] = ch; //储存连续的数字字符 j++; t = 1; } else { if (t == 1) { //防止同时输入两个运算符使数与运算符匹配错位 c[j] = '\0'; x = atoi(c); j = 0; t = 0; push(num, x); } int f = 0; //循环标记 while (f == 0) { if (Gettop(sig) == '#') { //ch前无运算符,直接入栈 push(sig, ch); break; } else { switch (pre(Gettop(sig), ch)) { case'0':push(sig, ch); f = 1; break;//ch位左括号,直接入栈 case '1':pop(sig); f = 1; break;//左右括号相遇,出括号,终止循环 case '2':push(sig, ch); f = 1; break;;//左括号右侧第一个运算符入栈 case '3':ope(num, sig); break;//括号之间有尚未完成的运算符 case '>':ope(num, sig); break;//若gettop(sig)之前有与ch同级运算符则继续比较,不终止比较循环 case '<':push(sig, ch); f = 1; break; case '=':ope(num, sig); break; }//switch }//else }//while }//else }//for for (;;){ //完成=前剩余运算 ope(num, sig); if (Gettop(sig) == '#') { cout << pop(num); break; } } return 0; }
C语言实现大数加法(正整数)
杭电OJ1002 输入:输入的第一行包含一个整数T(1<=T<=20),表示测试用例的数量。接下来是T行,每行由两个正整数A和B组成。注意,整数非常大,这意味着您不应该使用32位整数来处理它们。您可以假设每个整数的长度不超过1000。 输出:对于每个测试用例,您应该输出两行。第一行是“Case”,表示测试用例的编号。第二行是方程“A+B=Sum”,Sum表示A+B的结果。注意方程中有一些空格。在两个测试用例之间输出一个空行。 我拿很多种数进行了测试,在VS上都没问题。但是提交就是WRONG..wrong了一天了。下面是代码,各位前辈帮帮忙,给看看。 ``` #include<stdio.h> #include<string.h> #define MAX(a,b) a>b?a:b int main() { int n = 0,i,j,num=0,lengh,lengh_a1,lengh_a2,flag; char a1[1002], a2[1002];//字符数组存大数 scanf("%d", &n); for (j = 0; j < n; j++) { scanf("%s%s", &a1, &a2); lengh_a1 = strlen(a1);//读输入到两个字符数组中的元素个数,用于转换成整形数组 lengh_a2 = strlen(a2); int c1[1002] = { 0 }, c2[1002] = { 0 }, c3[1003] = { 0 };//定义在循环内部,每次都会初始化一次(在外面好像也没遇到错误) for (i = 0; i < lengh_a1; i++) { c1[i] = a1[lengh_a1 - i - 1]-48;//倒着把字符数组的元素输入到整形数组中 } for (i = 0; i < lengh_a2; i++) { c2[i] = a2[lengh_a2 - i - 1]-48; } lengh = MAX(lengh_a1, lengh_a2);//两数组最长的长度 for (i = 0; i <lengh; i++) { flag = 0;//用来看最后一次循环是否进位,在输出的时候用到了 c3[i] = c1[i] + c2[i]+ num;//如果进位,加num num = 0; if (c3[i] >= 10) { c3[i + 1] = 1;//进位,因为这层循环到c3[lengh-1]为止,这样写使c3[lengh]可以获得到进位。 num = 1; c3[i] -= 10; flag = 1; } } num = 0;//防止上一组数的进位Num影响到下一组数 printf("case%d:\n",j+1);//输出 printf("%s + %s = ", a1, a2); for (i = lengh + flag -1; i >= 0; i--) printf("%d", c3[i]); if (j + 1 != n) printf("\n\n"); else printf("\n"); } return 0; } ```
@C语言数据结构大神:顺序栈求n!。13行的错误怎么修改?为啥说我定义栈错误?
``` # include<stdio.h> # include<stdlib.h> # define Max_Size 50 typedef struct{//typedef是小写开头! //注意此处的top是整形指针 int data[Max_Size]; int top; }SeqStack,*PSeqStack; void Init_SeqStack(PSeqStack S) { S->top=-1;//哪里错了?求解释! } int Full_SeqStack(PSeqStack S) { if(S->top==Max_Size-1) return 1; else return 0; } int Empty_SeqStack(PSeqStack S) { if(S->top==-1) return 1; else return 0; } void Push_SeqStack(PSeqStack S,int n) { if(Full_SeqStack(S)==1) exit(0); else {S->top=++S->top;//及时先加一个空间 S->data[S->top]=n;}//栈也有data域! } void Pop_SeqStack(PSeqStack S,int n)//*n也是指针 { if(Empty_SeqStack(S)==1) printf("UnderFlow\n"); else {n=S->data[S->top]; S->top=--S->top;}//及时退一个空间 } int fact(int n,int f,PSeqStack S)//调用函数为什么不对?求解释! { Init_SeqStack(S); while(n!=0) { Push_SeqStack(S,n); n=n-1; } f=1; while(Empty_SeqStack(S)!=1) { Pop_SeqStack(S,n); f=f*n; } return f; } int main() { int n,f;SeqStack *S; printf("input n:\n"); scanf("%d",&n); printf("%d\n",fact(n,f,S)); getch(); } ``` ![图片说明](https://img-ask.csdn.net/upload/201512/06/1449355008_742479.png)
关于顺序表操作的问题
输入一组整形元素序列,建立顺序表。 要求: (1)实现顺序表的遍历、查找、插入、删除; (2)实现将顺序表中所有奇数排在偶数之前,表的前面为奇数,后面为偶数;
C语言fopen打开文件失败
一个单链表创建学生信息的作业,要求要用文件的输入输出。 打全部路径会出现如图的错误。 打“C:\\\student_info.txt”也不行。 把文件移到project8的文件夹下面打“student_info.txt”也不行。 已确定文件在文件夹内是存在的。F11调试确定就是fopen那块儿出的问题 求问怎么改......崩溃 ![图片说明](https://img-ask.csdn.net/upload/201912/04/1575461393_230930.png) #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int ElemType; typedef int Status; FILE *fp; /*①单链表数据结构定义*/ typedef struct { int num; //学号 //char name[20]; //姓名 //int sex; //性别 //int dorm; //宿舍 //int tel; //电话 }Student; //结点定义 typedef struct LNode { Student data; struct LNode *next; }LNode; //链表定义 typedef struct { LNode* head; //指向头结点的指针 int length; //链表长度 }LinkList; /*②单链表基本操作接口定义*/ //初始化链表:创建头结点,给L字段赋初值 //返回一个空的单链表 Status InitList(LinkList &L); //初始条件:线性表L已经初始化 //采用头插法创建一个单链表,元素类型为整形,输入-9999时结束 Status CreateFromHead(LinkList &L); //初始条件:线性表L已经初始化 //采用尾插法创建一个单链表,元素类型为整形,输入-9999时结束 Status CreateFromTail(LinkList &L); //初始条件:线性表L已经存在 //打印出所有元素 void PrintElem(LinkList L); //初始条件:线性表L已经存在 //查找第i个结点,若找到(1≤i≤n),则由e返回其值 Status GetElem_L(LinkList L, int i, ElemType &e); //初始条件:线性表L已经存在 //在单链线性表L的第i个元素之前插入元素e Status ListInsert_L(LinkList &L, int i, ElemType e); //初始条件:线性表L已经存在 //删除第i个元素,并由e返回其值 Status ListDelete_L(LinkList &L, int i, ElemType &e); int main() { LinkList L; InitList(L); CreateFromHead(L); PrintElem(L); system("pause"); } /*③部分单链表操作的实现函数*/ Status InitList(LinkList &L) //初始化链表 { L.head = (LNode*)malloc(sizeof(LNode)); if (!L.head)exit(OVERFLOW); L.length = 0; L.head->next = NULL; return OK; } //初始条件:线性表L已经初始化 //采用头插法创建一个单链表,元素类型为整形,输入-9999时结束 Status CreateFromHead(LinkList &L) { LNode *s; int flag = 1; int e; L.head = (LNode*)malloc(sizeof(LNode)); L.head->next = NULL; while (flag) { fp = fopen("C:\Users\解诗雨\source\student_info.txt", "r+"); if (fp==NULL) { printf("打不开\n"); return OK; } fscanf(fp,"%d", &e); if (e) { s = (LNode*)malloc(sizeof(LNode)); s->data.num = e; s->next = L.head->next; L.head->next = s; ++L.length; } else flag = 0; fclose(fp); } return OK; } //初始条件:线性表L已经存在 //打印出所有元素 void PrintElem(LinkList L) { LNode* p; p = L.head->next; printf("当前的结点数为:%d\n", L.length); while (p) { printf("%4d ", p->data.num); p = p->next; } printf("\n"); } 文本: ![图片说明](https://img-ask.csdn.net/upload/201912/04/1575462569_672809.png) 因为现在还在创建链表其他还没弄完...
Java语言关键字中英翻译机怎么做?
要求有用户登录等GUI界面,用户数据存在数据库里,并体现面向对象编程思想。主体功能如下: 1、输入中文的关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int; 2、输入英文的单词int,则可以翻译成中文“基本整型”。 3、关键字中英文对照表写入数据文件。 4、系统显示主菜单如下: 1)输入关键字中英文对照表 2)修改关键字中英文对照表 3)显示关键字中英文对照表 4)查询(输入中文,给英文) 5)查询(输入英文,给中文) 6)退出系统。
自定义字符串或者整形其中一种的结构体
最近在学习数据结构,其中有一个经典的问题就是用栈来解决计算机处理算术表达式。 先将中序表达式转后序表达式,然后用数字入栈,遇到运算符出栈解决。问题是能否在 自定义结构体中定义我只用字符串或者int的其中一种,如果可以的话,怎么做。 以上问题我的解决办法是数字入栈的话我用字符串解决,末尾以上用#处理。
qt 运行出来的框图有残缺
# cpp文件 ``` #include "vsbak.h" #include "ui_vsbak.h" #include <QSettings> #include <QFileDialog> #include<QTime> #include<QtDebug> #include <QMessageBox> #define CONFIG_FILE "config.ini" const QString EXCLUDE_FILE = "/home/hu/project2";// 這個文件沒啥用 Vsbak::Vsbak(QWidget *parent) : QWidget(parent) , ui(new Ui::Vsbak) { ui->setupUi(this); QSettings *configIniRead = new QSettings(CONFIG_FILE, QSettings::IniFormat); dir_src = configIniRead->value("/main/bak_src").toString(); dir_dest = configIniRead->value("/main/bak_dest").toString(); // 配置文件里面有目标地址 gpg_key = configIniRead->value("/main/gpg_key").toString(); exclude_from = configIniRead->value("exclude/exclude").toString(); delete configIniRead; // init bash terminal //QProcess可以用于启动外部程序 cmd = new QProcess(this);// 因为与父类直接释放内存 // Sets the working directory to dir. QProcess will start the process in this directory. //The default behavior is to start the process in the working directory of the calling process. cmd->setWorkingDirectory(dir_src); //This signal is emitted when the process has made new data available //through its standard output channel (stdout). It is emitted regardless of the current read channel. connect(cmd, &QProcess::readyReadStandardOutput, this, &Vsbak::on_readyReadStandardOutput); connect(cmd, &QProcess::readyReadStandardError, this, &Vsbak::on_readyReadStandardError); ui->lineEdit->setText(dir_src); ui->lineEdit_2->setText(dir_dest); // 在ui里直接设置这个地址 // init comboBox init_comboBox(); // init radiobutton: choice full ui->radioButton->setChecked(true); ui->checkBox->setChecked(false); ui->checkBox_2->setEnabled(false); ui->checkBox_3->setEnabled(false); } /* * 设置最大可见数目为5,是不是不合理? */ void Vsbak::init_comboBox() // 找压缩好的文件 Combobox 下拉菜单 { /* * 1. 用一个对象进入dir-dest目录下 * 2. 过滤掉包含后追的文件 * 3. 获取被过滤的文件理解 */ // find all backup.tar.gz files //The QDir class provides access to directory structures and their contents. 不仅能看到结构,还可以看到目录 QDir *curDir = new QDir(dir_dest); //The QStringList class provides a list of strings. //可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式) QStringList filter; // 过渡成一个目录 filter << "*.tar.gz" << "*.tar.gz.gpg"; curDir->setNameFilters(filter); // 过滤掉特定的目录下的文件 //Returns a list of QFileInfo objects for all the files and directories in the directory //QDir::entryInfoList()会获取该目录下所有目录和文件的QFileInfo对象的列表 QList<QFileInfo> *tarFileInfo = new QList<QFileInfo>(curDir->entryInfoList(filter)); /* * dir_dest 里面存放的其实都是被压缩的文件,所以用上面的后缀直接进行过滤 * 1. 设置最大的可见数目为5 * 2. 看目录里面有多少,然后放入这个comboBox * 3. 获取被过滤的文件 * 4. 按照顺序放入到combobox中 */ ui->comboBox->clear(); ui->comboBox->setMaxVisibleItems(5); // 最大可见数目 5 //The string will be inserted as the first item in the combobox. ui->comboBox->setInsertPolicy(QComboBox::InsertAtTop); for (int i=0; i< tarFileInfo->count(); i++)// count()只是计算里面的数量,tarFileinfo实际上是一个文件列表 ui->comboBox->addItem(tarFileInfo->at(i).fileName()); } Vsbak::~Vsbak() { delete ui; // 有何作用 if(cmd->state() == QProcess::Running){ cmd->terminate(); cmd->waitForFinished(); } } void Vsbak::on_readyReadStandardOutput() { // QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput()); // ui->label_4->setText(out); } void Vsbak::on_readyReadStandardError() { QMessageBox::information(0, "Error", cmd->readAllStandardError()); } // change dir_src void Vsbak::on_toolButton_clicked() { /* * 1. 或许dir_src的文件目录名称 * 2. 将dir_src的文件目录名写到lineEdit上面 * 3. 更新配置文件里面的信息 * 4. 设置工作目录 * */ QString dirname; dirname = QFileDialog::getExistingDirectory(this, tr("Open Directory"), dir_src, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(dirname.isEmpty()) return; else { dir_src = dirname; ui->lineEdit->setText(dir_src); QSettings *configIniWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); configIniWrite->setValue("/main/bak_src", dir_src); delete configIniWrite; cmd->setWorkingDirectory(dir_src); ui->label_4->setText("change source dir sucess!"); } } // change dir_dest void Vsbak::on_toolButton_2_clicked() { QString dirname; // getExistingDirectory 只获取文件夹 dirname = QFileDialog::getExistingDirectory(this, tr("Open Directory"), dir_dest, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(dirname.isEmpty()) return; else { dir_dest = dirname; ui->lineEdit_2->setText(dir_dest); QSettings *configIniWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); configIniWrite->setValue("/main/bak_dest", dir_dest); delete configIniWrite; ui->label_4->setText("change dest dir sucess!"); } } int Vsbak::get_min(QDateTime curTime) { QSettings *configIniReadWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); int lastTime = configIniReadWrite->value("/main/last_time").toInt();// 将值转化成整形 configIniReadWrite->setValue("/main/last_time", curTime.toTime_t()); delete configIniReadWrite; int minDiff = (curTime.toTime_t()-lastTime) / 60 + 1; return minDiff; } void Vsbak::on_checkBox_clicked() { if(ui->checkBox->isChecked()){ ui->checkBox_2->setEnabled(true); ui->checkBox_3->setEnabled(true); } else{ ui->checkBox_2->setEnabled(false); ui->checkBox_3->setEnabled(false); } } /* * 3 个 String类型 * targz:time + full.tar.gz * cmd_find:find ./ -type f | grep -v \'Permission denied\' > TEPLIST * cmd_tar *目录列表 * * * */ void Vsbak::on_pushButton_clicked(){ // The QDateTime class provides date and time functions. // 调用QDatetime里面的一个函数,赋给另一个QDatetime的类型 QDateTime current_date_time = QDateTime::currentDateTime(); // 初始化三个String类型 QString targz, cmd_find, cmd_tar; //RadioButton presents an option button that can be toggled on (checked) or off (unchecked). //Radio buttons are typically used to select one option from a set of options. //Use isChecked() to see if a particular button is selected. if(ui->radioButton->isChecked()){ // 如果radiobutton 被选择了,那么就进行备份,如果没有就只输出时间 // Linux find命令用来在指定目录下查找文件。 // 将目前目录其其下子目录中所有一般文件列出 # find . -type f // Linux grep 命令用于查找文件里符合条件的字符串。 // -v 或 --revert-match : 显示不包含匹配文本的所有行。 // 反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。 // ./ 表示当前目录的全路径 当前目录的全路径 没有这个 \'Permission denied\'???? //linux的命令,查找文件然后设置权限 // 这个是不管修改不修改,全部列出来 cmd_find = "find ./ -type f | grep -v \'Permission denied\' > TEPLIST";// 这个功能是什么呢 targz = current_date_time.toString("yyyy-MM-dd_hh.mm.ss") + ".full.tar.gz"; }else{ // 会替换掉前面的百分之1,替换规则是从小到大 //get_min是一个函数,看它具体怎么实现的,应该是循环遍历了current_date_time,找到最小???? int minDiff = get_min(current_date_time); // 获得是最小的查值 // 完成命令,把距离最新一次全部修改的文件单独列出来 cmd_find = QString("find ./ -mmin -%1 -type f | grep -v \'Permission denied\' > TEPLIST").arg(minDiff); targz = current_date_time.toString("yyyy-MM-dd_hh.mm.ss") + ".inc.tar.gz"; } // exclude from 是一个配置目录 // tar命令 //-v或--verbose 显示指令执行过程 // --totals 备份文件建立后,列出文件大小 //cmd_tar这是压缩tar的linux命令,将exclude里面的文件全部列出来,进行压缩 cmd_tar = QString("tar --verbose --totals --exclude-vcs %1 --files-from=TEPLIST -czf %2/%3").arg(exclude_from).arg(dir_dest).arg(targz);//?5 // 向调试器输出命令的执行结果,方便调试排错 qDebug()<< cmd_find << endl << cmd_tar<< endl; // 下面整个过程就是执行这个命令 QStringList cmd_pipe;// 初始化了一个String目录 cmd_pipe << "-c" << cmd_find; // 说明这个cmd-pipe已经变成了一个linux的cmd命令了 cmd->start("/bin/bash",cmd_pipe); // 开始一个程序 cmd->waitForFinished(); cmd->close(); cmd->start(cmd_tar);// cmd_tar 也变成了一个程序 cmd->waitForFinished(); cmd->close(); cmd->start("rm -f TEPLIST");// 强制删除teplist, teplist 就是临时文件 cmd->waitForFinished(); /*********** Encrypting*************/ // gpg-k 增加公共钥匙 if(ui->checkBox->isChecked()){ QString cmd_enc; QString cmd_isKey = "gpg -k " + gpg_key; cmd->start(cmd_isKey); cmd->waitForFinished(); QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput());// 这个输出就不是很理解为什么 if(out.isEmpty()) // -o, --output FILE write output to FILE // c 说是使用对称加密,看起来很奇怪 cmd_enc = QString("gpg -c -o %1/%2.gpg %1/%2").arg(dir_dest).arg(targz); else // e 是加密数据 , 针对 用户 id 进行加密 cmd_enc = QString("gpg -e -r %1 -o %2/%3.gpg %2/%3").arg(gpg_key).arg(dir_dest).arg(targz); cmd->start(cmd_enc); cmd->waitForFinished(); if(false == ui->checkBox_2->isChecked()){ QString cmd_rm = QString("rm %1/%2.gpg").arg(dir_dest).arg(targz); cmd->start(cmd_rm); cmd->waitForFinished(); } if(false == ui->checkBox_3->isChecked()){ QString cmd_rm = QString("rm %1/%2").arg(dir_dest).arg(targz); cmd->start(cmd_rm); cmd->waitForFinished(); } /* * /home/hu/桌面/vsbak/backup/2019-11-13_19.38.57.full.tar.gz * */ // ui->comboBox->addItem(targz); init_comboBox(); } } void Vsbak::on_pushButton_2_clicked(){ QString targz = ui->comboBox->currentText(); if (targz.endsWith(".tar.gz.gpg")){ targz = targz.remove(".gpg"); QString cmd_enc; QString cmd_isKey = "gpg -k " + gpg_key; cmd->start(cmd_isKey); cmd->waitForFinished(); QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput()); if(out.isEmpty()) cmd_enc = QString("gpg -d -o %1/%2 %1/%2.gpg").arg(dir_dest).arg(targz); else cmd_enc = QString("gpg -d -r %1 -o %2/%3 %2/%3.gpg").arg(gpg_key).arg(dir_dest).arg(targz); cmd->start(cmd_enc); cmd->waitForFinished(); } QString cmd_str = QString("tar -xvf %1/%2").arg(dir_dest).arg(targz); qDebug() << cmd_str; cmd->start(cmd_str); cmd->waitForFinished(); } ``` 上面是cpp文件 下面是 # h文件 #ifndef VSBAK_H #define VSBAK_H #include <QWidget> #include<QProcess> QT_BEGIN_NAMESPACE namespace Ui { class Vsbak; } QT_END_NAMESPACE class Vsbak : public QWidget { Q_OBJECT public: Vsbak(QWidget *parent = nullptr); ~Vsbak(); private slots: void on_readyReadStandardOutput(); void on_readyReadStandardError(); void on_toolButton_clicked(); void on_toolButton_2_clicked(); void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_checkBox_clicked(); private: Ui::Vsbak *ui; QProcess *cmd; QString dir_dest; QString dir_src; QString gpg_key; QString exclude_from; void init_comboBox(); int get_min(QDateTime curTime);// 获得整形 }; #endif // VSBAK_H 我运行之后出来的qt界面,原本是可以下拉选择的,但是都没有反映,这是为啥
我想求一个能够满足多个条件(除2余1,除3余2等)的数,但我这样写为什么不对?
题目描述:"有一个长阶梯, 若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。" 我想求一个能够满足多个条件(除2余1,除3余2等)的数,但我这样写为什么不对?,我应该从哪个角度入手? ``` ```number = 1 #设定一个初始值 i = int(number) #转为整形 while(( i % 2 == 1)and( i % 3 ==2)and( i % 5 == 4)and( i % 6 == 5)and( i % 7 == 0)):#求满足以上五个条件的值(能被7整除,除六余五等等) print('i')#满足后 打印i值 i=i+1 break ```
C语言如何提取命令行输入的字符串中的整数,并传递到自定义函数?
比如 键盘输入: gcd(n,m) ⭐**在函数中提取m,n的值并计算结果? (因为有多个整形数值,并且有个','所以这种下面写法无法实现取值。。。。** ``` char str[80], digit[80]; char* ps; int i = 0; ps = str; while (*ps != '\0') { if (*ps >= '0' && *ps <= '9' || ps==',') { digit[i] = *ps; //找到数字,存放到数组digit里 i++; } ps++; //ps指针指向字符串下一个字符 } digit[i] = '\0'; //为了能用%s输出,digit在末尾要加一个结束字符'\0' printf("%s\n", digit); ```) `` ``` **如果要传递m,n,o,q多个整形数据呢? ** 以下是我代码的摘要 ``` int main(argc,argv[]) char* stdinin = NULL; stdinin = ufgets(stdin); //ufgets是自定义函数,类似于fgets //然后是一些判断是否输入为空等 if (strncmp(stdinin, "gcd", 3) == 0) gcd(m, n); //----函数----- void gcd(n, m) { 这里并不能直接使用stdinin } ```
C语言 求大神拯救
根据下列要求,完成程序 1从键盘输入一个三位数整数,并输出该整数,同时输出该三位整数的每一位数字 2写一个函数,判断该三位整数是否为水仙花数 3以该整数的三位数字作为一元二次方程的系数,求该一元二次方程的根 4定义该整形数组,包含十个数据,把该整数的三位数字。依次放入该数组的最前三位,并把数组内容补充完整。并对该数组进行排序,分别输出该数组排序前和排序后的顺序 5对4中做好的数组进行排序(算法不和4相同)输出。(限用指针实现)
怎么编写一个通过输入n的值来确定的含n个整形元素的数组?
怎么编写一个通过输入n的值来确定的含n个整形元素的数组?通过手动输入n的值,来确定数组的大小
JSP性别编辑JSP性别编辑JSP性别编辑
代码如下,emp_sex是整形的,怎样编辑JSP使sex=1是显示男,sex=0是显示女 ``` <table border="" cellspacing="" cellpadding="" align="center"> <tr> <th>雇员编号</th> <th>雇员职位</th> <th>雇员姓名</th> <th>雇员性别</th> <th>雇员年龄</th> <th>所属部门</th> <th>雇员工龄</th> </tr> <c:forEach items="${requestScope.data.employee}" var="post"> <tr> <th>${post.emp_id }</th> <th>${post.post.post_name}</th> <th>${post.emp_name }</th> <th>${post.emp_sex }</th> <th>${post.emp_age }</th> <th>${post.emp_depart }</th> <th>${post.emp_year }</th> </tr> </c:forEach> </table> ```
Qt 的一段代码尝试中,希望时间能出现在label上,但是却是一直都不显示
``` #include "widget.h" #include "ui_widget.h" #include<QTime> #include<iostream> #include<QString> #include<QSettings> #include<QDebug> using namespace std; #define CONFIG_FILE "config.ini" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; time(); combination(); } void Widget::time(){ // The QDateTime class provides date and time functions. // 调用QDatetime里面的一个函数,赋给另一个QDatetime的类型 QDateTime current_date_time = QDateTime::currentDateTime(); // 初始化三个String类型 cout << "当前的时间为:" <<current_date_time.toString("yyyy-MM-dd_hh.mm.ss").toLocal8Bit().data(); cout<< "最近的时间为:"<< get_min(current_date_time); ui->lineEdit->setText(current_date_time.toString("yyyy-MM-dd_hh.mm.ss").toLocal8Bit().data()); } int Widget::get_min(QDateTime curTime) { QSettings *configIniReadWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); int lastTime = configIniReadWrite->value("/main/last_time").toInt();// 将值转化成整形 //cout<< "上次的时间为:"<< lastTime; configIniReadWrite->setValue("/main/last_time", curTime.toTime_t()); delete configIniReadWrite; int minDiff = (curTime.toTime_t()-lastTime) / 60 + 1;//??? return minDiff; } void Widget::combination(){ QString a = "hufengxiang"; QStringList b; b << "haha" << a;// 这个是QString下特殊的操作 qDebug()<<"合并之后:" <<b; } ```
这个if嵌套合理不,为什么不能删除列表中的元素,格式不对吗?小白请大神们路过的帮帮忙,谢谢!
#coding=utf-8 card = ['huihui','xiaomei','xiaowei','ashun'] while True: InPut = raw_input("添加用户(1) 删除用户(2) 更改用户(3) 查找用户(4) 退出请按(5):") #整形 inPut = int(InPut) if inPut == 1: add = raw_input('请输入要添加的用户名:') #添加成功 card.append(add) print('你已添加成功') for d in card: print(d) image() elif inPut == 2: for d in card: print(d) i =raw_input('请输入要删除用户的序号:') nameLen = len(card) #没有删除直接跳到下面的 'else'语句中路了 if i <= nameLen-1: del card[int(i)] else: print("-"*20) #打印分割线 #执行完删除后 打印列表 for d in card: print(d) #一下条件没问题
C语言:运用指针,输出3*3矩阵的转置阵。大佬们帮忙看看哪里出问题了
``` #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { void fun(int *x); int a[3][3],i; int *p=&a[0][0]; printf("请输入一个整形矩阵:"); for(i=0;i<3;i++) { scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]); } fun(p); printf("输出转置矩阵:\n"); for(i=0;i<3;i++) { printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]); } return 0; } void fun(int *x) { int m,n,s; for(m=0;m<3;m++) { for(n=0;n<3;n++) { s=*(x+3*m+n); *(x+3*m+n)=*(x+3*n+m); *(x+3*n+m)=s; } } } ``` 输入:1 2 3 4 5 6 7 8 9 输出:1 2 3 4 5 6 7 8 9 结果依然是原矩阵,是哪一步出问题了呢?
字符串IP转换成整形表达式的字节序问题
当我们把一个字符串,例如"10.1.1.1"转换成整形。有以下几个问题 问题1:转换是不是有一个约定俗成的方式? 问题2:转换成整形后,这个整形是个什么字节序?
求问:OpenGL 4.3 通过纹理传递整形数据失败?
GLSL4.3 通过Texture向Shader传递整数数据,但不成功,Shader不能正确读取整数数据, 如果传递的是浮点型的纹理数据,则可以正确读取数据的: 例如:C代码中:glTexStorage2D( GL_TEXTURE_2D, 1, GL_RGBA32F, tw, th ); Shader中:layout (binding = 0) uniform sampler2D tex_float; vec4 data = texelFetch( tex_object, ivec2(0, 0), 0); 可以正确得到 {-100, -100, 0, 1} -------还请大侠出手相助呀 C code: GLuint texFlaot; glGenTextures(1, &texFlaot); glActiveTexture( GL_TEXTURE0 ); glBindTexture(GL_TEXTURE_2D, texFlaot); //const int arrLen = 3*3*4; GLint myFloatBuf[36] = { -100, -100, 0, 1, 0, -100, 0, 1, 100, -100, 0, 1 , -100, 0, 0, 1, 0, 0, 0, 1, 100, 0, 0, 1 , -100, 100, 0, 1, 0, 100, 0, 1, 100, 100, 0, 1 , }; int tw = 3, th = 3; glTexStorage2D( GL_TEXTURE_2D, 1, GL_RGBA32I, tw, th ); glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, tw, th, GL_RGBA, GL_INT, myFloatBuf); Shader 代码: //layout (binding = 0) uniform sampler2D tex_float; layout (binding = 0) uniform isampler2D tex_object; void main( void) { // 将输入的Texture数据作为坐标打印 // 将纹理的st(0,0)的值(也就是 myFloatBuf[0][0]={-100, -100, 0, 1,} )最为坐标, // 在该坐标上显示一个点显示在画面上, ivec4 data = texelFetch( tex_object, ivec2(0, 0), 0); vec4 fpos = vec4( data.r, data.g, data.b, data.a ); gl_Position = proj_matrix * mv_matrix * fpos; // 颜色 vs_out.clr = vec4(1.0, 0.0, 0.0, 1.0); }
用java编程,查找数组中元素所在位置
用java编程某一程序,要求:对于一个长度为20的一维整形数组,编程实现查找值为60的元素在数组中的位置,若不存在,则提示“未找到60”。
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问