Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 一阶抛物型方程经典问题，求问如何用c语言或c++解决

回复:
user: user-1
content: #include<iostream> using namespace std;  int main() { 	double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, xx, PI; 	PI = 3.1415926; x0 = 0; x1 = sin(0.1 * PI); 	x2 = sin(0.2 * PI); x3 = sin(0.3 * PI); x4 = sin(0.4 * PI); 	x5 = sin(0.5 * PI); x6 = sin(0.6 * PI); x7 = sin(0.7 * PI); 	x8 = sin(0.8 * PI); x9 = sin(0.9 * PI); xx = 0; 	double y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, yy; 	y0 = 0; yy = 0; 	int i; 	for (i = 1; i <= 5; i++) { 		y1 = 0.8 * x0 + 0.1 * (x1 + x2); 		y2 = 0.8 * x1 + 0.1 * (x2 + x3); 		y3 = 0.8 * x2 + 0.1 * (x3 + x4); 		y4 = 0.8 * x3 + 0.1 * (x4 + x5); 		y5 = 0.8 * x4 + 0.1 * (x5 + x6); 		y6 = 0.8 * x5 + 0.1 * (x6 + x7); 		y7 = 0.8 * x6 + 0.1 * (x7 + x8); 		y8 = 0.8 * x7 + 0.1 * (x8 + x9); 		y9 = 0.8 * x8 + 0.1 * (x9 + xx); 		x1 = y1; x2 = y2; x3 = y3; x4 = y4; 		x5 = y5; x6 = y6; x7 = y7; x8 = y8; 		x9 = y9; 	} 	double a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa; 	a0 = 0; aa = 0; a1 = pow(2.718281828459, -PI * PI / 40) * 0.1; 	a2 = pow(2.718281828459, -PI * PI / 40) * 0.2; a3 = pow(2.718281828459, -PI * PI / 40) * 0.3; 	a4 = pow(2.718281828459, -PI * PI / 40) * 0.1; a5 = pow(2.718281828459, -PI * PI / 40) * 0.1; 	a6 = pow(2.718281828459, -PI * PI / 40) * 0.1; a7 = pow(2.718281828459, -PI * PI / 40) * 0.1; 	a8 = pow(2.718281828459, -PI * PI / 40) * 0.1; a9 = pow(2.718281828459, -PI * PI / 40) * 0.1; 	cout << "差分方法结果 实际结果" << endl; 	cout << x0 << "             "<< a0 << endl; cout << x1 << "  " << a1 << endl; cout << x2 << "  " << a2 << endl; 	cout << x3 << "  " << a3 << endl; cout << x4 << "  " << a4 << endl; cout << x5 << "  " << a5 << endl; 	cout << x6 << "  " << a6 << endl; cout << x7 << "  " << a7 << endl; cout << x8 << "  " << a8 << endl; 	cout << x9 << "  " << a9 << endl; cout << xx << "             " << aa << endl; 	return 0; } 龙哥，把代码改一改，只要不相似就好了。
user-0 提问: 新手刚学，请大佬们赐教

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 会了，多谢各位🙏

user: user-0
content: 今年大二，刚开始学编程，有时候看着头疼，

user: user-0
content: 能帮我改改吗，[face]monkey2:025.png[/face]，就想输入任意温度求出电阻值

user: user-2
content: 错了错了，你只是要输入t。应该改为scanf("%f", &t);

user: user-3
content: 供参考，楼主漏说话了：#include<stdio.h> int main() {     float R,t;     scanf("%f",&t);     R = 10+30*t+t*t;     printf("R=%f\nt=%f\n",R,t);          return 0; }

user: user-2
content: 有点迷惑的代码？      float R, t;     scanf("%f %f", &R, &t);     R = 10 + 30 * t + t * t;     printf("R = %f\nt = %f\n",R, t);  提供参考 第一眼很迷惑，再看一眼，你应该是把scanf和printf函数用错了
user-0 提问: 求指点！VC++的几道题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 不明白，看不懂是个什么鬼？看不懂什么？如果代码看不懂是基础问题～  求平均数：代码里看到s变量，很明显没有定义，double/float s;首先需要定义，然后循环次数i <= 10，因为i从1开始；  s /= 10;求平均值的；  7.头文件,题目6已经给了，如果这个也不懂，其实下一个问题问一下自己，懂什么？学这个编程做啥？  第二个空，通过输出的是n，很明显要把结果赋值给n；在比较n和c,很明显将小的赋值给n；即n = c; 8. break；退出循环；m是最小，n是最大；  努努力，或许结果会不一样～
user-0 提问: 关于位移运算，下面这段话是什么意思，感谢指教

回复:
user: user-1
content: 找理由的话，一旦移位超过w位，按照正常移法就应该全是0了，所以不如直接赋值0更干脆。 所以设计者们大概认为用户不会做这种无聊的事，于是他们决定让这些操作“有聊”一些？

user: user-0
content: 引用 2 楼 forever74 的回复:log2(32)的值是5 这句话的意思是，对于移位运算符的右操作数来说，起作用的是低端的5个二进制位。 也就是把32啊，36啊，40啊这些东西都先切掉第6位以及左边的内容再用，也就是先&0x1f 也就是等价于先%32  图片里也说了，C语言规范不规定这个，所以对C程序来说，不能依赖这个“规律”。  感谢。还有一个问题请教一下。 c语言的规范，既然没说对“大数”还是“小数”起作用，那应该是不分大数和小数啊。  比如，某游乐园说自己的门票是 10 块钱，“并没有分别说小孩、成人、老人收多少钱”。 那这个价格应该是所有群体都生效啊。  是不是在实现编译器时，大的位移量有什么难言之隐？

user: user-1
content: log2(32)的值是5 这句话的意思是，对于移位运算符的右操作数来说，起作用的是低端的5个二进制位。 也就是把32啊，36啊，40啊这些东西都先切掉第6位以及左边的内容再用，也就是先&0x1f 也就是等价于先%32  图片里也说了，C语言规范不规定这个，所以对C程序来说，不能依赖这个“规律”。

user: user-2
content: 移动的位数，是这个数对求余  例如<<32 则是移动0 因为32%32=0； >>36 则36%32 等于=4； 40下同
user-0 提问: 求求帮忙看一下C语言的编程题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 2 楼 朕守山河的回复:忘记加注释，就是将小时转化分钟，然后相减得相差分钟，再格式化转化为小时 了解啦，蟹蟹😀

user: user-0
content: 引用 3 楼 赵4老师的回复:#include <stdio.h> int main() {     char ln[80];     int H1,M1,H2,M2;     int d;      while (1) {         rewind(stdin);         fgets(ln,80,stdin);         if (4==sscanf(ln,"%2d:%2d %2d:%2d",&H1,&M1,&H2,&M2)) {             if (0<=H1 && H1<=23              && 0<=M1 && M1<=59              && 0<=H2 && H2<=23              && 0<=M2 && M2<=59) break;         }         printf("H1:M1 H2:M2 format error. Input again\n");     }     d=H2*60+M2-(H1*60+M1);     printf("%d:%02d\n",d/60,d%60);     return 0; } //输入10:30 11:45 //输出1:15   对的对的，蟹蟹蟹蟹😁

user: user-2
content: printf("%d:%02d\n",d/60,(d%60>0)?(d%60):-(d%60));

user: user-2
content: #include <stdio.h> int main() {     char ln[80];     int H1,M1,H2,M2;     int d;      while (1) {         rewind(stdin);         fgets(ln,80,stdin);         if (4==sscanf(ln,"%2d:%2d %2d:%2d",&H1,&M1,&H2,&M2)) {             if (0<=H1 && H1<=23              && 0<=M1 && M1<=59              && 0<=H2 && H2<=23              && 0<=M2 && M2<=59) break;         }         printf("H1:M1 H2:M2 format error. Input again\n");     }     d=H2*60+M2-(H1*60+M1);     printf("%d:%02d\n",d/60,d%60);     return 0; } //输入10:30 11:45 //输出1:15

