Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 2022年「博客之星」参赛博主：1 + 1=王

回复:
user: user-0
content: 已支持，欢迎回访五星 ⭐⭐⭐⭐⭐：https://bbs.csdn.net/topics/611386885

user: user-1
content: 已支持， 五星互访 https://bbs.csdn.net/topics/611390868

user: user-2
content: # 已五星好评，诚信五星，五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388978 # 已五星好评，诚信五星，五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388978 # 已五星好评，诚信五星，五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388978

user: user-3
content: 已给5星，诚信互评：https://bbs.csdn.net/topics/611387606 已给5星，诚信互评：https://bbs.csdn.net/topics/611387606 已给5星，诚信互评：https://bbs.csdn.net/topics/611387606

user: user-4
content: 已回投

user: user-5
content: https://bbs.csdn.net/topics/611390422 ， 已五星好评，谢谢！

user: user-6
content: 欢迎一起互访五星！https://bbs.csdn.net/topics/611390545

user: user-7
content: 已五星，欢迎回访,五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388675?spm=1001.2014.3001.6953已五星，欢迎回访,五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388675?spm=1001.2014.3001.6953已五星，欢迎回访,五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388675?spm=1001.2014.3001.6953已五星，欢迎回访,五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388675?spm=1001.2014.3001.6953已五星，欢迎回访,五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388675?spm=1001.2014.3001.6953

user: user-8
content: 欢迎一起互访五星！！https://bbs.csdn.net/topics/611387550?spm=1001.2014.3001.6953

user: user-9
content: 已五星支持，http://t.csdn.cn/4YvCK

user: user-10
content: ⭐⭐⭐⭐⭐诚信五星，五星必回⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611387545⭐⭐⭐⭐⭐五星后,请留下链接🔗,必回访⭐⭐⭐⭐⭐

user: user-11
content: 已五星，欢迎回访https://bbs.csdn.net/topics/611390140

user: user-12
content: 已给巨佬五星，期待回评。 http://t.csdn.cn/ounE2 已给巨佬五星，期待回评。 http://t.csdn.cn/ounE2  有🧧领 ✨✨✨✨✨

user: user-13
content: 已投，诚信五星，五星必回⭐⭐⭐⭐⭐http://t.csdn.cn/XKj1X欢迎互访五星评论互投必回⭐⭐⭐⭐⭐http://t.csdn.cn/XKj1X

user: user-14
content: 已投诚信五星互投⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388261诚信五星互投⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388261诚信五星互投⭐⭐⭐⭐⭐https://bbs.csdn.net/topics/611388261

user: user-15
content: 已安排，五星，原力等级7，诚信互投https://bbs.csdn.net/topics/611389531已安排，五星，原力等级7，诚信互投https://bbs.csdn.net/topics/611389531已安排，五星，原力等级7，诚信互投https://bbs.csdn.net/topics/611389531

user: user-16
content: 已5星，http://t.csdn.cn/Xr6pq

user: user-17
content: 五星支持，原力7级，欢迎互投https://bbs.csdn.net/topics/611387935

user: user-18
content: 五星已评！⭐⭐⭐⭐⭐满级原力最高加分互相五星支持！欢迎回访：https://bbs.csdn.net/topics/611389757

user: user-19
content: 已五星 https://bbs.csdn.net/topics/611388380?utm_medium=notify.im.notify-business-fans.16584a08e070f000.a&username=wnn654321

user: user-20
content: 已支持！诚信互访！五星必回！https://bbs.csdn.net/topics/611391126 已支持！诚信互访！五星必回！https://bbs.csdn.net/topics/611391126已支持！诚信互访！五星必回！https://bbs.csdn.net/topics/611391126已支持！诚信互访！五星必回！https://bbs.csdn.net/topics/611391126已支持！诚信互访！五星必回！https://bbs.csdn.net/topics/611391126

user: user-21
content: 已支持，欢迎回访五星 ⭐⭐⭐⭐⭐ https://bbs.csdn.net/topics/611388731

user: user-22
content: 已五星支持。 https://bbs.csdn.net/topics/611389981
user-0 提问: #求助 Python

回复:
user: user-1
content: 把代码重新发一下，方便查看 m=3 while m<10:     n=2     while n<=m-1:         if m%n==0:             break         if n==m-1:             print(m)         n+=1     m+=1  这段代码是打印<10的质数把，因为当m=6时，n从2到5循环，测试是否 m%n==0,由于6%2==0, 会执行break,所以不会打印出来  想知道满足了if语句，那么n+=1还需要执行吗？  当 m%n==0时，会执行break, 跳出 while n<=m-1: 的循环，不会执行n+=1否则会执行
user-0 提问: 为什么c的程序运算结果不对？

回复:
user: user-1
content: 这里错了：scanf("%d %d &d",&a,&b,&c); 应该是：scanf("%d%d%d",&a,&b,&c);

user: user-2
content: printf("请输入3个整数：");   scanf("%d%d%d", &a, &b, &c);   if (b > c) c += b -= c, b = c - b;   if (a > b) b += a -= b, a = b - a;   if (b > c) c += b -= c, b = c - b;   printf("max = %d, min = %d, median = %d\n", c, a, b);

user: user-3
content: max太多余了，把max删了

user: user-4
content: 在scanf后把三個值都打出來就知道是哪的問題啦。懷疑是最後那個%d沒改，還是寫&d。

user: user-5
content: scanf("%d %d &d",&a,&b,&c); 改为   scanf("%d%d%d",&a,&b,&c);

user: user-0
content: 改了也不对的。我输入 3 5 9，结果显示最大值为5。
user-0 提问: C语言fscanf无法将N赋值（一直都是0）

回复:
user: user-1
content: 用 vc2008 编译执行了，有结果：6.0， -1.0, 1.0 。那，可能是你的 data.txt 不对，不是 ascii 格式？

user: user-2
content: 也可能是文件存放的路径不对。 VS的运行环境，当前路径是项目目录，不是exe所在目录。 总之是不知道文件打开成功没有。

user: user-0
content: 我是用dev写的
user-0 提问: 有没有大佬帮我看看这个基础链表（萌新求助，人已裂开？

回复:
user: user-1
content: struct data* p1 = new (struct data);  这个，去掉开头的 struct data* 否则是又定义了个新的变量 p1 和前面的不是一个变量，所以两处的 p1 是不一样的，就不对了。
user-0 提问: 清空数据栈的参数为什么可以是地址也可以不用地址

回复:
user: user-1
content: 那个是引用，不是地址。

user: user-0
content: 嗷嗷，那为什么引用和不引用都可以压，数据栈的清空有指针变化不应该只有引用可以吗

user: user-1
content: 画面上没有证据表明可以，是你自己说可以的。
user-0 提问: 这个代码的分析结果是啥呀

回复:
user: user-1
content: 先来看一下C语言的运算优先级：   #include<stdio.h>  int main()  {     //定义数组     int a[]= {2,4,6,8,10};      //定义指针p指向数组a     int *p=a;      //指针p指向的数组元素为2，这里是(*(p++))     //实际上p++是表示指针p+1了但是返回的还是+之前的值     //再对这个值*引用，所以就是2     printf("%d\n",(*p++));      //上一行代码已经让p + 1了,这里指针p先运行(++p)指针+1     //然后在用*引用，也就是*(p + 2)的值     printf("%d\n",(* ++p));      //接着又先进行++p操作此时p指向的是8，但是执行的是(* ++p)++     //也就把8加一，只不过返回的还是8     printf("%d\n",(* ++p)++);      //实际上8+1=9     printf("%d\n",*p);     return 0;  }

user: user-2
content: 指针的花花，头疼；结果是啥，先自己看看琢磨琢磨呗，结果记下来，再编译了运行下，看和自己的一样否。
user-0 提问: 求助大佬  为什么程序有时运行结果正确，有时又不对

回复:
user: user-1
content: m, n, x, y 都没有初始化，遇到首单元就是最大或最小的，就不对了；另外，最大和最小，可以一个循环。

user: user-0
content: 谢谢大佬，懂了
user-0 提问: printf 打印总是乱码？

回复:
user: user-1
content: 看上面图，那些 FF 应该是单字节被符号扩展到了双字的缘故。加密对否，可以和标准的代码的结果比较，也可以用解密模块解密下看看是否还原。

user: user-1
content: aes加密？加密后的数据，本来就是乱的啊；不乱的加密，往往只是简单的替换，强度在计算机面前近乎 0

user: user-0
content: 不是我的意思是说，即使是乱码，应该也是ASCII码不是?然而返回的并不是啊

user: user-1
content: 应该也是 ascii? 哪来的说法? aes 是 16字节一组进行的，结果是可能任何的 16字节数据，且是一个整体，'abc' 加密了后，不可能只是 'xyz' 。

user: user-0
content: 我基础差啊，所以大侠，请假下如何屏幕打印这些字节码，以验证加密后的字符串数据是否正确？
user-0 提问: 求助，字符串大小写转换的问题

回复:
user: user-1
content: 明白你的問題在哪啦，把c[ temp - 47]刪掉就可以啦。

user: user-1
content: if ( n[i]<'0' || n[i]>'9' )   continue; temp = n[i] - '0'; if ( c[temp] >= 'a' && c[temp] <= 'z' )     c[temp] &= 0x5f; if ( c[temp] >= 'A' && c[temp] <= 'Z' )     c[temp] != 0x20;

user: user-1
content: 哦，第二个if前应该加上 else

user: user-0
content: thanks 我看看

user: user-0
content: 你好，我想再请教一下，按位与计算的思路是怎么来的呢？（位运算不太了解有什么用（（（

user: user-2
content: 竟然没看懂题意，输入的数字字符串怎样用，大小写变换的依据是

user: user-0
content: 大小写转换的依据就是后面输入的数字，如果输入1那就是将字符数字中c［1］位转换大小写

user: user-3
content: 或许是对题目的理解有误。这个事儿很常见。

user: user-0
content: 但是我的代码执行结果跟我的预期也有出入，我想知道为什么