user: user-3
content: 忘记加注释，就是将小时转化分钟，然后相减得相差分钟，再格式化转化为小时

user: user-3
content: 你要的纯C #include <stdio.h>  int analysisHourAndMin(char* pTime); void main() { 	char preTime[] = "10:30"; 	char nexTime[] = "11:45";  	int nPreTime = analysisHourAndMin(preTime); 	int nNextTime = analysisHourAndMin(nexTime);  	int nCurTime = nNextTime - nPreTime; 	printf("%d: %d", nCurTime / 60, nCurTime % 60); 	 }  int analysisHourAndMin(char* pTime) { 	int nHour = (pTime[0] - '0') * 10 + (pTime[1] - '0'); 	int nMin = (pTime[3] - '0') * 10 + (pTime[4] - '0'); 	return nHour * 60 + nMin; }
user-0 提问: 【C语言求助】一位数计算器(个人)中的一部分

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2

user: user-0
content: 引用 6 楼 qzjhjxj的回复:#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> //无用 void main() {       // {        printf("hw 附加题\n");        int i,j=0,n[1000];         char a[1000],tmp[2];        gets(a);     //输入字符串如：1-2        for(int k=0;;k++)            {                if(a[k]<='9'&&a[k]>='0') //如果字符为数字                {                    tmp[0]=a[k];tmp[1]= '\0';                    printf("tmp=%s\n",tmp);                    sscanf(tmp,"%d",&n[j]);  //将字符转化为整型                     printf("n[%d]=%d ",j,n[j]);                }                else if(a[k]=='\n')  //遇到回车结束                {                    break;                }            }         } 说实话，没太看懂。。。tmp定义是做什么的啊？我原来的代码里tmp好像没啥用。。。  还有就是，你的蓝色背景的代码是怎么贴上去的啊？  哦，最最重要的还是我发的另一个帖子。。快被整疯了，麻烦看一下

user: user-0
content: 引用 6 楼 qzjhjxj的回复:#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> //无用 void main() {       // {        printf("hw 附加题\n");        int i,j=0,n[1000];         char a[1000],tmp[2];        gets(a);     //输入字符串如：1-2        for(int k=0;;k++)            {                if(a[k]<='9'&&a[k]>='0') //如果字符为数字                {                    tmp[0]=a[k];tmp[1]= '\0';                    printf("tmp=%s\n",tmp);                    sscanf(tmp,"%d",&n[j]);  //将字符转化为整型                     printf("n[%d]=%d ",j,n[j]);                }                else if(a[k]=='\n')  //遇到回车结束                {                    break;                }            }         } 谢谢！ 我还有一个帖子，麻烦看看吧X﹏X

user: user-2
content: #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> //无用 void main() {       // {        printf("hw 附加题\n");        int i,j=0,n[1000];         char a[1000],tmp[2];        gets(a);     //输入字符串如：1-2        for(int k=0;;k++)            {                if(a[k]<='9'&&a[k]>='0') //如果字符为数字                {                    tmp[0]=a[k];tmp[1]= '\0';                    printf("tmp=%s\n",tmp);                    sscanf(tmp,"%d",&n[j]);  //将字符转化为整型                     printf("n[%d]=%d ",j,n[j]);                }                else if(a[k]=='\n')  //遇到回车结束                {                    break;                }            }         }

user: user-0
content: 引用 3 楼 qzjhjxj的回复:这句改为： sscanf(&a[k],"%d",&n[j]);  //将字符转化为整型 发了发了，帖子

user: user-0
content: 引用 3 楼 qzjhjxj的回复:这句改为： sscanf(&a[k],"%d",&n[j]);  //将字符转化为整型 转化的问题，我用另一种方法解决了，结果又碰到另一个bug。超级奇怪，麻烦看一下

user: user-2
content: 这句改为： sscanf(&a[k],"%d",&n[j]);  //将字符转化为整型

user: user-0
content: 引用 1 楼 user-3的回复:你的sscanf读的是a啊，也就是从头读起。 那我怎么样才能把a[i]一一对应的转化为n[i]？

user: user-3
content: 你的sscanf读的是a啊，也就是从头读起。
user-0 提问: 请问一下 为什么会不断输入

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 1.scanf()读数据碰到空白符就停止输入。 2.scanf()忽略缓冲区中先导的空白符。 3.当参数为%c的时候，返回缓冲区中第一个字符，包括空白符。 也就是说，在这行代码"scanf("%d\n");中要让缓冲区读两次，才能停止scanf();，第一次缓冲区读入%d后碰到回车，程序停止等待读入\n，由于忽略先导的空白符，程序一直在等待，直到遇到一个非空白符才继续读入。

user: user-3
content: 去掉scanf中的\n，否则无法结束输入～

user: user-4
content: 输入成绩的个数，scanf (“%d \n”,&n);里面多了\n。
user-0 提问: C语言，程序错误怎么改

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 编译出错，还是运行出错？总得有一个错误内容吧～

user: user-3
content: 提问要把出错信息带着一起贴，别让人猜。

user: user-3
content: 要是用个新点的IDE，通过变色你早就发现了。

user: user-3
content: 明显缺半边双引号

user: user-4
content: 仿佛能猜到是什么问题，你把return 1.0;和resule *= n--;这两句话分别用个大括号括起来试试呢

user: user-0
content: 这个我换了个
user-0 提问: 一个菱形画不出

回复:
user: user-1
content: 楼主代码，只输出菱形上半部，见注释：#include "stdio.h" int main() {   int i;   int j;   int k;   for(i=1;i<=4;i++)    {     for(j=3;j>=i;j--)    //{ 这里多了‘{’       {          printf(" ");       }     for(k=1;k<=2*i-1;k++) //for(k=1;k<2*i-1;k++) 中间 k<2*i-1少了‘=’号       {          printf("*");       }     printf("\n");        //} 这里多了‘}’    }      for(i=3;i>=1;i--)    //增加下半部    {     for(j=3;j>=i;j--)       {          printf(" ");       }     for(k=1;k<=2*i-1;k++)       {          printf("*");       }     printf("\n");    }    getchar();    return 0;  }

user: user-2
content: 引用 2 楼 sweetswing 的回复:[quote=引用 1 楼 赵4老师 的回复:]学会单步调试 这个软件不带调试功能[/quote] 不带调试你可以在想调试的地方插入比如 printf("i,j,k:%d,%d,%d\n",i,j,k);getchar(); 调试。 按一次回车，执行一步。

user: user-0
content: 引用 1 楼 赵4老师 的回复:学会单步调试 这个软件不带调试功能

user: user-2
content: 学会单步调试
user-0 提问: 结构体问题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 3 楼 自信男孩的回复:没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。 谢啦兄弟，差不多懂了

user: user-0
content: 引用 2 楼 focuslight的回复:没有你这种写法的，像是结构体初始化又不规范。带函数的结构体，实际上就是 class. 只不过它的函数 都属 public. 你可以在主函数内建一个 它的 对象。用 对象的成员成员函数调用。struct stu a;      a.fun(1); 谢啦兄弟，差不多懂了

user: user-0
content: 引用 1 楼 user-5的回复:供参考：#include <stdio.h>  struct stu{        int fun (int a)        {            printf("i am fun!\n");        } };  int main() {      struct stu a;      a.fun(1);       } 谢啦兄弟，差不多懂了

user: user-2
content: 引用 6 楼 NorZ 的回复:[quote=引用 5 楼 自信男孩 的回复:][quote=引用 4 楼 NorZ 的回复:][quote=引用 3 楼 自信男孩 的回复:]没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。  C++ 也不支持...[/quote]  #include <stdio.h>   struct stu{        int fun (int a)        {            printf("i am fun!\n");        } };   int main() {      struct stu a;      a.fun(1);        }  这个是编译过去的，并且还正常运行。你说的不支持，是不支持什么内容？不支持这么定义结构体？[/quote]   楼主的代码[/quote] 楼主代码是语法问题，楼主的问题是结构体。这是两个问题好不好。我回答的是结构体问题～

user: user-3
content: 引用 5 楼 自信男孩 的回复:[quote=引用 4 楼 NorZ 的回复:][quote=引用 3 楼 自信男孩 的回复:]没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。  C++ 也不支持...[/quote]  #include <stdio.h>   struct stu{        int fun (int a)        {            printf("i am fun!\n");        } };   int main() {      struct stu a;      a.fun(1);        }  这个是编译过去的，并且还正常运行。你说的不支持，是不支持什么内容？不支持这么定义结构体？[/quote]   楼主的代码

user: user-2
content: 引用 4 楼 NorZ 的回复:[quote=引用 3 楼 自信男孩 的回复:]没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。  C++ 也不支持...[/quote]  #include <stdio.h>   struct stu{        int fun (int a)        {            printf("i am fun!\n");        } };   int main() {      struct stu a;      a.fun(1);        }  这个是编译过去的，并且还正常运行。你说的不支持，是不支持什么内容？不支持这么定义结构体？

user: user-3
content: 引用 3 楼 自信男孩 的回复:没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。  C++ 也不支持...

user: user-2
content: 没见过这么写的，C语法不支持，C++支持；况且C语言语法结构体成员也得是;分号结束的。

user: user-4
content: 没有你这种写法的，像是结构体初始化又不规范。带函数的结构体，实际上就是 class. 只不过它的函数 都属 public. 你可以在主函数内建一个 它的 对象。用 对象的成员成员函数调用。struct stu a;      a.fun(1);

user: user-5
content: 供参考：#include <stdio.h>  struct stu{        int fun (int a)        {            printf("i am fun!\n");        } };  int main() {      struct stu a;      a.fun(1);       }
user-0 提问: 上位机串口通讯的问题，怎么区分我收到的数据？求助

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 你可以按500ms周期来发送 周期1 查询第一个，收到的数据无论是什么都放在第一个文本框 周期2 查询第二个，放到第二个文本框  这样从全局上看，还是一秒一个周期 需要客户端配合在500ms内可以回复

user: user-3
content: 根据单片机返回的数据格式，进行解析

user: user-4
content: 每秒发送一次 命令查电流 和 命令查电压 ？如果是这样你为了更准确需要定义返回格式来区别，   还是间隔一秒发一次命令（两个命令是轮询模式）  这个模式你可以依据你命令来判断回复，是可以的

user: user-5
content: 要相信对面 你先查的是啥，对面先发的就是啥。

user: user-0
content: 引用 1 楼 focuslight 的回复:你需要和单片机程序定个通讯协议吧，在数据前加上标识 单片机的程序不用改，那个已经有上位机软件了，我只是要重做一个。

user: user-6
content: 你需要和单片机程序定个通讯协议吧，在数据前加上标识
user-0 提问: c++新人求教为什么程序报错 如何修改程序

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 没有提供Circle的有参构造函数