user: user-3
content: 那两个函数是处理字符串的，不是处理字符的，用在这里不合适。

user: user-0
content: 但是我如果取地址的话，不应该也相当于字符串吗？
user-0 提问: 请问这段代码应该怎么理解？（c语言初学者）

回复:
user: user-1
content: “给定一个小点的输入，完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门！递归函数关注以下几个因素·退出条件·参数有哪些·返回值是什么·局部变量有哪些·全局变量有哪些·何时输出·会不会导致堆栈溢出

user: user-2
content: 递归求斐波那契数列吧
user-0 提问: 求解：c语言矩阵置。急急！求求！谢谢！

回复:
user: user-0
content: 将25行printf("% 3d ",num1[i][j]);改成了printf("   %d",num1[i][j]);或者printf("%4d",num1[i][j]);就可以了；字符里面的空格运用不当。

user: user-1
content: %4d就占4字節啦

user: user-0
content: 改成4运行的时候，第一列占4个宽度，第二、三列占5个宽度。

user: user-0
content: 已解决，谢谢。

user: user-2
content: 所以你在格式串里写空格的目的是什么？

user: user-0
content: 对空格的运用不准确，已修改，谢谢。
user-0 提问: 求助,C语言关于如何得到数组存放元素的个数

回复:
user: user-1
content: 你自己用常量记下数组的大小就可以了：    const int len1=3, len2=3;    int num1[len1]={1,2,3};    int num2[len2]={1,2,3};C因为是基础语言，很多语法糖都省略了，所以不是很适合用于开发应用软件，尤其是事务处理型软件，比如说连函数重载都不支持，不是做不到，而是为了追求简单灵活。一个C编译器，最小可以只用不到100KB源码实现，而C++编译器，比如gcc，光是前端语法解析部分，parser.c，就有12MB大小~

user: user-2
content: 思维习惯不对呀，C里面的数组你就永远不应该企图“获取”它的大小，因为它的大小是由程序员主观意志决定的。换句话说是先有大小后有数组的。这么说吧，假如是上帝创造了人，那么上帝怎么可能需要数一数才知道人有几个手指头呢？

user: user-0
content: 谢谢回复，我才开始学习C语言，感谢提醒。

user: user-3
content: C语言不象java,c#这些， 数组可以通过length属性获取个数，在C中，静态分配的数组，比如: int num1[3], 可以通过 sizeof(num1)/sizeof(num1[0])  获取数组的大小动态分配的数组，比如: int* num2; num2=new int[1000]; 则程序需要自己记住分配的大小至于为什么while... 有可能得不到正确的结果， 是因为，在内存中，1,2,3  后面有可能是任何其它数据，比如：1,2,3, 0   这种可以正确获得大小，但，如果是其它，就会出错。

user: user-0
content: 谢谢回复，我后来了解到num[3]并不是直接是的给了3个位置存放数字，就算打印num[3],num[4]也会出现结果的，但是我并不知道为什么会出现这种情况。

user: user-3
content: 建议从一些基础的了解开始， 比如 blog.csdn.net/weixin_55305220/article/details/116665000   当然， 适当的了解点 系统结构，数据结构 也会些帮助，网上也有很多这些资料， 加油！
user-0 提问: result = (unsigned char*)calloc(length, 1); 的calloc使用困惑

回复:
user: user-1
content: 函數調用改爲other_function(&resule)，函數體內也做相應修改，調用free前要判斷指針是否爲空。

user: user-2
content: 没有问题啊，如果有问题那就是其他的问题，不是申请内存的问题。所以您没有问到点儿上。
user-0 提问: 求助，c语言程序运行超时

回复:
user: user-1
content: 简单一点： double funcos(double e, double x) {   double f, i, v, xx, y;    for (f = i = 2, xx = x * x, x = -xx, y = 1; ; i += 2)   {     y += v = x / f, f *= (i + 1) * (i + 2), x *= -xx;     if (abs(v) < e) break;   }    return y; }

user: user-2
content: #include <stdio.h> #include <math.h> double funcos( double e, double x ); int main() {     double e, x; scanf("%lf %lf", &e, &x);     printf("cos(%.2f) = %.6f\n", x, funcos(e, x));     return 0; } double funcos(double e,double x) {     int i=2,j,t=1;     double a,sum=0;     if(x<e)         sum=x;     a=x;     while(a>e||a<(-e))     {         sum=sum+a;         for(j=1;j<=i;j++)             t=t*j;         a=-(pow(x,i)/j);         i=i+2;         return sum;     }     return sum;   }  注意while循环用法，你的代码while无限循环了，用break、continue、return退出
user-0 提问: 新人求大神解答呀 ，这段代码到底哪里错了

回复:
user: user-1
content: if（b==0 && a>=1）时即可

user: user-2
content: 首先是if行末尾有个多余的分号。

user: user-0
content: 大神 请指点下还有啥地方是错的吧 或者逻辑哪里不对 感谢了
user-0 提问: 求求大佬帮忙，为啥读文件读不对

回复:
user: user-1
content: 程序中存在的问题：ReadLine()里面又调用 CountLine(), 程序会比较慢string.find()  返回的是 size_t , -1 表示没找到，C语言中， 只要不是0就返回true, 所以，程序的判断是否会有问题？另外，if (a.find("link"&&"code")),  "link"&&"code" 表示的是？ 字符串连接是用 "link" + "code",  还是应该是:?        if (a.find("link")!=string::npos && a.find("code")!=string::npos)如果test.txt里面是Link , Code, 代码也应该做相应大小写改动。