user: user-3
content: 供参考：#include <iostream> using namespace std; class Circle {     private:            double r;     public:            void Show()             {                cout<<"面积="<<3.14*r*r<<endl;             }            Circle()//computer()//类构造函数名和类名是一样的             {                r=10;             }            Circle(double a)//computer(double a)             {               r=a;             } };  int main()   {      double r1;      cin>>r1;    Circle a,b(r1);      a.Show();      b.Show();     return 0; }
user-0 提问: 关于栈和队列

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: S和Q都是指向NULL的指针，NULL是不可以读写的，所以S->top这样的操作是对S的写操作，会出现多错误；  建议将S和Q先指向一个可以正常读写的位置，这个位置可以是栈上的，也可以是堆上的(malloc/free, new/delete）。

user: user-3
content: 你描述了班长的特征和权限，但你还没有任命任何一个学生做班长。 这时候你就想让班长履行职责了，于是就出错了。

user: user-4
content: S是类型定义，没有实例化，内存中这样其实还没有实际给分配出空间，不可以给赋值 temp_s=new SeqStack; temp_s->top=0;
user-0 提问: 【C语言】请帮忙看一下这段代码，谢谢

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 2 楼 user-2 的回复：可改作： return p+n-1;谢谢您的指导

user: user-2
content: 可改作： return p+n-1;

user: user-2
content: 第一，你的solve函数return p;而在执行中p没有变过，*solve(nnn)都是p[0]，所以递归那部分不能成立。 第二，这个数列只有前四十多项能用32位整数表示，就算递归弄对了，后面大部分也都是溢出以后没有用的数值了。
user-0 提问: 【C语言】请帮忙看一下代码！谢谢

回复:
user: user-0
content: 一年了。再看当年那么稚嫩的代码，还真是感叹

user: user-0
content: 引用 1 楼 user-1 的回复：这里的scanf()改为：scanf("%d",&a[i][j]);谢谢

user: user-1
content: 这里的scanf()改为：scanf("%d",&a[i][j]);
user-0 提问: 数组

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: #include <stdio.h> #include <string.h> int main() {     char buf[]="123+321";     int num[6];     sscanf(buf,"%1d%1d%1d+%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5]);     for (int i=0;i<6;i++) printf("%d ",num[i]);     return 0; }

user: user-3
content: 就在串口UART中断处理函数，解析一下字符串，放入数组即可。
user-0 提问: 小白提问：C++提示interrupted by signal 11: sigsegv

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 哇原来如此！谢谢你！

user: user-2
content: 越界了 if (range [arr[i]] != -1) { //这句话，因为i最大为6，而arr最多有效元素是6个，所以arr[6]是无效元素，因此越界
user-0 提问: c语言

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 有人吗有人吗

user: user-2
content: 这个文件的格式，存放的是当前时间，打开文件用fopen("time1.txt","r");fscanf()读入文件的信息，然后输入所需时间scanf("%d",&time); 然后该加就加，不是就算出到达时间了。
user-0 提问: 这段代码的含义

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 引用 3 楼 自信男孩 的回复:[quote=引用 2 楼 Star-Sum 的回复:][quote=引用 1 楼 forever74的回复:]你调用的函数peekb就是做这个用的，读它的说明即可。 这个peekb函数是干什么的？而且编译的时候显示该函数未定义是为什么？[/quote] 未定义说明没有把peekb函数加入进来，没找到定义的地方。这函数不是你写的吗？或者代码没有全部导入到编译器里？[/quote]  应该是TC的一个非标库函数，读硬件寄存器什么的。

user: user-2
content: 这种一看就是和硬件打交道的函数，都是不讲理的。 你得到帮助里去看它的说明，那里边应该有解释哪一位是干什么的。

user: user-2
content: 哦，那么问题在于编译。 那么编译还有什么错误？我历来主张盯住第一条错误修改，后面的错误回头可能自己就消失了。

user: user-3
content: 引用 2 楼 Star-Sum 的回复:[quote=引用 1 楼 forever74的回复:]你调用的函数peekb就是做这个用的，读它的说明即可。 这个peekb函数是干什么的？而且编译的时候显示该函数未定义是为什么？[/quote] 未定义说明没有把peekb函数加入进来，没找到定义的地方。这函数不是你写的吗？或者代码没有全部导入到编译器里？

user: user-0
content: 引用 1 楼 forever74的回复:你调用的函数peekb就是做这个用的，读它的说明即可。 这个peekb函数是干什么的？而且编译的时候显示该函数未定义是为什么？

user: user-2
content: 你调用的函数peekb就是做这个用的，读它的说明即可。

user: user-3
content: 引用 6 楼 forever74 的回复:[quote=引用 3 楼 自信男孩 的回复:][quote=引用 2 楼 Star-Sum 的回复:][quote=引用 1 楼 forever74的回复:]你调用的函数peekb就是做这个用的，读它的说明即可。 这个peekb函数是干什么的？而且编译的时候显示该函数未定义是为什么？[/quote] 未定义说明没有把peekb函数加入进来，没找到定义的地方。这函数不是你写的吗？或者代码没有全部导入到编译器里？[/quote]  应该是TC的一个非标库函数，读硬件寄存器什么的。[/quote] 那就是头文件的问题了，没引入头文件？
user-0 提问: C语言基础题目

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 楼主代码没问题，简化下，供参考：#include<stdio.h>  int m_sum(int x) {     int t = 0;     while(x){           t += x % 10;           x /= 10;     }     return t; }   int m_cnt_9(int x) {     int  cnt=0;     while (x){          if((x%10) == 9) cnt++;          x /= 10;     }     return cnt; }  int m_fi(int x)//有几个9： {     int i;     int t = 0;     for(i = 1; i < x ;i++){         t += m_cnt_9(i);     }     return t; }   int m_pow(int x) {     x = x * x * x;     return x; }  int m_narcissistic(int y)//水仙花数：（153=1*1*1+5*5*5+3*3*3） {     int b = y, t = 0;     while(y){           t += m_pow(y % 10);           y /= 10;     }     if(t == b){        return 1;     }else{        return 0;     } }  int main() {     int i,x=1000,y=123;      printf("%d\n",m_sum(y));//位数和      printf("%d\n",m_fi(x)); //1-1000间9的个数      for(i = 100; i < 1000; i++){  //水仙花数         if (m_narcissistic(i) == 1){             printf("%d ", i);         }     }     printf("\n");          return 0; }
user-0 提问: MFC项目加速键使用不了小键盘的减号

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 我去,visual studio风格的MFC项目在用数字键盘的减号做加速键时由Insert键响应怎么回事不知道, 但找到解决的办法了, 在项目的类中增加HACCEL m_haccel变量,加载加速键到变量, 再添加PreTranslateMessage函数, 在函数内加代码 if (m_haccel != NULL) { 	TranslateAccelerator(this->m_hWnd, m_haccel, pMsg); } 翻译消息前,翻译一下加速键,问题就解决了!  初步怀疑是visual studio类型的MFC项目中的类关于加速键的默认Translate功能环节有BUG,自己在之前translateaccelerator一下就好了
user-0 提问: 请问一个关于syslog中时间记录的问题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 我们使用的操作系统相当有弹性，我的意思是，它们不适合做那种时间精密型操作。 因为缓存的存在，写入个文件还有可能被拖后几秒呢。  所以长期运行的软件系统里几秒这种等级的时间误差很难去较真儿。

user: user-2
content: 原来不是程序问题啊 系统管理员表示一般这种情况不是一段时间没记，而是“那段时间”消失了  一个系统的实时钟随着系统的繁忙程度的提高倾向于偏慢，对表进程拨快时钟的时候看起来就会“消失”一段时间 ntpd或者chronyd之类的进程隔三岔五地修正一下系统时间，你可以对照一下它们的log

user: user-0
user-0 提问: 同一线程下两个read读取一个串口

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 串口数据我记得有中断的，你要不每个函数都用 select 试试？读不到数据就阻塞，等有新数据了，就读，读完，等下一个函数再 select？

user: user-3
content: 一个线程read 你把读到的数据放 到两个list里，然后分别两个线程 处理 不同的list就可以了

user: user-0
content: 引用 7 楼 enthrone的回复:在一个线程里面已经读到数据了。为什么还要再读一边呢？复制不香吗？ 正是因为复制之后对我的程序来说不可靠，所以才来问的，因为在之前公司是用的我说的方法，但是当时没有学那个库函数，难受

user: user-0
content: 正是因为复制之后对我的程序来说不可靠，所以才来问的，因为在之前公司是用的我说的方法，但是当时没有学那个库函数，难受

user: user-4
content: 在一个线程里面已经读到数据了。为什么还要再读一边呢？复制不香吗？

user: user-5
content: 想读取同样的数据？一波数据读两遍？ 恐怕不行。

user: user-0
content: 引用 4 楼 user-5的回复:读光了数据，一时半会儿没东西可读也很正常啊。 所以我想知道有没有什么方法让两个read都能读取到……

user: user-5
content: 读光了数据，一时半会儿没东西可读也很正常啊。

user: user-0
content: 引用 2 楼 user-5的回复:读呗，还能有啥问题咋的？ 主要是，第一个read读取完之后，为什么第二个read去读取的时候返回值是－1，也就是没东西可读，还有就是这个串口我在读的同时也给里面用write写入数据

user: user-5
content: 读呗，还能有啥问题咋的？

user: user-0
content: 求大佬指点一二，多谢了！！！
user-0 提问: 关于声卡采集并显示波形的问题

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: https://www.mathworks.com/help/audio/ref/audiodevicereader-system-object.html
user-0 提问: 数据结构

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 多谢大佬解答

user: user-2
content: 还有个6也不见了？感觉在这几个地方有问题：判断条件'<'就可以了，'<='下标越界了。
user-0 提问: C语言数组解决问题，刚学

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 供参考：//产品销售记录包括 产品代码 名称 单价 数量 金额 等信息 //1）编写input函数 输入10个产品销售记录的如上信息 //2）编写sum函数 计算金额 = 单价 * 数量 //3）编写sort函数 按金额从大到小排序  #include<stdio.h> #define PRODUCTS 10 //按题目要求10个产品  void  input(); float sum(float a,int n); void  sort();   typedef struct{ //自定义结构体类型 	int   code; 	char  name[21]; 	float price; 	int   quantity; }PRODUCT;  PRODUCT products[PRODUCTS];//定义10个产品记录的数组  void main() {       input(); //输入       sort();  //排序,从大到小       for(int i = 0; i < PRODUCTS; i++){ //打印输出        printf("code = %d | quantity = %d | price = %.2f | name = %s | sum = %.2f\n",              products[i].code,products[i].quantity,products[i].price,products[i].name,              sum(products[i].price,products[i].quantity));       }        }  void input(){      printf("Enter example:code,quantity,price,name(30)\n");      for(int i = 0; i < PRODUCTS; i++){         scanf("%d %d %f %s", &products[i].code,&products[i].quantity,                                    &products[i].price,products[i].name); 	} }  float sum(float a,int n) {      return a * n; }  void sort(){       PRODUCT temp;       for (int i = 0; i <PRODUCTS -1 ;i++){          for (int k = 0; k < PRODUCTS - 1 -i ;k++){            if((products[k].price * products[k].quantity)<                                   (products[k+1].price * products[k+1].quantity))            {                  temp          = products[k];                  products[k]   = products[k+1];                  products[k+1] = temp;            }          }       } }   //Enter example:code,quantity,price,name(30) //11 20 2.00 aa //22 30 1.00 bb //33 10 3.00 cc //code = 11 | quantity = 20 | price = 2.00 | name = aa | sum = 40.00 //code = 22 | quantity = 30 | price = 1.00 | name = bb | sum = 30.00 //code = 33 | quantity = 10 | price = 3.00 | name = cc | sum = 30.00 //请按任意键继续. . .

user: user-3
content: 你的代码呢？只看到编译error，没看到代码呢，这怎么帮？你的意思按照你的要求写一个？！
user-0 提问: 求助malloc创建字符串并赋值！

回复:
user: user-1
content: 引用 1 楼 user-4 的回复: printf("%s\n", a);   没有以'\0'结束呢，这不算是一个字符串呢；

user: user-2
content: 而且缺少结束符

user: user-3
content: c 语言字符串要以 '\0' 结束。 以下代码供参考  #include <stdio.h> #include <stdlib.h> #define N 5 int main() {     char *a = (char*)malloc((N+1) * sizeof(char));    int i;     for( i=0; i<N;i++)     {         *(a+i) = '1';     }    *(a+i) = '\0';     printf("%s\n", a);    return 0 ; }

user: user-4
content: printf("%s\n", a);
user-0 提问: C语言指针问题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 指针当参数只能修改它指向的内存地址里面的东西，而不能修改指针的指向。

user: user-3
content: main函数的s和fun函数里的s是两个独立的变量。所以main里的s在经过fun函数之后是没有变化的，还是指向a的。  因为实参s把a的地址传给fun函数的形参s，然后形参没有对a做任何操作；只是形参s又指向了calloc申请的空间，并且把a，b数据内容相加给了s（形参），那么这个s和main函数里的s什么关系呢？calloc申请的空间需要手动释放～  如果fun第三参数传递的是double **s，实参是&s，那么main里的s指向的calloc申请的空间，*s是相加之和

user: user-4
content: 在fun()函数体内，*s 所指向的是 s = (double *)calloc(1,sizeof(double))所生成的空间，并没按我们所想的那样，指向a[]数组的空间。
user-0 提问: vscode 中文乱码怎办？编写c

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 现在的电脑硬件都牛，直接用visual stdio吧，省事不少。 再说，真正做项目，估计很少人用vscode吧。。

user: user-3
content: 右下角选择编码格式

user: user-4
content: 贴代码。。。。

user: user-5
content: 乱码这种东西，就像天上的浮云一样。 乱着乱着自己就散了。 你要是一时半会儿搞不定源文件编码，那就只用它来写新代码好了。 新写的又不乱。

user: user-6
content: 这种问题还是自己百度吧。。。

user: user-7
content: 看一下字符串是不是没有'\0'结束，还要看一下是不是越界了
user-0 提问: 怎样实现从网上下载的NTRU源代码？

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 1 楼 赵4老师的回复:带Makefile，  Linux： make Windows： nmake git clone https://github.com/jschanck/ntru.git cd ref-ntruhrss701 && make cd ../avx2-ntruhrss701 && make，老师，我在执行这些步骤时，第二步第三步，出现了make错误126，127。为什么啊

user: user-2
content: 带Makefile，  Linux： make Windows： nmake
user-0 提问: 求助：C语言strcat函数疑惑

回复:
user: user-1
content: char s1[20]=... char s2[20]=... char s3[20]=... 即可。 必要时再扩大。

user: user-1
content: 因为你没有给它们分配足够的空间。 都挤在一起的时候，s2的脚趾头不小心碰到s1的鼻孔也可以理解的。
user-0 提问: C语言求助

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 查阅函数原型，是为了对照它强制转换一下实参类型，以消除你问题里的警告。

user: user-0
content: 引用 2 楼 forever74的回复:FindWindow是个Win32 API，声明为  WINUSERAPI HWND WINAPI FindWindowA(     _In_opt_ LPCSTR lpClassName,     _In_opt_ LPCSTR lpWindowName); WINUSERAPI HWND WINAPI FindWindowW(     _In_opt_ LPCWSTR lpClassName,     _In_opt_ LPCWSTR lpWindowName);  FindWindow不是个函数吗

user: user-0
content: 引用 2 楼 forever74的回复:FindWindow是个Win32 API，声明为  WINUSERAPI HWND WINAPI FindWindowA(     _In_opt_ LPCSTR lpClassName,     _In_opt_ LPCSTR lpWindowName); WINUSERAPI HWND WINAPI FindWindowW(     _In_opt_ LPCWSTR lpClassName,     _In_opt_ LPCWSTR lpWindowName);  意思是，这个还需要提前声明吗？

user: user-2
content: FindWindow是个Win32 API，声明为  WINUSERAPI HWND WINAPI FindWindowA(     _In_opt_ LPCSTR lpClassName,     _In_opt_ LPCSTR lpWindowName); WINUSERAPI HWND WINAPI FindWindowW(     _In_opt_ LPCWSTR lpClassName,     _In_opt_ LPCWSTR lpWindowName);

user: user-3
content: FindWindow代码呢？  贴图片比较方便，但是也需要把相关的代码都拍下来的，要么直接发源码，如果不保密的
user-0 提问: 拜托帮忙看一下代码的问题！谢谢！（急！

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: #include<stdio.h> #include<stdlib.h>  typedef int ElemType; typedef struct LNode {     ElemType data;     //struct Lnode *next;     struct LNode *next; }LNode,*LinkList;  //void CreateList_L(LinkList L) void CreateList_L(LinkList *L) {     *L=(LinkList)malloc(sizeof(LNode));     (*L)->next=NULL;     int i;     LinkList p,q;     p = *L;     char c;     //for(;;i++)     for(;;)     {         while(p->next)             p = p->next;         q=(LinkList)malloc(sizeof(LNode));         scanf("%d",&q->data);         printf("%d\n", q->data);         p->next=q;         q->next=NULL;         //if(c=getchar()=='\n')break;         if((c=getchar())=='\n') //少一个括号             break;     } } int main() {     LinkList LA,LB,LC;     CreateList_L(&LA);     CreateList_L(&LB);     LC=(LinkList)malloc(sizeof(LNode));     LC->next=NULL;      LinkList p=LA,q=LB,l1,l2;     //for(p=LA;p->next!=NULL;p=p->next)     for(p=LA->next;p !=NULL;p=p->next)     {         //for(q=LB;q->next!=NULL;q=q->next)         for(q=LB->next;q!=NULL;q=q->next)         {             if((q->data)==(p->data))             {                 l2=LC;                 while(l2->next)                     l2=l2->next;                 l1=(LinkList)malloc(sizeof(LNode));                 //l1=l2;                 l1->data=q->data;                 l2->next=l1;                 l1->next=NULL;                 l2 = l1;             }         }     }      p=LA;     LinkList u=LA;     while(p->next)     {         u=p;         p=p->next;         free(u);     }     q=LB;     u=LB;     while(q->next)     {         u=q;         q=q->next;         free(u);     }      l2=LC->next;     //while(l2->next)     while(l2)     {         /*         if(l2->next==NULL)printf("%d\n",l2->data);         else printf("%d ",l2->data);         */         printf("%d ",l2->data);         l2=l2->next;     }     putchar(10);     return 0; }  供参考～

user: user-3
content: 一个参数指针，函数里只能通过修改他指向的内容，而不能修改他的指向。
user-0 提问: 大佬求解

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 1 楼 user-2 的回复：供参考：#include<stdio.h> #include<math.h> int isPrime(int n); int main() {     int n,m,sum=0;     scanf("%d",&n);     while (n--){           scanf("%d",&m);           if (isPrime(m)) sum += m;     }     printf("%d",sum);          return 0; }  int isPrime(int n) {     if (n <= 3) {         return n > 1;     }     int sqr = (int)sqrt(n);     for (int i = 2; i <= sqr; i++) {         if(n % i == 0) {             return 0;         }     }     return 1; }感谢大佬[face]monkey2:003.png[/face]

user: user-2
content: 供参考：#include<stdio.h> #include<math.h> int isPrime(int n); int main() {     int n,m,sum=0;     scanf("%d",&n);     while (n--){           scanf("%d",&m);           if (isPrime(m)) sum += m;     }     printf("%d",sum);          return 0; }  int isPrime(int n) {     if (n <= 3) {         return n > 1;     }     int sqr = (int)sqrt(n);     for (int i = 2; i <= sqr; i++) {         if(n % i == 0) {             return 0;         }     }     return 1; }
user-0 提问: 这样为啥不对啊

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 贴源码吧，方便调试～

user: user-2
content: 楼主的代码只是把p的地址赋值给了q，这样q还是一个孤零零的节点。并没有插入到链表中  如果楼主要插入到链表中，需要定义另外一个节点pre，即要插入节点的前一个节点，q->next = p; pre->next = q;

user: user-3
content: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633

user: user-2
content: 引用 4 楼 user-5 的回复:插入函数，供参考：struct ListNode *insert(pp head,int x){      pp p,pr,q;      q=(pp)malloc(sizeof(qq));      q->data = x;      pr=head;      p=head->next;      while(p){            if(p->data >= x) {               if(p->data == x) break;               else{                    q->next = pr->next;//找到了p，插在p的前面一个节点。                    pr->next = q;                    break;               }            }            pr = p;            p  = p->next;      }      return head; } 如果插入的点在head之前呢，这个没有考虑 另外，head一定是有效的吗？可能是NULL不？所以需要多加一些判断～   q->next = pr->next;//找到了p，插在p的前面一个节点。     //上面这句可以改一下，改成如下：    //q->next = p; //这样会比较好理解了～否则后面的注释容易对你的q->next = pr->next产生误解～                    pr->next = q;                    break;

user: user-4
content: 嗯，作弊的方式是把新节点q放在p的后面，然后悄悄交换它俩的data

user: user-5
content: 插入函数，供参考：struct ListNode *insert(pp head,int x){      pp p,pr,q;      q=(pp)malloc(sizeof(qq));      q->data = x;      pr=head;      p=head->next;      while(p){            if(p->data >= x) {               if(p->data == x) break;               else{                    q->next = pr->next;//找到了p，插在p的前面一个节点。                    pr->next = q;                    break;               }            }            pr = p;            p  = p->next;      }      return head; }

user: user-5
content: 这里不对吧，q=(pp)malloc(sizeof(pp));
user-0 提问: 有没有大佬教教我AVX512指令集

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: set和shuffle能一样吗？
user-0 提问: 乌班图20.04系统下，安装成功matlab2015，但是启动时总是报错：段错误（核心已转储））

回复:
user: user-1
content: 楼主解决了 ，我也有同样的问题

user: user-2
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 3 楼 niuiic 的回复:如果是matlab2020，那就是少了一个库。2015也有可能是这个问题。具体哪个我忘了，博客也删了，到matlab论坛看一下吧，当初的回复还在。我安装的是matlab2015

user: user-0
content: 引用 1 楼 user-4 的回复:不确切，猜测：安装过程结束之前有没有让你执行某个脚本进行初始化的？或者让你自行修改点什么？这个没有，安装完成之后，进行激活，激活成功之后，执行matlab就会报错，

user: user-3
content: 如果是matlab2020，那就是少了一个库。2015也有可能是这个问题。具体哪个我忘了，博客也删了，到matlab论坛看一下吧，当初的回复还在。

user: user-4
content: 继续猜：sudo  ?

user: user-4
content: 不确切，猜测：安装过程结束之前有没有让你执行某个脚本进行初始化的？或者让你自行修改点什么？
user-0 提问: 请问各位大佬，不定长数据域协议帧解析问题

回复:
user: user-0
content: 引用 7 楼 forever74 的回复:就是各种转换指针类型嘛， frame是指针，管1个字节，frame+4也是。 把它强制转换为uint8_t *[4]类型也就是指针变量data的类型，就是为了让它变成管4个字节的指针类型，用来给data指针赋值。  下面那个类似，多了一个解引用也就是取目标，但是没有特意考虑字节序，如果字节序不对，就不能这样写。  非常感谢您花费时间讲解 我再去消化研究一下

user: user-0
content: 引用 5 楼 user-2 的回复:2字节的数据帧长度要注意高低字节序，一般要用socket函数互相转换： htons()、ntohs()  虽然这个问题里不涉及区分大端小端 还是非常感谢您让我知道了这两个函数 挺实用的 谢谢！

user: user-1
content: 本来等着你说处理全帧的不如边接收边处理来得效率高呢。

user: user-1
content: 就是各种转换指针类型嘛， frame是指针，管1个字节，frame+4也是。 把它强制转换为uint8_t *[4]类型也就是指针变量data的类型，就是为了让它变成管4个字节的指针类型，用来给data指针赋值。  下面那个类似，多了一个解引用也就是取目标，但是没有特意考虑字节序，如果字节序不对，就不能这样写。

user: user-0
content: 引用 3 楼 forever74 的回复:uint8_t * frame=...; //带头的全帧首地址 uint8_t (*data)[4]=(uint8_t *[4])(frame+4); short int len=(*(short int *)(frame+2)-4)/4; //假设帧长度包括头不包括尾校验 int i; for(i=0;i<len;i++) {     do_someting_on data[i]; }  您好，本人接触编程时间不长，请问这串代码怎么理解呢 谢谢 (uint8_t *[4])(frame+4);  就是(uint8_t *[4])这样的表达方式没有见过  以及(*(short int *)(frame+2)-4)

user: user-2
content: 2字节的数据帧长度要注意高低字节序，一般要用socket函数互相转换： htons()、ntohs()

user: user-0
content: 谢谢您的思路

user: user-1
content: uint8_t * frame=...; //带头的全帧首地址 uint8_t (*data)[4]=(uint8_t *[4])(frame+4); short int len=(*(short int *)(frame+2)-4)/4; //假设帧长度包括头不包括尾校验 int i; for(i=0;i<len;i++) {     do_someting_on data[i]; }

user: user-0
content: |start | Command | Data                      | CRC  |  |0xAA  | 0xDD       |   需要解析的部分    |         |  ---------------------------------------------------- 意思是 怎么把frame_datafield[]这个数组里的元素 按4个一组 4个一组 分别提取出来

user: user-1
content: 你那儿有数据帧长度啊，所以你问的实际上是什么？
user-0 提问: openresty TCP代理，动态分配监听的端口供客户端连接

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: 不知道为什么运行不出结果？

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: #include <stdio.h> #include<stdlib.h>  #define Maxize 20  typedef int datatype; typedef struct list {     datatype data[Maxize];     int length;  }squenlist;  void crealist(squenlist *b1,int a[],int n) {     int i,j=0;     for(i=0;i<n;i++)     {         b1->data[i]=a[j];         j++;     }     //b1->length=j+1;     b1->length=j;   //最后一次的j已经加1了，所以不用再加1了，否则就超出有效数据的大小了 } void displaylist(squenlist *b1) {     int i=0;     for(i=0;i<b1->length;i++)     {         printf("%d ",b1->data[i]);     }     printf("\n"); } int main() {     int a[5]={10,20,30,40,50},n;     n=5;     //squenlist *b1;     squenlist b1;     crealist(&b1,a,n);     displaylist(&b1);     return 0; } 供参考～ *b1是野指针 使用野指针了，所以没有输出。

user: user-3
content: 供参考：#include <stdio.h> #include<stdlib.h> #define Maxize 20 typedef int datatype; typedef struct list {     datatype data[Maxize];     int length;  }squenlist;  void crealist(squenlist *b1,int a[],int n) {     int i,j=0;     for(i=0;i<n;i++)     {        b1->data[i] = a[j];        j++;     }     b1->length=j;//b1->length=j+1; }  void displaylist(squenlist *b1) {     int i=0;     for(i=0;i<b1->length;i++)     {       printf("%d ",b1->data[i]);     }     printf("\n"); }  int main() {     int a[5]={10,20,30,40,50},n;     n=5;     squenlist *b1 = (squenlist *)malloc(sizeof(squenlist));//b1必须给它申请一片天呢     crealist(b1,a,n);     displaylist(b1);          return 0; }
user-0 提问: 请问一下这句代码什么意思 感激不尽

回复:
user: user-1
content: bit7..bit0   hexbyte 01100000 0x60 00011111 0x1F  如果LunarCalendarTable[year-1901]中的值对应二进制位bit6,bit5对应值为1 给Spring_NY赋值为LunarCalendarTable[year-1901]中的值对应二进制位bit4～bit0对应值-1 ……
user-0 提问: 华科。视频播放。课设 老代码无法运行 求大佬帮助

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 见你的另一帖

user: user-3
content: easyx ？

user: user-4
content: 引用 4 楼 赵4老师 的回复:在DosBox下使用 你说的对， 其实我只是找借口不想多干活。 咦，我这样坦白真的好么？

user: user-3
content: 在DosBox下使用

user: user-4
content: 没有环境没法测试。但可以肯定的是这个代码原本就没有好用过。  TC的图形库得用TC编译，关键注意几个： TC是16位环境，int=short是16位的，long才是32位的。文件里读入4字节写入int变量一定会越界出错的，而DOS对越界是纵容的。 搞清楚你准备用的图形文件的格式是否和代码描述的一致，会不会文件格式太新或者颜色深度太大什么的。 TC图形库的initgraph的第三个参数是个文件名字符串，这个文件是TC自带的图形驱动，原始名字似乎不是这个来着，确定一下文件在不在你说的位置，内容对不对，名字为啥改了。  想想穿越秦汉隋唐自建工业体系的难度，耐心吧。

user: user-0
content: 引用 1 楼 赵4老师的回复:easyx ？ 不可以 dos 环境不支持
user-0 提问: TurboC2.0下16色bmp显示

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: DosBox中测试楼主的代码是可以的，需要注意的是，显示的bmp需要16色，大小不超过64KB

user: user-3
content: 在DosBox中使用TC ？

user: user-3
content: easyx ？

user: user-0
content: 引用 1 楼 user-4的回复:Turbo C，这么老的IDE，谁想帮你都难。 最好用大众化的IDE，好交流，有问题也容易搜索解决。。 学校逼迫，不然谁会用这种东西

user: user-4
content: Turbo C，这么老的IDE，谁想帮你都难。 最好用大众化的IDE，好交流，有问题也容易搜索解决。。
user-0 提问: DOS系统下用turboC2.0实现256色bmp图片显示

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 这个显示不了256色图，16色的可以

user: user-0
content: 引用 4 楼 赵4老师的回复:easyx ? 没有用easyx

user: user-3
content: 在DosBox中使用TC ？

user: user-3
content: easyx ?

user: user-0
content: 引用 1 楼 user-4的回复:16位编程环境最基本的意思是int是16位的。 你的iw  ih 都只有2字节空间，你读进来4字节是要越界的。 图像长宽都错了的情况下，其他不正常现象恐怕就正常了  所以，我承认只看了几行，下面没看。 您这个我没听懂，我换了long也不行

user: user-0
content: ih和iw不是int类型吗

user: user-4
content: 16位编程环境最基本的意思是int是16位的。 你的iw  ih 都只有2字节空间，你读进来4字节是要越界的。 图像长宽都错了的情况下，其他不正常现象恐怕就正常了  所以，我承认只看了几行，下面没看。
user-0 提问: C语言排序

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: for循环的第二个是j = 9;这个写的比较固定的，这个应该和n有关系的一个数。 另外，当j=9时，j+1不就是10了，Temp[10]是不是越界了？下表最大是不是应该为9，没看到你的数组长度，所以只能猜测

user: user-3
content: 看着眼睛疼。直接上代码多好。。谁有空给你慢慢敲。。。
user-0 提问: 用C语言数组最大值最小值碰到的问题

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: min 和 max的初始值都需要指定一个。

user: user-3
content: 目标是消灭数组，直接求值   max    min  函数直接求值

user: user-4
content: min = max = a[0];是比较简单的初始话方法

user: user-5
content: 最好的办法是将第一个数据赋值给max和min，这样最保险。否则当你输入的值都是负值的时候，你如果将max=min=0，结果也会有问题吧

user: user-6

user: user-7
content: 哈哈，比较，总要有个初始值嘛。

user: user-0
content: 引用 15 楼 智者知已应修善业的回复:学习编程能让人变得静思与反复推敲。 好的谢谢 懂了懂了

user: user-8
content: min的值是0，已经是非负数的最小值了。  int min = 100;

user: user-9
content: 学习编程能让人变得静思与反复推敲。

user: user-9
content: 就提问来说,数据类型是int应当知道有最大和最小的直接可以赋值INT_MIN,INT_MAX  引用 12 楼 Adorika 的回复:[quote=引用 5 楼 智者知已应修善业的回复:]通常最大值初始化为最小，最小值初始化为最大即可。 那应该怎么写呢[/quote]

user: user-10
content: 引用 11 楼 Adorika 的回复:[quote=引用 3 楼 真相重于对错的回复:]因为你所有的数字都大于0，所以无法比较出来 做最大值最小值咋可能不大于零呢[/quote] 举个例子你就清楚了 比如你输入 1，2，3，4，5 所有值都比0大，那么这些值和0比较都大， 因此 if(min>a[i]) {  。。。。。 }//这个判断语句块永远不会执行。 循环结束后，min还是0

user: user-0
content: 引用 5 楼 智者知已应修善业的回复:通常最大值初始化为最小，最小值初始化为最大即可。 那应该怎么写呢

user: user-0
content: 引用 3 楼 真相重于对错的回复:因为你所有的数字都大于0，所以无法比较出来 做最大值最小值咋可能不大于零呢

user: user-0
content: 引用 1 楼 赵4老师的回复:#include <stdio.h> #define N 30 int main() {     int a[N], min, max,  i, sum , avg;     printf("请输入%d名学生的成绩\n",N);     for (i=0; i < N; i++) {         while (1) {             printf("第%d名学生的成绩：",i+1);             fflush(stdout);             rewind(sstdin);             if (1==scanf_s("%d", &a[i]) {                 if (0<=a[i] && a[i]<=100) break;             }             printf("输入格式错误！请重新输入\n",N);         }     }     sum=0;     min=max=a[0];     for (i = 1; i < N; i++) {         sum += a[i];         if (a[i]<min) min = a[i];         if (a[i]>max) max = a[i];     }     avg = sum / N;     printf("最大值=%d\n", max);     printf("最小值=%d\n", min);     printf("平均值=%d\n", avg);     return 0; }  大佬 但是我们现在不用写这么 详细 感谢分享 十分有用

user: user-11
content: min = max = a[0]; 这句加上，初始化最大值和最小值。 要么就是按照楼上所说，把最大值定义成int能表示的最大正整数，min定义成int的最小值； 但是int在不同编译器里会有所不同，比如16位编译器和32位，64编译器里标识的位数不同；所以，还得考虑这个。 因此，min = max = a[0];是比较简单的初始话方法

user: user-9
content: 我这样说才能令有所领悟，授之以渔。

user: user-12
content: 引用 5 楼 智者知已应修善业 的回复:通常最大值初始化为最小，最小值初始化为最大即可。 此法不保险，且麻烦（对不同数值类型而言）。 个人意见，至少有一个数据的话，还是把最大值和最小值都初始化为第0个数据比较保险。

user: user-13
content: 楼主可以这样运行下代码，看看max min avg输出什么，找找感觉：#define N 30 int main() {    int a[N], min, max, i, sum = 0, avg = 0;    /*printf("请输入30名学生的成绩：");    for (i=0; i < N; i++)    {      scanf_s("%d", &a[i]);    }    for (i = 0; i < N; i++)   {      sum += a[i];      if (min > a[i])      {        min = a[i];      }      if (max < a[i])      {       max = a[i];      }    }    avg = sum / N; */    printf("最大值=%d\n", max);    printf("最小值=%d\n", min);    printf("平均值=%d\n", avg);    system("pause");    return 0; } 最大值最小值比较大小，都是有限范围内的，值的大小也是相对的，是某一个范围内的大小，大小值肯定在特定区域内的一个，然后去比较。比如说去比较一个幼儿园小朋友的身高，如果设置初值：max=成人的身高，最后这个max还能找得到吗？

user: user-9
content: 通常最大值初始化为最小，最小值初始化为最大即可。
user-0 提问: c语言malloc与sprintf函数调用

回复:
user: user-0
content: 引用 4 楼 自信男孩的回复:x存放的是字符串，'0'对应0x30, '1'对应0x31依次向后0x39对应'9' 嗯嗯，懂了耶

user: user-1
content: x存放的是字符串，'0'对应0x30, '1'对应0x31依次向后0x39对应'9'

user: user-0
content: 引用 2 楼 user-2的回复:y[0]里面保存的是数值0 但是被sprintf写入x[0]里面的就是字符0了 下面再用%x格式输出字符0 当然看到的就是它的十六进制表现形式30了 谢谢呐，懂了懂了

user: user-2
content: y[0]里面保存的是数值0 但是被sprintf写入x[0]里面的就是字符0了 下面再用%x格式输出字符0 当然看到的就是它的十六进制表现形式30了

user: user-2
content: 不管是sprintf还是printf，不管内部是什么类型的东西，输出后的形式都是字符序列。 瞧，我连字符串都不说，因为字符串也是内部说法，不适用于输出以后的形式。  有个神似但是形不够似的比方， 不管你银行账号里的金额有多精彩，你要是用取款机来输出它，你得到的只能是一系列的百元钞票。
user-0 提问: 在单链表的特定位置插入一个值，如何完成，之前有人给过代码，不过没看懂，希望有大佬发详细注解的代码

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 1.创建一个节点，指向插入位置前的节点 2.把插入位置后面的节点指向刚才创建的节点

user: user-3
content: https://mp.csdn.net/editor/html/104839822

user: user-4
content: 建议自己先写写，如果不明白原理，建议从书上获取～自己啃啃书，实践一下吧～

user: user-5
content: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
user-0 提问: 判断输入的整数是否为素数！！请问哪里有错a,求教！！！

回复:
user: user-1
content: int nu(int a) {     int i;     for(i=2;i<a;i++)         if(a%i==0)              return 0;     return 1;  }

user: user-2
content: int nu(int a) {     int i;     if (a < 2)         return 0;     for(i=2;i<sqrt(a)+1;i++)         if(a%i==0)              return 0;     return 1;    } 提高效率～

user: user-2
content: 引用 2 楼 qzjhjxj 的回复:int nu(int a) {     int i;     for(i=2;i<a;i++)         if(a%i==0)              return 0;     return 1;  } 根据这个逻辑，1的返回值是1；0的返回值是1，即是素数  int nu(int a) {     int i;     if (a < 2)         return 0;     for(i=2;i<a;i++)         if(a%i==0)              return 0;     return 1;   }

user: user-3
content: i自2起方为正道。
user-0 提问: 函数pi是否满足pi/2=1+1/3+1/3*2/5+1/3*2/5*3/7+....  求教！！！

回复:
user: user-0
content: 是的，还需要点补充，严谨一点

user: user-1
content: 不满足；1/3 * 2/5这个乘法没有体现出来呢～另外，t的值需要做一个限定，不能是1,2这样的值。  网上搜一下吧，看看别人的逻辑，自己参考一下～

user: user-2
content: 肯定不行吧，你把 n = 2，带进去看不就行了么 n = 2 的情况下，算式要求是 1/3 * 2/5 你这个循环里边只在 sum 上加了一个 2/5 而已，以此类推，后面的每一项都不符合了

user: user-3
content: 我觉得，按程序的本意，t应该是pi的计算精度吧。作为double传入，不宜作为循环条件的判定吧。
user-0 提问: 请判断下列函数pi是否满足pi/2=1+1/3+1/3*2/5+1/3*2/5*3/7+...  求教！！！

回复:
user: user-1
content: 供参考：//π/2=1+1/3+（1*2）/（3*5）+（1*2*3）/（3*5*7）+.......+（1*2...*n）/（3*5....*（2n+1））  #include "stdio.h" double pi(double t) {     double sum=1,m=1,s=1;     int n;     for(n=1;m>=t;n++)//for(n=1;n<=t;n++)这里n不会小于t,只会越走越大，n是项数      {               //m的值越来越小了，          m=m*n/(2*n+1);//n=1,m=1/3  //n=2,m=(1/3)*(2/5) ........          //s=s*m          sum=sum+m;  //n=1,sum = 1+ (1/3) //n=2,sum = 1+(1/3)+(1/3)*(2/5).......      }     return (sum*2); }
user-0 提问: 是一个刚上c语言编程设计的小白

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: 请问一下各种合法外挂的学习方向

回复:
user: user-1
content: 引用 6 楼 早打大打打核战争 的回复:[quote=引用 5 楼 赵4老师 的回复:][quote=引用 4 楼 早打大打打核战争 的回复:]老赵以前一直吹AutoHotkey来着~ 我现在也可以继续吹AutoHotkey[/quote]  再给楼主科普一次~  [/quote] https://www.autohotkey.com/

user: user-2
content: 引用 5 楼 赵4老师 的回复:[quote=引用 4 楼 早打大打打核战争 的回复:]老赵以前一直吹AutoHotkey来着~ 我现在也可以继续吹AutoHotkey[/quote]  再给楼主科普一次~

user: user-1
content: 引用 4 楼 早打大打打核战争 的回复:老赵以前一直吹AutoHotkey来着~ 我现在也可以继续吹AutoHotkey

user: user-2
content: 老赵以前一直吹AutoHotkey来着~

user: user-1
content: Windows Automation是一款基于Windows平台的桌面自动化软件， 用于自动执行所有重复性任务。 能自动启动和使用应用程序， 如自动填写数据、自动操作各种软件。

user: user-3
content: windows API

user: user-3
content: windows下都有鼠标键盘函数可以实现移动点击等效果
user-0 提问: 数据结构遇到的相关问题求解答，在此拜谢

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 建议贴全代码，但从照片看不明白你想要的，主要是代码部分还被遮住～  逻辑上应该是每次遇到一个和e相等的，就用后面的覆盖当前的。
user-0 提问: 数据结构相关问题请各路大神速来解答

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 代码信息不全呢，怀疑是给elem申请的动态空间，这样是可以按照数组的形式去赋值的。 所以，查一下初始化的函数里是不是有对elem申请了空间。  如果没申请还可以这样赋值，那么即使可行那也是随机的，因为野指针的使用是未定义行为～

user: user-3
content: A[B] *(A+B) *(B+A) B[A] //以上四行等价  "abc"[1] *("abc"+1) *(1+"abc") 1["abc"] //以上四行等价  A[0] *(A) 0[A] //以上三行等价
user-0 提问: 为啥出现了负数？

回复:
user: user-1
content: 躲过了初一，没躲过十五 使用16位环境要格外小心

user: user-2
content: #include "stdio.h" int main(){     int i;     unsigned long long arr[40];     arr[0]=1;     arr[1]=1;     for(i=2;i<40;i++){          arr[i] = arr[i-1] + arr[i-2];         //printf("%d\t",arr[i]);         printf("%llu\t", arr[i]);     }     putchar(10);      getchar();      return 0; } 负数，应该是溢出的缘故，因为long int最高位是符号位，计算得到的值超出了long int表示的正整数范围；  另外，long int输出应该是%ld不是%d

user: user-3
content: 我这显示正常：#include "stdio.h" #include <conio.h>//getch()函数头文件 int main(){      int i;      int arr[40];      arr[0]=1;      arr[1]=1;      for(i=2;i<40;i++){          arr[i]=arr[i-1]+arr[i-2];         printf("%d  ",arr[i]);     }       getch();      return 0;  }  //2  3  5  8  13  21  34  55  89  144  233  377  610  987  1597  2584  4181  6765  10946  17711 //28657  46368  75025  121393  196418  317811  514229  832040  1346269  2178309  3524578  5702887 //9227465  14930352  24157817  39088169  63245986  102334155

user: user-4
content: #include "stdio.h" int main(){     int i;     long int arr[40];     arr[0]=1;     arr[1]=1;     for(i=2;i<40;i++){          arr[i]=arr[i-1]+arr[i-2];         printf("%ld\t",arr[i]);     }     getchar();     return 0; }

user: user-5
content: 可以 调试一下看看，就可以发现问题，看什么时候变成负数了，看代码本身，好像没有问题
user-0 提问: 想要更强 又毫无方向

回复:
user: user-1
content: 组长，反观现在，你很强了！！加油！！！

user: user-2
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-3
content: 年轻就是资本啊小老弟，别想太多，跟着自己的节奏走就行

user: user-4
content: 首先，也是最难的，正确评估自己 然后确定一个靠谱的远期目标 接着就是向目标前进了 不要奔跑，慢慢走起，不停下就行 前进途中身边触手可及的全部都是基础 不要怕基础太杂 大部分不需要系统深入地学习 但要了解。

user: user-0
content: 谢谢您了 会注重基础的 ，但是 基础？ 啥叫基础？ 烦躁是很烦躁的 ，真的还是谢谢你

user: user-5
content: 鸡汤多了也无感了，不如自己多尝试。即使前期很耗时间去解决几个甚至是一个问题，那也是进步。楼主心里应该还是很急躁的～，不如先静下心来，点滴积累，点滴升华。

user: user-5
content: 扎根基础，一步一个脚印，不要浮躁，基础牢固了，学习新的东西会更快些～
user-0 提问: 链表中使用冒泡排序首行无法参与的解决办法。（交换节点）

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 只交换数据部分应该比较好处理。 链表节点交换，比较难处理。

user: user-3
content: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633

user: user-4
content: 这就是为什么有些数据结构教材喜欢头结点而不是头指针。