user: user-2
content: 不要使用 while (条件) 更不要使用 while (组合条件) 要使用 while (1) {  if (条件1) break;  //...  if (条件2) continue;  //...  if (条件3) return;  //... } 因为前两种写法在语言表达意思的层面上有二义性，只有第三种才忠实反映了程序流的实际情况。 典型如： 下面两段的语义都是当文件未结束时读字符 while (!feof(f)) {  a=fgetc(f);  //...  b=fgetc(f);//可能此时已经feof了！  //... } 而这样写就没有问题： while (1) {  a=fgetc(f);  if (feof(f)) break;  //...  b=fgetc(f);  if (feof(f)) break;  //... } 类似的例子还可以举很多。

user: user-3
content: “只能读取第二个以后的”，什么意思？上面的代码运行了，可以完整显示 test.txt 的内容啊；内容再复制一份，照样能显示所有的。
user-0 提问: 将一个数拷贝到字符数组中，结果多出六个f,是怎么回事？

回复:
user: user-1
content: 因为类型提升，ca[0]被作为int传入，char默认是有符号数，所以0x83被符号扩展为0xffffff83。可以：sprintf_s(str, sizeof(str), "%x", (unsigned char)ca[0]);

user: user-0
content: 谢谢

user: user-0
content: 都是字符型拷贝到字符型，类型怎么会提升？

user: user-1
content: 传入sprintf_s的参数做了类型提升，参考printf、sprintf的说明：https://en.cppreference.com/w/cpp/io/c/fprintf

user: user-2
content: 不是多出，是0x66按照字符理解就是'f'
user-0 提问: 图形打印 求助各位大佬帮帮忙解答一下

回复:
user: user-1
content: 思路如下:双重for循环,j表示次数,j小于等于i，i小于等于n,然后在j循环李打印i就行了，记得换行

user: user-2
content: 思路，就是循环啊，一行行的是外循环，行内的几个字符是内循环；其它的就是输入和输出函数。

user: user-0
content: 能不能写一下，不太明白

user: user-0
content: 麻烦说说设计思路
user-0 提问: 我想问一下，a, *a, a[0]这种，为什么不输出他指向的内存单元，而都是输出地址

回复:
user: user-1
content: CPU只认地址不认标识符，CPU根据地址访问与其建立映射关系的物理内存，读写数据。你写得源代码中的一切变量名、函数名等等标识符，都仅仅只是你自己的设想。你的源代码要变成可执行程序，最终要经过编译器编译，将它翻译成CPU可识别的指令流程编译器中的符号表数据结构会收集你源代码中的标识符，然后把它们转换成相对进程基址的偏移地址可执行文件相当于是一个进程的内存模板，它描述了进程的内存分布和初始值所有你源代码中的变量名在可执行程序中都是一个地址

user: user-2
content: 子曰：吾日！三省吾身～～～

user: user-3
content: 子曰，思而不学则殆。
user-0 提问: 如果全部及格则输出没有不及格的科目，应该怎么改，请教大佬，部分程序如下

回复:
user: user-1
content: 一般是增加个变量吧，查询前初始化为 0，后面查询到个不及格就 +1，最后看是否为 0 ；也可用逻辑类型的。
user-0 提问: 同样的C代码，不同的编译器生成的汇编代码是不同的吗？

回复:
user: user-1
content: 對200多字節都覺得誇張的話改用匯編吧。

user: user-2
content: 即便同一个编译器，不同编译选项，生成的代码也不能保证相同。至于楼主的代码，只是debug版本，如果是release版本，至少a, b都会被优化掉。

user: user-3
content: 现代计算机平台上，两百多字节真不算大，咱不能拿单片机和1980年的计算机来与现代比较。

user: user-0
content: C语言不是简洁快速体积小吗？怎么没事还要搞掉那么多栈空间？
user-0 提问: 第一个判断能计算并排序，但是第二个往后就排序不了了，都是套用的不知道为什么后面的排序不了，求大神指点，部分程序如下

回复:
user: user-1
content: 应该是 for(j=41; j<81-i+41; j++)  吧，要加上首单元序号的，上面的是 0 就可以不加了。

user: user-0
content: 感谢
user-0 提问: 用for循环结构变成死循环了，不知道怎么解决，求大神指点，部分程序如下

回复:
user: user-1
content: if(j=2) 应该是 if(j==2) 吧，下面的类似；j=2 是赋值了，j 跳不出去的。

user: user-0
content: 谢谢
user-0 提问: 为什么在函数里sizeof（a）（a是数组）是8而不是4

回复:
user: user-1
content: 你但凡不那么细心地切图，就能看见上方某处有x64或amd64字样。

user: user-0
content: 我去看看

user: user-0
content: 这是我的图片
user-0 提问: 求助大神！！！！！！

回复:
user: user-1
content: float Fscore(struct Student stu…) 這個結構名首字母是大寫 函數應該有個return

user: user-2
content: 应该是 stu[i].sum += stu[i].score[j]; 吧

user: user-3
content: 但楼主自己说的错误应该来源于大小写不分。
user-0 提问: 求大佬帮助   ！！！！

回复:
user: user-1
content: 把struct test 改成： struct test {unsigned short a :4;unsigned short b :2;unsigned short c :4;unsigned short d :6;};整个struct test占用2个字节， 它每个字段在内存中的位置是： 15 ... .. .... ........ 0ddddddccccbbaaaa注意低位在右边 av->a = 0xf;test: 000....01111 (二进制)av->b = 0x0;test: 不变av->c = 0xf;test: 00...1111001111av->d = 0xf;test: 0011 1111 1100 11113 f c f (16进制)最后输出的时候，是从低地址输出的，所以是cf 3f

user: user-1
content: 有可能是因为一些填充的原因，在我的机器上， printf("sizeof = %d\n", sizeof(struct test))打印的是4， 而不是2建议把程序改成:struct test{        unsigned short a :4;        unsigned short b :2;        unsigned short c :4;        unsigned short d :6;};

user: user-0
content: 谢谢您的回答，不知道您试过没，结果是一样的， 不知道有一点您有没有注意到，这是bit赋值，添加类型应该没意义吧！

user: user-1
content: 你好，如果我没记错的话，unsigned a :4 这里的unsigned 定义了一个unsigned int, struct test最后是 4个字节， 如果改成 unsigned short, struct test 则为2个字节，所以还是有影响的，的确， 程序的最后输出有点晕，可能跟编译器的存放字节顺序有关。。。

user: user-2
content: Android-Unity一起交流学习啊

user: user-3
content: 位序的问题啊，这个，得看书上怎么说的了，全是规定，搞不好不同平台还不一样

user: user-0
content: 位序无非是大端小端，我的平台是小端，不应该出现字节反转的现象啊
user-0 提问: 请教大神Dev-C++报错了

回复:
user: user-1
content: 这个有点难度看不懂了……

user: user-2
content: Android-Unity一起交流学习啊

user: user-3
content: 上面提示了啊，Netbios 没定义，大概是少了相应的 .h 文件

user: user-0
content: @是#include "nb30.h" #pragma comment(lib, "netapi32.lib")
user-0 提问: 请教，在vs用x64能启动我的代码，用x86不能。

回复:
user: user-0
content: 我查到原因了，卡巴斯基误报。

user: user-1
content: 选择了新模式后，要重新编译创建吧

user: user-0
content: 请问如何重新编译，我只知道按F5。
user-0 提问: 一道编程题不知道为什么输出只能是整型，如何改动

回复:
user: user-1
content: i和c沒有初始化

user: user-2
content: 循环里加个 printf() 语句，打印每次的 a,b,c 看看就知道了；不知题意，应该是你计算逻辑错了。
user-0 提问: 为啥VS2022 scanf函数用不了，求大佬帮助😘

回复:
user: user-1
content: 链接选项里加入legacy_stdio_definitions.lib

user: user-0
content: 前辈啊

user: user-2
content: 看编译输出提示，是不是让你用scanf_s代替？你可以在项目->属性->C/C++->预处理器->预处理器定义中添加_CRT_SECURE_NO_WARNINGS
user-0 提问: c语言循环练习，小白求帮助

回复:
user: user-1
content: #include <stdio.h>double Power(double x,int n); double Power(double x,int n){    if(x == 0 && n < 0)    {        printf("参数不正确\n");        return 0;    }    else    {        double y = x;        if(n > 0)        {            while (--n > 0)            {                x*=y;            }        }        else        {             while (++n < 0)            {                x*=y;            }            x = 1/x;        }    }    return x;} int main(int argc, char const *argv[]){   double x;   int n;   scanf("%lg%d",&x,&n);   printf("%.8g\n",Power(x,n));}
user-0 提问: 一个函数动态分配一个数组空间为什么要使用指向指针的指针才能实现？

回复:
user: user-1
content: 至于你说的为什么要用指针的指针实现，如果不转这一道函数的话是可以直接用malloc的。涉及到指针的参数传递一级指针的地址就必须要二级指针才能接收

user: user-1
content: malloc和free就是向程序员手动向堆区申请和释放空间，了解堆区和栈区的区别吗？

user: user-2
content: 我不知道，我作业也是这个，求大佬解答！！

user: user-1
content: 建议自己先百度一下，这是一个程序员的基本素质
user-0 提问: 我看老师讲的while(ture)我的怎么报错 while（1）也不行 求求告诉我

回复:
user: user-1
content: true 不是 ture；while(1) 应该可以吧，除非又有其它的笔误

user: user-0
content: package Demo; import java.util.Random;import java.util.Scanner; public class 猜数游戏 { public static void main(String[] args) {     // TODO 自动生成的方法存根  //        生成1-100随机数            Random r=new Random();            int number=r.nextInt(100)+1;            Scanner sc=new Scanner(System.in);            System.out.println("请输入猜测数字：");            int luck=sc.nextInt();     while(ture){           if(luck>number){               System.out.println("猜大了");           }else if(luck<number){               System.out.println("猜小了");           }else{               System.out.println("恭喜您 猜对了 请买单~~~");               break;           }                  }                    }  }
user-0 提问: 求助float怎么转变成u8啊

回复:
user: user-1
content: 如果数据float data的取值范围在0.0f～255.0f，直接u8 b=(u8)data; 如果数据float data的取值范围在0.0f～65535.0f，u8 b0=((unsigned short)data)%256;u8 b1=((unsigned short)data)/256;以此类推
user-0 提问: 运行程序时崩溃，显示"program received signal sigsegv，segmentation fault"怎么解决

回复:
user: user-1
content: int n=0;   int a[n]; 的问题？vc 是不支持的，用 DEV-C 看，试了 3个 或 4个数据，没有问题。

user: user-0
content: 我是用的dev写的，好像n输入很小的数是没问题的，但是我输入n=10就出问题了，调试的时候for循环进行到i=9就显示这个错误崩溃了
user-0 提问: 萌新小白求解c语言问题

回复:
user: user-1
content: 所谓修改删除文件a某位置的内容，其实是读打开文件a，再将‘a中修改删除位置之前的内容＋修改删除的内容＋a中修改删除位置之后的内容’保存到文件b，关闭文件a，删除文件a，将文件b改名为与之前文件a相同的名字，仅此而已。▼  http://bbs.csdn.net/topics/391975224
user-0 提问: 对数组指针进行解引用，得到数组的地址还是数组首元素的地址呢？

回复:
user: user-1
content: 既然你把从p到*p称之为退化， 那么很自然你也可以把从*p到&*p称为进化嘛， 进化了就变大了不是很正常么？ 因为变量p的声明中是有5存在的，编译器牢记着这个，所以不是偏偏，而是顺理成章的5 。
user-0 提问: 学生求助11111111111

回复:
user: user-1
content: #include <stdio.h> int suma,sumb; void func(int x){   if(x>0)  suma+=x;   else if(x<0 )  sumb++; } int main(){   printf("输入整数:\n");   int x;   while(scanf("%d",&x)){     if(x==999)  break;     func(x);   }   printf("%d %d",suma,sumb);   return 0; }  不知道是不是这个意思，没做过这种题（）
user-0 提问: 性能测试， 进程cpu占用率上不去， 维持在30%左右， 如何分析？

回复:
user: user-1
content: 你也说了，单线程工作，也就是每个时刻只占用单核。然后现代的系统怕CPU局部过热，所以使用的单核具体是哪一个物理核这件事是一直在变化的，以维持温度均匀。这就是上不去的原因。在进程级并发的情况下，只要保证你的并发服务进程的数量超过处理器的核数，就能上去了。
user-0 提问: c语言关于数组输出问题

回复:
user: user-1
content: gets_s(c, 9); 试试？ 这个函数对字符、字符串类要求跟随有最大长度参数的。

user: user-1
content: 可能是没有把数组所有单元都置 0 而只是首个

user: user-0
content: 不是，我试了一遍，我输入8个字符最后就有个问号，输入其他个数的字符就不会

user: user-0
content: 我是一个大一小白，刚学c语言
user-0 提问: 为什么没有进行操作，但是变量的值自己在变化。万分感谢！

回复:
user: user-1
content: count++递增了count的值，count怎么能不变呢

user: user-2
content: 还没执行到那就停下来了，在停着的时间里，count 还在变化；直接运行应该是没问题的。

user: user-1
content: 你怎么确定没有执行，count 值变化代表程序在运行

user: user-2
content: 楼主上面图示的和文字叙述的很清楚啊，执行到 &lt;font color=blue&gt;int i=3;&lt;/font&gt; 就停下来了，没再继续；然后，偶尔地，光标移动到 count 上，就会提示当前的 count 值，这个值慢慢地就会变；如果 count 加到查看里，那里的内容是不变的，但删除了重加，就是变化后的值；count 实际是变了的，再运行下去，后面程序会出错，因为大于 1 的是无效的。

user: user-2
content: 挺好奇的，想着也不会是无中生有，就去下载了个 gcc 来在虚拟机上安装了，把上面的代码敲了进去，折腾了一番，好像还真是哦。用 windbg 打开生成的 exe 程序文件，是正常的；所以，要么这 gcc 的调试功能有问题，要么就是哪里设置有不对，我对 gcc 也不熟，所以无从解决了，主要是它不能和 vs 似的可以切换到汇编码状态，对 count 内存进行写入断点设置，这样可以抓住哪里向 count 写入的。另外，上面的代码是有问题的，main() 里的 if() 行最后不应有大括号，i++; 语句应该是和 if() 语句平齐的，再下来的 for() 的后面就多了一个大括号。

user: user-0
content: 好的，谢谢，错误的地方还没改，就是这个count乱跳导致无法去调试。

user: user-0
content: 我看了一下，我截图完之后已经改掉了。谢谢
user-0 提问: 为什么必须要换行才能用EOF停止程序

回复:
user: user-1
content: scanf（）这个函数是有返回值的，返回值是它接收的格式化字符的个数（%d算一个）“ctrl + z”可以认为是取消输入，如果不输入，scanf 就没有接收值，编译器就会返回  -1循环里的 -1 != -1 判断为假就会退出循环

user: user-2
content: while((scanf("%d",&a)) == 1)
user-0 提问: 小白求解，为什么不输出结果呀？

回复:
user: user-1
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。提醒：再牛×的老师也无法代替学生自己领悟和上厕所！单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。
user-0 提问: 求助各路大佬，for循环判断后不执行for下{}中的语句直接开始循环，循环完才往{}中走

回复:
user: user-1
content: for() 那行最后多了个分号 ; 前面好像有贴有类似问题的

user: user-0
content: 谢谢大佬，现在行了。我还专门去人家博客贴了一个同样的来运行，也是一样的结果就不知所以然了哈哈
user-0 提问: 求大佬带带我这个初学者

回复:
user: user-1
content: https://jingyan.baidu.com/article/6d704a134d9c4e28da51ca4d.html

user: user-2
content: https://blog.csdn.net/goldenhawking/article/details/119845838 如果是VC应该要在项目属性设置里配置C++/ include ，Link/Library 等属性。
user-0 提问: 这道题怎么实现输出c位小数，还有题目中说的数据陷阱是什么

回复:
user: user-1
content: #include <stdio.h>  int main(int argc, char * argv[]) {     int a = 0, b = 0, c = 0, i = 0;          scanf("%d,%d,%d",&a,&b,&c);     printf ("\n%d/%d=%.14lf\n",a,b,1.0*a/b);     if (b==0)         return 0;     int array[103];     do      {         int d = a / b;         int e = a % b;         array[i] = d;         a = e;         a *=10;             }while (i++ <= c+1);          if (array[c+1]>=5)     {         i = c;         do{             ++array[i];             --i;         }while (i>=0 && !array[i]);     }          for (i = 0; i<=c;++i)     {         printf ("%d",array[i]);         if (!i)             putchar('.');     }          return 0; }

user: user-2
content: 呵呵请注意 c<=100   double哪儿来的那么高的精度？

user: user-3
content: 題目并不是要自己做除法函數，儘管題目寫著c<=100，實際并不要求考慮c是否超double精度的問題。

user: user-2
content: 题目中的表达不是输出c位小数，而是精确到小数点后c位。

user: user-3
content: 陷阱，估计说的是（double）

user: user-3
content: char fmt[8] = {0};  sprintf(fmt, "%%.%df"，c); printf(fmt, (double)a / b);
user-0 提问: 恳请各位大佬帮我看看这该怎么处理？

回复:
user: user-1
content: 那两个白色的a应该就是输入输出吧，程序应该都执行完了。

user: user-2
content: 输入 a 运行程序？你的源文件是 1.c，生成的执行程序通常是 1.exe 吧，输入一般是输入 1 或 1.exe 运行它。
user-0 提问: #include
int main() {
	int x = 1, y = 0;
	printf("%d\n",x-->(x + y));

}

回复:
user: user-1
content: 求值顺序的问题，先求值x---还是x+y未定义

user: user-2

user: user-3
content: 请截个图证明一下dev显示是1

user: user-2
content: 看看我的图,我都有点蒙了

user: user-3
content: 的确无法解释，懵C中。

user: user-2
content: 我已经知道答案了,1&gt;(0+0),x到了大于号右边已经变成0了
user-0 提问: 【C语言】函数递归的简单理解 &画图理解递归过程_[初阶篇 _学习专用]

回复:
user: user-1
content: “给定一个小点的输入，完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门！递归函数关注以下几个因素·退出条件·参数有哪些·返回值是什么·局部变量有哪些·全局变量有哪些·何时输出·会不会导致堆栈溢出
user-0 提问: 新手小白求问（赋值从指针生成整数没有强制转换）的警告该如何解决

回复:
user: user-1
content: 我觉得你想的，和编译器对你源码的理解可能不一样。你是想把 "YES" 或 “NO" 字符串放进 a[i] 里吧，编译器应该是以为你要放的是指针；这样的话，因为只是 ”YES“ 和 "NO" 两个内容，可以用简单的数据标记代替它，放入和取出显示时进行转换，只定义 a[n] 就可以了；一定要把字符串复制进去，首先，空间要保证够或进行检查截断，其次恐怕得用字符串复制函数。

user: user-0
content: 谢谢您的解答，给我提供了一种编译思路，十分感谢
user-0 提问: 不带别名的struct应该怎么样引用(cgo)

回复:
user: user-0

user: user-1
content: typedef  struct  A{...}B; 引用它时要么用struct A  xxx要么用B xxx不要混着来。

user: user-1
content: 你得注意到第一个你说正常的那个其实从未使用带_t的东西。

user: user-1
content: 去掉带_t的你称为别名的东西的前面的struct就好。

user: user-0
content: 按照您的说法改动之后，报错变了
user-0 提问: 大佬们救救，测试没问题，提交答案错误，hlep！！！

回复:
user: user-1
content: if (*p[j]>*p[j+1])应改为if (strcmp(p[j]>p[j+1])>0)

user: user-0
content: 提交编译错误了。。。

user: user-0
content: 不是应该是strcmp（p[j],p[j+1])吗

user: user-1
content: 对，我刚才&gt;忘改为,了
user-0 提问: 求大佬解答一下结果不对

回复:
user: user-1
content: 每个 i 循环，k=0;；min=a[0][k]; 要后移到循环外，同时 y=0; ；break; 应在 if 里     for(i=0;i<m;i++)//筛选开始     {         k = 0;         for(j=0;j<n;j++)//寻找每行最大值         {               if(a[i][k]<a[i][j])              {                  k=j;                  a[i][k]=a[i][j];              }              max=a[i][k];         }         min=a[0][k];         y = 0;         for(z=0;z<n;z++)         {             if(a[z][k]<min)             {                 min=a[z][k];                 y=z;             }         }         if(min==max)         {             printf("该数组a[%d][%d]有一个鞍点是%4d",y,k,a[y][k]);             printf("\n");             o++;             break;         }     }

user: user-0
content: 谢谢啦，大佬可以给个关注位置吗？
user-0 提问: 调试和运行结果不一样

回复:
user: user-1
content: srand() 随机数初始化，time() 返回以秒为单位，这样程序运行时，每次的 srand() 几乎每次都一样，因为循环总共才 9次，跨秒的可能性极小，即使侥幸跨秒，数组里也只会有两不同的数，不会有整体随机的效果（也难个与个都不同）。

user: user-0
content: 讲解很详细明白了谢谢啦

user: user-1
content: srand(); 应该挪到循环圈外面吧，即 for(i) 之前

user: user-0
content: 谢谢已经解决了 ，不过这个原因是什么呢？烦请解释一下可以吗？
user-0 提问: 请问这个代码为什么编译的时候没有输出？跪谢了

回复:
user: user-1
content: 通过简单的变换得出，要使两个表达式同时成立，必须是x比z大10。如x=10,y=0,z=0，或者z为负数，但是循环里y和z都是从1开始的，所以永远找不到能使两个表达式同时成立的数值，自然也就不会运行输出语句了。

user: user-2
content: x+y+z==10 3x+2y+ z==30 這2個表達式不可能同時成立。
user-0 提问: 谁能告诉我，为什么会这样啊？

回复:
user: user-1
content: 这里的C99特性有两点一是随处定义变量二是用变量定义数组大小现在你愉快地使用了这两个特性，换个开发环境不让用了还不明说，就会很懵

user: user-1
content: 第一，scanf里面不要带转义字符第二，使用C99特性是有风险的，很可能和你以后考试的环境不符第三，数组下标合法值在0到j-1之间，而且你得写个循环来输入才行

user: user-0
content: 为什么scanf里不能带\n，书上都是这么写的

user: user-1
content: 要不您去找找书？

user: user-2
content: 你可能是看错了，一般是printf打印里面添加\n换行符，scanf带\n会存在有一个数据缓存区的问题，scanf遇到换行或者空格就会停止输入
user-0 提问: 为什么从指定文件取出来结构数组只有第一列是对的，其它列读的都好像是地址。

回复:
user: user-1
content: printf("Text_Chinese:%s image:%p W:%d h:%d\n",        lv_btn_image1[i].btn_text_Chinese , lv_btn_image1[i].btn_image, lv_btn_image1[i].btn_witch, lv_btn_image1[i].btn_hietch);
user-0 提问: C语言新人求大佬帮我看一下这个代码的问题

回复:
user: user-1
content: 这道题还是有些难度的， 上面的程序有可能在： 当m<k时， 存在问题。下面程序抛砖引玉，还请大伙指正。  #include <stdio.h>  int min(int a, int b) {     if(a<b) {         return a;     }     return b; } unsigned long long cnt1(int m, int n, int k) {     if(k>n) {         return 0;     }      int i;     unsigned long long cnt = 1;      int x = min(k,m);     for(i=0;i<x;i++) {         cnt = cnt * (n-i);     }     for(i=k;i<m;i++) {         cnt = cnt * (n - k + 1);     }     return cnt; }  int main() {     int m, n, k;     scanf("%d %d %d", &m, &n, &k);      unsigned long long sum = cnt1(m,n,k);     if (sum==0) {         printf("Input Error");     }     else {         printf("%llu", sum);     }     return 0; } ```c    ```
user-0 提问: 新人C语言求助，程序没报错，但是运行不了

回复:
user: user-1
content: 两 for 循环里的 a 或 b 都应该是大写的 A 或 B 吧，除了 int 语句里的：     for (int A=a; A != 0; A=A / 10)     {         e = A % 10;         f = f * 10 + e;     }

user: user-2
content: a = a / 10
user-0 提问: 没有这两个为什么运行是会一直显示error呢?

回复:
user: user-1
content: 因为你在每次输入完数字之后都会输入一个回车键，而回车键也是一个字符（‘\n’），会被scanf（“%c”）读取，而‘\n’ 属于小于'0' || 大于‘9’的范围，所以会输出“error”加getchar函数，或者%*c都是不可取的，得到输出结果应该不是博主想要的建议在第一个if后边加 &&p！=‘\n’

user: user-0
content: 为什么加getchar函数，或者%*c最后结果是我想要的呢

user: user-2
content: 在每个最后不带\n的printf后面加fflush(stdout);在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; //自动跳过一个或多个空格或Tab字符或回车换行，读取下一个字符。
user-0 提问: 请问这个代码为什么没法运行

回复:
user: user-1
content: 我按照你写的能运行啊

user: user-0
content: 刚才查了一会，是需要在name后加40，提高它的准确性和安全性，不知道为啥你的可以运行，我的加了这个40后才行

user: user-1
content: 你代码里面name后面加了40 啊

user: user-0
content: 是在第九行那的name后加
user-0 提问: 运行问题，求大佬解析

回复:
user: user-1
content: 你试试在在输入的后面加上长度，比如scanf_s("%s",first_name,40);

user: user-0
content: 可以也，这是什么原理？

user: user-1
content: 好像是scanf_s就得加这个长度，如果是scanf就不用
user-0 提问: 解一元二次方程，怎么总是显示有两个相等实根啊，求助

回复:
user: user-1

user: user-1
content: 没有注释将就看一下

user: user-0
content: 谢了

user: user-2
content: 输入数据没带逗号造成输入错误。代码里要求逗号分隔输入数据的。

user: user-0
content: 谢谢了，是这样的
user-0 提问: c语言有关字符串数据库的问题

回复:
user: user-1
content: 结束符是'\0'而不是'/0'所以很难理解为什么能通过编译。

user: user-2
content: 修改后后面的乱码消失了，但是输出结果是原s内容，没有显示d之前的字符串

user: user-1
content: 编译出错信息都不看的么？ d两边应该是单引号 malloc(strlen(s)+1) 这里和p没啥关系

user: user-2
content: 好了！感谢大佬
user-0 提问: 我想请问一下问出现什么问题了

回复:
user: user-1
content: fab 函数改为 fabs 函数，没有 fab 函数吧。以后发图片，建议用截图的方式，手机拍照可能会拍不清楚，QQ 截图快捷键：Ctrl + Alt + A

user: user-2
content: fabs吧

user: user-3
content: undefined reference to 'fab'你的fab没有定义

user: user-4
content: 下面的提示，第一行说 fab 不知道是啥，我看了，也不知道是什么函数
user-0 提问: 大一新生关于最小公倍数问题的不理解

回复:
user: user-1
content: OJ是不是不能手工输入？scanf("%d%d",&a,&b)!=EOF

user: user-0
content: 谢谢，已解决，穷举法过于费力，已经改为辗转相除法，谢谢你的回答！
user-0 提问: 大一新生刚学c语言遇到问题了，问问题求解答

回复:
user: user-0
content: 谢谢各位！

user: user-1
content: printf("%d+%d=%d\n",a,b,c);这样是会输出a的值加b的值等于c的值。如果像单纯显示a，b的值是多少的话，直接printf("%d %d",a,b);

user: user-2
content: c也可以不需要，直接用a + b、a - b

user: user-3
content: printf("%d+%d=%d\n",a,b,c);  // 这样的吧
user-0 提问: C语言 日期推算：输入当前日期 输出两天后的日期

回复:
user: user-1
content: yday = month==2 ? ((year%400==0||year%4==0&&year%100!=0)+28) : ((int)fabs(month-7.5)%2 ? 30 : 31) ;

user: user-0
content: 很有用，感谢作者帮助！

user: user-0
content: 很简洁的代码，太厉害了
user-0 提问: 学习C语言的新手可以在哪里找C语言的练习题

回复:
user: user-1
content: 国家出台的：终身教育平台里面的教程全部免费，看看教学视频跟着做，做好课堂笔记，不懂的就去网上查资料，实在找不到，论坛这么多大神总会有比较热心的大佬点拨一下的；又不是考试，没必要去找练习册；多在论坛看看别人写的东西，看看别人的评论有时候就会有答案了

user: user-2
content: 搜索一下OJ
user-0 提问: 求大佬们帮忙                     

回复:
user: user-1
content: （‘a’+'b）2=(97+98)×2=390ab=6×3.4=20.4c/d=10.0÷5=2.0390+20.4-2.0=408.4double类型

user: user-2
content: 困难在哪里？
user-0 提问: 大一新生，学校教python，自学c语言，请问为什么不对

回复:
user: user-1
content: #include <stdio.h> int main (){    int a = 1;    int b;    scanf ("%d",&b);    printf ("%d",a); while (a<b-1)//先循环后判断 {     a=a+2;     printf (" %d",a); } system ("pause"); return 0;  }你看看，这样不就行了，没必要判断他的奇数还是偶数

user: user-0
content: 好的谢谢，想错了。。。

user: user-2
content: if ( m % 2 == 1) 吧，不过没意义；else 里的 while (m <= n) 吧，不能写成 =<

user: user-0
content: 应该就是n吧 后面你说的是对的，我后来自己注意到了，改成这样了 #include &lt;stdio.h&gt; int main() { 	int n; 	int m = 1; 	scanf("%d",&n); 	if ( n % 2 == 1){         while(m &lt;= n){             printf("%d",m);             m += 2;         } 		}else{ 		while(m &lt;= n){ 			printf("%d",m); 			m = m + 2; 		} 	 	} 	return 0; } 但五分只得了2分，说我“检查程序输出格式”

user: user-3
content: 既然两块里面内容一样，那为什么还要写两遍？ 另外你的输出格式不对，没有空格。

user: user-0
content: 确实内容一样，当时想错了，但我不太知道哪里没有空格
user-0 提问: 为什么我运行不出想达到的效果，求解大神

回复:
user: user-1
content: scanf("%d",&x);while 循环中也要有 scanfif(x == 34) #include  <stdio.h> int  main() {     int  a=34;     int   x;     int  n=0;     printf("请输入猜的数字   ");     scanf("%d",&x);     while  (x!=34)     {              n++;         if(x<34)         {             printf("小了\n");          }         else  {printf("大了\n");                                       }         scanf("%d",&x);     }      if   (x==34)     {         printf("正确\n");         n++;      }     printf("一共猜测次数为  %d\n",n);      return  0;  }

user: user-2
content: if   (x==34)

user: user-3
content: while(x!=34) 等於34時不會進去while

user: user-3
content: 看錯啦
user-0 提问: 请教各位大神C语言中如何编写&&&&

回复:
user: user-1
content: 用puts少4个字符~~~

user: user-2
content: #include <stdio.h> int main() {  printf( "****\n" "****\n" "****\n" "\n" "\n" "\n" "&&&&&&\n" " &&&&&&\n" "  &&&&&&\n"  );  return 0; }

user: user-3
content: 没懂什么意思
user-0 提问: c语言中给变量赋的初值不同有什么影响

回复:
user: user-1
content: 看给谁赋值的。局部变量？ 栈区。char *str=NULL; 和 char *str="123"；。因为要存"123"这个常量字符串，编译的固件会比较大。也有可能影响业务逻辑。全局变量? 全局变量初始化为0 会影响这个变量是放到 数据段还是bss段。....

user: user-2
content: 没啥影响。
user-0 提问: 萌新应该怎样学习C语言

回复:
user: user-1
content: C语言教程（附带C语言100例）  http://download.csdn.net/detail/zhao4zhong1/8830817

user: user-2
content: 一般情况下，理论强的人，动手不行。实践强的人，动脑不行。我们要理论和实践相结合。既不动手，也不动脑。 =====就是用起来，理论+实践。去github找点简单的项目，看懂了。先模仿，在超越。？
user-0 提问: 【Linux】不得不掌握的开发工具 —— vim

回复:
user: user-1
content: TSEPro11_Setup.exe 百万军中取上将首级如探囊取物， 千万行里改关键源码在弹指瞬间。 功能超强的程序编辑器！  https://blog.csdn.net/zhao4zhong1/article/details/126596717
user-0 提问: 运行卡死了，求助zsbd

回复:
user: user-1
content: 你觉得好奇，于是决定租一块地，种四颗double菜尝试一下。地主（系统）租给你一块地，在地头打了个桩子上面写着p_d然后你看看你都干了啥？你种地你收获这都没啥说的。你悄悄把桩子挪了个位置，然后企图把地还给地主的时候，地主揍了你。还觉得冤吗，亲？

user: user-1
content: 如果你在剧本里对还地的情节避而不谈，当然我们就不会看到你卡住的遭遇，但仅仅是没看到，你懂的。

user: user-0
content: 哈哈哈哈，很生动

user: user-0
content: 那如果我只是把桩子挪了个位置，会产生哪些影响呢

user: user-2
content: p_d都+=1了，就不能再delete[] p_d了

user: user-0
content: 可以详细解释下吗，我刚学这个看不懂谢谢

user: user-2
content: new返回的内容在delete的时候不能变，您应该另外用一个变量比如p_d_old记住p_d刚刚new返回的值，delete[] p_d_old而不能delete[] p_d，因为你已经使用p_d+=1改动了p_d的值。

user: user-0
content: 谢谢
user-0 提问: 为什么这个while 循环只进行了一次？

回复:
user: user-1
content: k=0

user: user-2
content: while(scanf("%d",&num))把数字输入完成后，最后再输入一个非数字字符作为结束。    for(j=0;j<n;j++)  //不是j<=n    {        printf("% d",list[j]);        sum += list[j] ;    }

user: user-3
content: while((scanf("%d",&num)!=EOF)) 显示偶数的循环，应该是 list[j]

user: user-0
content: 谢谢！！

user: user-4
content: scanf("%d",&num)

user: user-0
content: 谢谢，但是我试了一下还是循环不了

user: user-5
content: 有没有一种可能，除此之外还有其他错误？
user-0 提问: 这个三角型怎末输出啊，我输出的正好反了

回复:
user: user-1
content: 我总是在说：代码不是2nd~ #include <stdio.h>  int main() {   for (int n, i = (scanf("%d", &n), 1); i <= n; i++, puts(""))   {     for (int j = 0; j < n - i; j++) printf("   ");     for (int j = 1; j <= i; j++) printf("%3d", j);   }        return 0; }

user: user-2
content: 看要求的模样，输出数据前，不应该是要输出相应的空格的吗，(10-i) 个 printf("   ");

user: user-3
content: #include <stdio.h>  int main() {     int N;     int a;      scanf("%d", &N);       for (int i = 1; i <= N; i++) {         a=i;         while(a<N){             printf("   ");//空格的数量根据 "%3d"，是3就3个空格，是4就四个空格              a++;         }         for (int j = 1; j <= i; j++) {             printf("%3d", j);         }         if (i < N) {             printf("\n");         }     }     return 0; }
user-0 提问: 这个用c语言怎么写啊？大神们

回复:
user: user-1
content: #include <stdio.h> int main() {     int a[] = {12,20,6,4,52,6,77,83,91} ;     int arrsize = 8;     int left=0,right=arrsize,temp;     while(left<right)     {         if(a[left]%2==0)         {             while(left<right)             {                 if(a[right]%2==1)                 {                     temp = a[left];                     a[left]=a[right];                     a[right]= temp;                     right--;                     break;                 }                  right--;             }         }         left++;     }     for (temp=0;temp<=arrsize;temp++)         printf("%d ", a[temp]);       return 0;   }

user: user-2
content: #include <stdio.h>void move(int arr[], int sz){    int left = 0;    int right = sz - 1;    while (left < right)    {        while ((left < right) && (arr[left] % 2 == 1))        {            left++;        }        while ((left < right) && (arr[right] % 2 == 0))        {            right--;        }        if (left <right)        {            int temp = arr[left];            arr[left] = arr[right];            arr[right] = temp;        }    }}void print(int arr[],int sz){    for (int i = 0; i < sz; i++)    {        printf("%d ", arr[i]);    }}int main(){    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};    int sz = sizeof(arr) / sizeof(arr[0]);    move(arr, sz);    print(arr, sz);    return 0;}可以参考一下

user: user-1
content: 如果不用排序的话：从数组第一个数开始判断，如果是偶数则接着判断数组最后一个数是奇数还是偶数，最后一个是奇数则把其和第一个数交换；如果是偶数则不动，继续判断倒数第二个数，同样处理。如果第一个数是奇数或者第一个数已完成处理，则继续判断第二个数，同上处理。以此类推直到把数组遍历一遍后，数组就符合要求了，这时再把数组输出就行了。

user: user-3
content: 遍历2次A数组，第一次输出奇数，第二次输出偶数。

user: user-4
content: 另声明一个数组B，遍历一遍A,将奇数依次放入B,再遍历一遍A,将偶数继续放入B,将B所有元素依次放入A覆盖旧A
user-0 提问: 第一次接触，输出的时候是黑屏，帮帮新人吧

回复:
user: user-1
content: scanf中各%X之间应该啥也没有，输入时用空格或Tab键或回车换行间隔各项数据

user: user-2
content: 你得输入用空格分隔的两个整数吧，然后才输出它们的和；交互友好计，可以输入前来个提示；输入整数无须用 scanf_s()

user: user-0
content: 刚上大学的萌新
user-0 提问: 求助怎么不用getche输入输出一行

回复:
user: user-1
content: 一行就可以了：for (int c = getchar(); printf("%c%c%c\n", c - 1, c, c + 1);) break;

user: user-2
content: 题目没有让你输入输出在一行，你想多了。
user-0 提问: 小白求助！！未声明的标识符

回复:
user: user-1
content: 不要啃故弄玄虚的视频，谢谢。

user: user-2
content: 看下面的图，那个_Format: 应该只是提示当前输入域的参数说明，不是要你也输入这么个内容的

user: user-0
content: 好的，十分感谢！！
user-0 提问: 求助各位大佬们，在c中数字字符串可以进行运算吗

回复:
user: user-1
content: 按照字符串接收输入内容，直接通过查找定位小数点在字符串中的位置，剩下的就是字符串索引的事儿了

user: user-0
content: 嗯嗯，谢谢

user: user-2
content: 不可以的，可以通过读取转换函数转换为内部浮点数值 12.36 然后再行后续处理；如果仅仅是获取整数部分个各小数位，可以通过查询小数点来对字符串进行切分。

user: user-0
content: 好的，感谢老哥
user-0 提问: C#求解方程组 进行到一半 不知道怎么写了

回复:
user: user-1
content: 思路，一个是试差迭代，一个是求反函数；你这里好像求反函数即 di 的公式简单，A=f1(...)*di^2，V=f2(...)di^(2/3) AV=di^(8/3)*f3(...) 这样 di 的公式就出来了。
user-0 提问: %s出现了冲突什么原因呢，求大神帮忙

回复:
user: user-0
content: Visual Studio 2017 这个软件

user: user-1
content: 什么编译器？应该不是scanf_s导致的，其他代码的问题

user: user-2
content: 加了_s以后的参数与原来不同了，不要直接把它当作scanf用。对于%s和%c两个格式符，后面需要有两个参数与之对应，分别是地址和长度。文档还是要读的。

user: user-0
content: 地址和长度，这个我没有设定long这个变量啊所以还需要设定一个吗 还是

user: user-2
content: 形如 scanf_s("%s",buf,128);

user: user-1
content: scanf_s("%s", &buf); 这里加&画蛇添足了，直接用buf就好，但并不是错误。

user: user-0
content: 这个&地址我已经去掉了，但是呢还是会冲突  特别是%s  其他还好

user: user-3
content: 你把地址运算符去掉试试

user: user-0
content: 这个我知道但是呢 一样还是有冲突

user: user-4
content: 感谢
user-0 提问: 求大神求解决啊大神们

回复:
user: user-0
content: 在下已经把全部代码都放在网了，还请各位大神帮忙解决 在下在此谢过了

user: user-0
content: 并非在下惜墨如金是以此%s为误啊而以此%c%d皆可罢了就以各位所说予以改善

user: user-1
content: 楼主惜墨如金吾等徒呼奈何
user-0 提问: 有人遇到  c写文本文件 ，个别时候内容前多一串不可见的@@@@，为什么，有什么办法解决这个问题，请指教，谢谢了

回复:
user: user-1
content: _tmp_Data_DateFormat.tmpNowtime有问题，不知道这字符串怎么来的。用ue打开文本文件，可以看到写入的不可见字符是什么。

user: user-2
content: 显然在某些情况下，_tmp_Data_DateFormat.tmpNowtime、strdata的内容就是错的，你得先检查这两个数据的写操作，而且这两个数据就是字符串，你还sprintf干嘛呢～

user: user-3
content: 进程意外退出或电脑意外掉电都有可能导致文件中多一串看不见的@

user: user-0
content: 遇到这样的问题  只能人为去修复这样的数据，让他标准化，是这样吗

user: user-3
content: 大抵如此
user-0 提问: 把DOS时代的C代码运行在手机上了,感觉很神奇

回复:
user: user-1
content: DosBox了解一下

user: user-2
content: 不存在 BorlandC++3.2 这个产品～

user: user-3
content: bc 到 vc ，改动不小吧；纯 dos ，简单的就是直接上 dosbox 了，什么都不用改

user: user-0
content: bc当年为win3.2提供了支持,所以改动真不大,我的目的是编译运行源代码,和把EXE放到虚拟机里面跑是两个概念.这玩得是编程.不过说到这里又让我感叹了,这年头哪里还有我这样的业余编程爱好者,从CSDN就看的出来,一说到编程就像一群饿红了眼的狼,满脑子就是钱钱钱.代码就是个搞钱的工具,谁还会去研究把玩这些.
user-0 提问: udp服务端的socket与多个UDP客户端同时通讯的话，能处理的过来吗？

回复:
user: user-1
content: 参考一下BIND ，它大概率就是这么干活的。

user: user-1
content: 药科学生有个梗，叫做抛开剂量谈毒性都是耍流氓。用在这里就是说，抛开工作量不能探讨是否处理得过来。工作量在一定规模以下，那就处理得过来。BTW: 性能分析与优化这种事相当复杂，也确实值钱。因为它需要具体情况具体分析。

user: user-0
content: 150个左右客户端不知怎样？

user: user-1
content: 一条铁路线上两端每天对开两对列车够不够？

user: user-0
content: 现在正在考虑做这个事情，之前没做过，所以不知从何下手。

user: user-2
content: 多线程，每个线程处理若干个客户端的数据，如果仍然处理不过来就要用集群了
user-0 提问: 请问一下scanf的问题

回复:
user: user-1
content: scanf输入要考虑内存问题

user: user-2
content: 仅供参考： #include <stdio.h> char s[]="123 ab 4"; char *p; int v,n,k; void main() {     p=s;     while (1) {         k=sscanf(p,"%d%n",&v,&n);         printf("k,v,n=%d,%d,%d\n",k,v,n);         if (1==k) {             p+=n;         } else if (0==k) {             printf("skip char[%c]\n",p[0]);             p++;         } else {//EOF==k             break;         }     }     printf("End.\n"); } //k,v,n=1,123,3 //k,v,n=0,123,3 //skip char[ ] //k,v,n=0,123,3 //skip char[a] //k,v,n=0,123,3 //skip char[b] //k,v,n=1,4,2 //k,v,n=-1,4,2 //End.

user: user-3
content: %c一次读一个字符%s一次读一串字符，引起内存溢出
user-0 提问: 为什么C语言运行没有结果,c语言编程代码感觉没错，dev c++也没报错，为什么运行结果始终不对？

回复:
user: user-1
content: 如果想看s值，可以printf打印下s。 如果觉得回答的不错，欢迎关注下我

user: user-2
content: 结果，你要什么结果？你让程序怎么结果了？程序如何知道你要什么结果？
user-0 提问: 有没有大神看看我这报错是为啥啊

回复:
user: user-1
content: RA_开头的变量是结构体指针，后面的值却是宏（实际是数值），类型不匹配。

user: user-0
content: 那请问一个结构体指针 要把它等于一个宏定义的地址 要怎么写呢  我网上找了很久都没找到！！！ 救命

user: user-1
content: 强制类型转换

user: user-1
content: 亲，关注下我还行？
user-0 提问: 各位大佬，请问这个到底错在哪里了

回复:
user: user-1
content: 不要使用 while (条件) 更不要使用 while (组合条件) 要使用 while (1) {  if (条件1) break;  //...  if (条件2) continue;  //...  if (条件3) return;  //... } 因为前两种写法在语言表达意思的层面上有二义性，只有第三种才忠实反映了程序流的实际情况。 典型如： 下面两段的语义都是当文件未结束时读字符 while (!feof(f)) {  a=fgetc(f);  //...  b=fgetc(f);//可能此时已经feof了！  //... } 而这样写就没有问题： while (1) {  a=fgetc(f);  if (feof(f)) break;  //...  b=fgetc(f);  if (feof(f)) break;  //... } 类似的例子还可以举很多。

user: user-0
content: 谢谢，明白了！

user: user-2
content: while(n == 0)， 你想要判断的是n != 0的时候继续计算

user: user-0
content: 谢谢！
user-0 提问: C语言小白在线求查错

回复:
user: user-1
content: 10 的 n 次方，不是 ^ 操作符吧，这个是逻辑异或，可能要用 pow() 函数？其它问题，要么调试，要么关键步上放个 printf() 函数显示内容。
user-0 提问: 编程如何 通过netfilter 修改 目标ip地址

回复:
user: user-0
content: 配置是可以实现功能，我在开发一个网络安全的系统，需要通过代码修改目标ip地址

user: user-1
content: 不能理解您的意图，打算做什么？您提到了netfilter我觉得就应该是配置问题而不是编程问题。可是您又提到编程代码，这就让我糊涂了。不过您提到的那个函数的返回值是32位的类型，所以显然没有能力处理128位的类型。
user-0 提问: NTFS用FSCTL_GET_RETRIEVAL_POINTERS读取小挡案的问题

回复:
user: user-1
content: 小文件没有分配到磁盘的数据空间, 而是直接储存在mft, 所以没有这个东西

user: user-0
content: 直接储存在mft, 要如何找出小文件的资料区位置?

user: user-1
content: NTFS每个文件都在MFT存储属性, 比如文件名, 时间等, 小文件直接在这个里面有个数据属性, 数据就在这里 数据不是独立的, 是属性的一部分  ntfs系统比较复杂, 如果要读取这个文件的数据, 过程: 1. 从MFT的root根据目标文件路径, 找到文件对应的mft的索引 2. 读取并解释该索引的属性, 其中就有文件的数据

user: user-0
content: 这方面是初学者, 请问有没有C CODE范例能参考?
user-0 提问: 求解答，如何利用scanf()函数的返回值终止循环

回复:
user: user-1
content: 运行中做不到，反思一下，就说明这样写是不对的。%c格式符是荤素不计的，任意内容都能满足它----跟是否字母没啥关系。

user: user-2
content: scanf()的返回值是实际输入的参数个数，所以可以用x[a]的值是否是字母来判断。

user: user-3
content: 不要用带回显的输入函数，用getch()，这个虽然不是标准c库函数，但是几乎所有c库实现都支持
user-0 提问: 初学拷贝构造函数VC能过编译DEV过不了

回复:
user: user-1
content: Add的返回类型是CBall，你return r;肯定不行。可以：    CBall& Add(CBall& t)  // 注意返回的是引用，不是临时对象    {      r = ...      return *(CBall *)this;    }

user: user-0
content: 谢谢啦

user: user-0
content: 报错是在鼠标光标那行
user-0 提问: 请各位大佬看看代码有什么问题 

回复:
user: user-1
content: if (*p > n) 这个改成 if(*p > num) 因为要和输入num比大小  *q = n;    这里改成 *q = num，把num插入数组 printf("%2d", *p); 这里改成 printf("%2d ", *p);，在2d后面加一个空格，显示的更清楚

user: user-0
content: 谢谢谢写大佬，我检查的时候没看见，真的是太感动了，真的十分感谢老哥

user: user-0
content: 再次感谢老哥，真的是非常感动

user: user-1
content: 不客气，互相学习
user-0 提问: 求代码！急！新人表示很难。

回复:
user: user-1

user: user-0
content: 谢谢

user: user-1
content: #include<stdio.h>#include<math.h>int Func(int n){    int i,leap=1;    for(i=2;i<=sqrt(n);i++)        {            if(n%i==0)                leap=0;        }    return leap;}int main(){    int n,i,sum=0,a[10],j=0;    printf("请输入n的值：");    scanf("%d",&n);    for(i=2;i<=n;i++)    {        if(Func(i))        //判断从2开始到n(包括n)的数是否是质数        {            a[j]=i;        //是质数的存入数组            sum+=i;            j++;        }    }    for(i=0;i<j-1;i++)        printf("%d+",a[i]);        //最后一个先不打，因为最后一个数后面没有+号    printf("%d=%d",a[i],sum);    //打印最后一个数和它们的和。}

user: user-0
content: 谢谢

user: user-2
content: 百度可以搜到的
user-0 提问: c语言怎么设置单独修改信息

回复:
user: user-1
content: cout << "旧姓名：" << abs->personArray[ret].m_Name << endl;         cout << "请输入新姓名(输入_保持旧姓名不变)：" << endl;         string name;         cin >> name;         if (name!="_") abs->personArray[ret].m_Name = name;

user: user-0
content: 感谢！！！我还想问一下为什么我修改另一个邮政编码的时候！=报错了

user: user-1
content: 单看这段代码似乎没啥问题

user: user-0
content: 就是不知道怎么单独修改姓名或者编码这些，就不用再重复输入别的信息了

user: user-1
content: 修改前，显示旧信息，修改时，提示输入一个下划线"_"表示保持原来内容不修改，输入后，判断如果刚输入的是"_"就不赋值给原来内容。

user: user-0
content: 这个应该怎么写呀
user-0 提问: c语言怎么设置不重复输入

回复:
user: user-1
content: /添加联系人 void addPerson(Addressbooks * abs) {     //判断联系人是否满了     if (abs->m_Size == MAX)     {         cout << "通讯录已满，无法添加" << endl;         return;     }     else     {     string name;     cout << "请输入姓名：" << endl;     cin >> name;     int ret = isExist(abs, name);     if (ret != -1)     {         cout << "通讯录中已经有姓名为 "<<name<<" 的人，无法重复添加" << endl;         return;     }     abs->personArray[abs->m_Size].m_Name = name;      cout << "请输入邮政编码：" << endl;     int postcode;     cin >> postcode;     abs->personArray[abs->m_Size].m_Code = postcode;      cout << "请输入联系电话：" << endl;     string phone = "";     cin >> phone;     abs->personArray[abs->m_Size].m_Phone = phone;      cout << "请输入家庭住址：" << endl;     string address;     cin >> address;     abs->personArray[abs->m_Size].m_Addr = address;      cout << "请输入E_mail：" << endl;     string e_mail;     cin >> e_mail;     abs->personArray[abs->m_Size].m_Mail = e_mail;      //更新通讯录人数     abs->m_Size++;      cout << "添加成功：" << endl;     system("pause");     system("cls");  } }

user: user-0
content: 谢谢你！！！！太厉害了老师

user: user-1
content: Who am I！
user-0 提问: 求助 求助怎么修改字串

回复:
user: user-0
content: ue看出来是这样的看不到前面那个源代码不知道哪里改

user: user-1
content: 这里应该把是上面的地方吧，直接用 211.149... 搜索，若搜不到试试 unicode 模式，还搜不到，就是压缩或加密了；修改 exe ，可能有问题，你这里，看顶楼都有 align 4 语句，可能正好还有 1个字节的空间，但实际 exe 里就要看了，若无空间，就麻烦了。

user: user-2
content: 用UE改

user: user-0
content: 我不懂啊就是ue打开看都看不懂个

user: user-1
content: 这是源程序，不就是直接改下面一行吗，如 db  '192.168.200.100', 0 ；标签不能改的，改了其它地方引用这里的就会找不到了。

user: user-0
content: 我是用pe反编辑看的但是字串哪里改不了，标签改的了，我要把211 ip改成192 ip的，能私信我帮一下不
user-0 提问: 文件操作函数read(...)返回值不正确？？

回复:
user: user-1
content: 对read这个函数不熟，我一般喜欢用fread。还有你里边的lseek，也属于已经被废弃的函数名。不如换成fseek，，， open,read,close,lseek，好像就这4个函数吧，建议使用stdio.h标准库里边的函数将你的程序重写一下： open==fopen read==fread close==fclose lseek==fseek 注意有些函数的参数顺序会存在差异，你研究一下应该不难替代。完事再试试看还有没有问题。头文件也不用包含辣么多，windows.h一个足矣。

user: user-2
content: fd = open(_pcFullFileName, O_RDWR｜O_BINARY, 0x604);不要把fopen("...","...");fscanf,fprintf,fgets,fgetc,fputc,fclose //读时把\r\n替换成\n，写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待和fopen("...","...b");fseek,ftell,fread,fwrite,fscanf,fprintf,fgets,fgetc,fputc,fclose //不作以上替换，遇到\x1a仍继续读;读写的内容当字节看待弄混了

user: user-0
content: 确实 那个位置的字符是 0x1A...

user: user-2
content: Who am I !
user-0 提问: 请看一看为什么没有输出结果

回复:
user: user-1
content: 第一个for循环中你写的是p='\0'，应该改成p=='\0'，写代码要细心呀

user: user-0
content: OKOK😅

user: user-2
content: 敲代码时丢掉了一个感叹号。

user: user-0
content: OK😅
user-0 提问: Windows API函数CryptUIWizImport在部分系统调用时卡住

回复:
user: user-1
content: https://docs.microsoft.com/zh-tw/windows/win32/api/cryptuiapi/nf-cryptuiapi-cryptuiwizimport

user: user-0
content: 参数看起来没有问题，怎么会卡住呢，而且是个别电脑上

user: user-1
content: UAC、防火墙、杀毒软件、以管理员身份运行、未打最新补丁、未导入最新证书、……
user-0 提问: 二叉树递归搜索的return为什么可有可无？

回复:
user: user-1
content: 这个函数要是没有return的话，你还写他干嘛？

user: user-0
content: 不好意思，我没有说清楚问题，现在已将问题补充完整了

user: user-1
content: 哦，是这样啊。 那么不加return理论上是不对的。 如果运行结果是对的，那都是偶然的恰巧的，毕竟彩票中奖这种事也发生过。

user: user-0
user-0 提问: 以指针作为参数进行传递的问题

回复:
user: user-1
content: char p0[10]; strcpy(p0,p1); strcpy(p1,p2); strcpy(p2,p0);

user: user-0
content: 多谢！！

user: user-2
content: 没看明白你要干啥

user: user-0
content: 已解决！
user-0 提问: 我给堆栈区内存足够大,为何realloc返回了NULL

回复:
user: user-1
content: 如果确实是空间限制引起的的话，堆栈说的是栈，和malloc系列没关系，上方的堆才是管这个的。

user: user-0
content: 我改了堆也不行，是通过用x64编译器才成功的😂
user-0 提问: 关于gets函数和空格的问题

回复:
user: user-1
content: 每个定义了 8个字符空间，输入多了就到了下一个的地方了，后面输入又会破坏前面渗透到其位置的，形成了前一个的前8个字符加后一个的（如果它也超长，还会向后继续），即最后的 11 是第二个的，可以第二个时输入 22 试试。

user: user-0
content: 我在第一条记录里输了这样三个字符串："11 11 11ssssssss","22","33"。结果打印出来相应的是："11 11 1111","22","33"，所有看起来第一个字符串末尾多出现的两个"11"不是来自第二个字符串"22"呀？

user: user-1
content: 理解有误，后面的是第二记录的第一个域的字符串，不是同一记录的第二个域的；因为数据定义是同类的储存在一起的，不是同一记录储存在一起。

user: user-0
content: 哦哦
user-0 提问: 怎么将分数字符串转化为浮点型数据？

回复:
user: user-0
content: 还有是否有将1/6转化为字符串的函数

user: user-1
content: f = (double)1 / 6; sprintf(s, "%f", (double)1/6); 是不是这意思？

user: user-0
content: 是的谢谢，因为 / 得到的一直是整型 没考虑强转 原来强转就行了 谢谢

user: user-0
content: 麻烦能给我讲下原理吗？1/6等于0 强转之后应该还是0啊 有点不太明白
user-0 提问: 请问如何不用循环求出两个日期之间的闰年个数？

回复:
user: user-1
content: 首先从日期（想必是年月日）规范为年份，也就是2月28日之前的日期只算到前一年。然后对于一个年份，从公元开始到这个年份共有多少个闰年是直接算的，y/4-y/100+y/400即可。两个年份算的闰年数一减即可。
user-0 提问: C语言conio.h文件

回复:
user: user-1
content: https://github.com/thradams/conio

user: user-0
content: ？？？？

user: user-2
content: 试试 TC2.0

user: user-0
content: ？？你的意思是说开发环境有问题

user: user-2
content: 是吧，vc2008 没过，tc2.0 过了，大概就是了；题目本身应该也能看出来吧。

user: user-0
content: 你使用TC2.0编译能通过，是吗？哦，那应该就是开发环境的问题了。那个TC2.0的官网能顺便发一下？？
user-0 提问: 如何在VS里用C语言实现复数的定义与输出？

回复:
user: user-1
content: 同出现复数定义不出来的问题，请问楼主解决了吗？

user: user-2
content: 我用vs2022也出现这个问题了，看有的说是编译器不同的原因。请问楼主解决了吗？
user-0 提问: 为什么文件无法写入啊

回复:
user: user-1
content: 关闭UAC、防火墙、杀毒软件、……以管理员身份运行……

user: user-2
content: 什么叫文件无法写入？截个图什么的说明一下呗？

user: user-3
content: scanf ("%s",&Text); 修改为           scanf ("%s",Text);  取掉前面的 &
user-0 提问: 100人民币换零问题（C语言）

回复:
user: user-1
content: 100 - 1 - 0.5 = 98.5 / 5 ≈ 19100 - 5 - 0.5 = 94.5 / 1 ≈ 94   ----- 95?100 - 5 - 1 = 94 （94/0.5=188 > 100）

user: user-2
content: 题目里 换成5元、1元、0.5元面值的零钱100张，以上三种面值的零钱至少有一张，限死了，再多循环也是无用功。

user: user-3
content: 每种都要有，那 0.5 最低只能 (100-5-1)=94 再乘以 2 又限制总共 100张，所以，合适的最大值似乎应该是 98；取大了也没太大关系，只是多算了些可能组合。
user-0 提问: 开局一张图，题目全靠猜

回复:
user: user-1
content: #include<stdio.h> int main() {     for (int i = 1; i < 8; i++) {         int step = 6;          int sum = 0;         for (int j = 1; j <= i; j++) {             if (j == 1) {                 sum = i;             } else {                 sum += step;                 step--;             }             printf("%-4d", sum);         }         printf("\n");     }          return 0; }

user: user-2
content: 简化一些： #include <stdio.h>  int main() {   for (int i = 1, j = 1, k = 6; i < 8; j <= (k + 8) * i / 2 ?         printf("%d ", j), j += k-- : (j = (puts(""), ++i), k = 6));    return 0; }

user: user-3
content: 我来一种

user: user-4
content: 供参考： #include <stdio.h> int main() {     int i, j, n = 7, k;     scanf("%d", &n);     for (i = 0; i < n; i++) {         for (j = 0, k = i + 1; j <= i; k += (n - j - 1), j++)             printf(j == i ? "%d\n" : "%-4d", k);     }     return 0; }

user: user-5
content: 帅
user-0 提问: 【UDT】求纯C语言实现的UDT库源码，急急急！！！

回复:
user: user-0
content: 【UDT】求纯C语言实现的UDT库源码，急急急！！！

user: user-0
content: 求纯C语言实现的UDP库源码，有重谢！！！
user-0 提问: 三子棋的棋盘 无法对齐

回复:
user: user-1
content: 是什么问题我也是这样，我找不到原因

user: user-0
content: 啊我找到问题了，把char打成int了。谢谢各位啊

user: user-2
content: board初始化为{0}， printf("%c", board.....);  这个打不出东西的。

user: user-0
content: 这个我改好了

user: user-2
content: 觉得你用的竖线是全角字符，横线和空格是半角字符，全都改成一样的字符应该就可以啦。

user: user-0
content: 不是欸，我试了全半角一样不行

user: user-0
content: 这个是我输出的结果

user: user-3
content: 看着不象是字体的缘故。那就单步吧，就看第一行，首个空好像是 3 个空格大小，而中间的却似 2 个，绘制语句一个字符一个字符地运行了看，哪里有不对。

user: user-3
content: 命令行窗口的字体不是等距字体？

user: user-0
content: 什么意思，能详细说下吗
user-0 提问: c语言 字符串指针 请教各位大神 帮帮孩子！！！

回复:
user: user-1
content: char *p;只是给申请了指针变量p的地址，地址的值不能被修改。char [] p="ABCDE";是将字符串的值放进了找个字符数组里，这种写法会自动补全"\0"

user: user-2
content: 这说法不对哦，是指针p指向了常量区，常量区内存不允许被修改。char []p 本身会放一份在常量区，并且会在栈中开辟一块内存区域，并把常量区的字符复制到来。 以上两种都会默认加“\0”。

user: user-3
content: constint,AMOMNT=?

user: user-4
content: char * p = "ABCDE";指向的是常量的地址，不可以修改。
user-0 提问: linux源码问题？？？？

回复:
user: user-1
content: ...是什么让你认为能在用户态的程序里面调用内核函数？

user: user-0
content: 使用驱动模块的方式是可以的，只是觉得这种方法太复杂

user: user-1
content: 那是必然的啊，自己挂个驱动封装 ioctl 算了

user: user-0
content: 还有其它不用驱动这种的方法吗？
user-0 提问: 字符型数组输出全是方框是怎么回事

回复:
user: user-1
content: 赋值=的优先级比较低，所以先计算 getchar() != '\n' ，结果赋值给 c[i]

user: user-1
content: (c[i] = getchar()) != '\n'

user: user-0
content: 谢谢彭于晏！

user: user-2
content: (c[i] = getchar()) != '\n

user: user-0
content: 谢谢吴彦祖！
user-0 提问: 新手学习 问题请教1：Scanf使用问题 请高手指教

回复:
user: user-1
content: 在头文件前加这一段代码#define _CRT_SECURE_NO_WARNINGS

user: user-2
content: scanf返回值被忽略 就是scanf有一个返回值，是返回接收到的数据的个数，如果你用不到这个参数，可以不用管他 putchar(a);这是一个问题，a是双精度浮点数，你用输出字符的函数去输出，这是无理的行为，不会有正确结果的，应该用printf("%lf\n",a)输出，另外，程序中的错误提示意思是使用了不安全的函数scanf 可以改用scanf_s 函数代替。

user: user-3
content: putchar((int)a);
user-0 提问: 输入文件路径时，直接输入的可以正常使用，通过strcat拼接而成的无法使用；并且有时直接输入路径也无法使用，如何解决？

回复:
user: user-0
content: 好像是PlayMusic函数后加个循环，否则程序直接结束了。

user: user-1
content: assert(40-1<strlen("D:\\music\\You_Never_Leave.mp3 alias bkmusic"));

user: user-2
content: 赵老师最近回答的水平偏低啊，拼接上 alias bkmusic 的那段是 70 的长度