Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: c语言入门

回复:
user: user-1
content: 很漂亮,建楼

user: user-0
content: get it,，谢谢

user: user-2
content: 我用#CSDN#这个app发现了有技术含量的博客，小伙伴们求同去《1205: 求一元二次方程的实数根（C）》, 一起来围观吧 https://blog.csdn.net/pfdvnah/article/details/87460351?utm_source=app

user: user-3
content: #include<stdio.h> int main() { 	double a, b, c; 	double result1, result2; 	while (true) { 		scanf_s("%lf %lf %lf", &a, &b, &c); 		if ((b * b - 4 * a * c) >= 0) { 			break; 		} 		else { 			printf("输入数字有误，方程无解，请重新输入"); 		} 	} 	//然后自己求解吧 }

user: user-3

user: user-0
content: 题目： description： 从键盘读入三个数a,b,c,输出方程ax2+bx+c=0的两个实根。 input： 三个数a,b,c,保证方程为一元二次方程，且一定有两个实根。 output： 方程的两个实根，小跟在前，大根在后，结果保留小数点后三位。 完整题目就这样，话说发帖子不能上传图片吗

user: user-3
content: 当然你要加什么提示语句的话就随意吧

user: user-3
content: 如果是让你自己输入a、b、c的话，你可以在输入语句的外面加个循环，直到满足Delta>=0且a!=0才退出循环，否则循环继续

user: user-4
content: 求根的话引用math.h头文件，使用sqrt函数表示求根公式，判断△的三种情况，分别运算并输出

user: user-4
content: 什么意思？这种题不大多都是让你求根么？

user: user-3
content: 引用 3 楼 weixin_45712421 的回复:[quote=引用 2 楼 與蘤舊縐的回复:]实根可以相同的话，Delta>=0 我就那样子弄辽，但问题是这个前面要调用什么函数吗，或者语句，我试了while，if，for，都不行[/quote]  完整题目发上来看看

user: user-0
content: 引用 2 楼 與蘤舊縐的回复:实根可以相同的话，Delta>=0 我就那样子弄辽，但问题是这个前面要调用什么函数吗，或者语句，我试了while，if，for，都不行

user: user-3
content: 实根可以相同的话，Delta>=0

user: user-3
content: Delta>0，a！=0，没有具体题目只能这样了
user-0 提问: 不能将 "struct edge" 类型的值分配到 "struct edge" 类型的实体

回复:
user: user-1
content: 问题解决了吗？

user: user-1
content: 这个问题，我也没搞清楚

user: user-2
content: 懂了吗

user: user-3
content: 结构=号没有重载,还有你编译器报错，怎么实现运行的，编译通不过也能运行？

user: user-1
content: 这个方法可以？？

user: user-0
content: 我是最近才开始用visual studio的新手，第一次遇到两个错误还能build成功的，有点懵

user: user-0

user: user-0
content: 引用 2 楼 user-4 的回复:这是C语言，不存在什么操作符重载，也不能对结构实体进行赋值，需要用memcpy函数：memcpy(&a, &e[j], sizeof(struct edge)); 其它几个楼主照着写。 另外，就像楼上所说，楼主要搞清楚整个C语言程序编译运行的流程。首先是预编译，主要做两件事情，一个是递归所有的头文件，把它们合并到单元文件里面，组成一个大的C文件；同时将宏定义进行替换。第二步就是编译，可能需要编译多个文件，生成对应的目标文件。第三步是链接，如果有多个目标文件，它们之间有相互引用的各种符号，都在这个阶段对号入座；即便是只有一个目标文件的，也有依赖的静态动态库，引用的变量或函数经过这种链接确立调用入口。最后，经过之前的几个步骤之后，如果生成的是可执行文件的话，就可以开始运行了。就像楼上所说的，如果你前面几步失败了，就不能运行这个程序。当然还有一种可能，就是你之前可以编译生成可执行文件，但后来修改之后没法编译了，但之前的可执行文件还在，所以你运行的是旧版本的文件，那也是不对的。关于这个问题我建议楼主描述问题的时候，准确使用词语，帖子里面问题的提法让人疑惑、感觉混乱，我认为凡是给人造成干扰的文本，都不是好文采，希望下次改进  抱歉给大佬们造成困扰了，但这个程序的确报了两个错误，也的确能生成成功下面我传两张截图

user: user-2
content: 楼主，现在懂了吗？我也有这个问题，

user: user-4
content: 这是C语言，不存在什么操作符重载，也不能对结构实体进行赋值，需要用memcpy函数：memcpy(&a, &e[j], sizeof(struct edge)); 其它几个楼主照着写。 另外，就像楼上所说，楼主要搞清楚整个C语言程序编译运行的流程。首先是预编译，主要做两件事情，一个是递归所有的头文件，把它们合并到单元文件里面，组成一个大的C文件；同时将宏定义进行替换。第二步就是编译，可能需要编译多个文件，生成对应的目标文件。第三步是链接，如果有多个目标文件，它们之间有相互引用的各种符号，都在这个阶段对号入座；即便是只有一个目标文件的，也有依赖的静态动态库，引用的变量或函数经过这种链接确立调用入口。最后，经过之前的几个步骤之后，如果生成的是可执行文件的话，就可以开始运行了。就像楼上所说的，如果你前面几步失败了，就不能运行这个程序。当然还有一种可能，就是你之前可以编译生成可执行文件，但后来修改之后没法编译了，但之前的可执行文件还在，所以你运行的是旧版本的文件，那也是不对的。关于这个问题我建议楼主描述问题的时候，准确使用词语，帖子里面问题的提法让人疑惑、感觉混乱，我认为凡是给人造成干扰的文本，都不是好文采，希望下次改进
user-0 提问: c语言cgi程序如何调用dll 

回复:
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: 如果是linux的话，你需要设置个环境变了，百度有的

user: user-0
content: 引用 12 楼 Zer0_Wu 的回复:请问楼主解决了吗？ 解决了，像exe一样正常调用就可以了，是我自己代码写错了

user: user-2
content: 我啥时候说过我是“真正牛逼的人”了？

user: user-2
content: 项目、属性、C/C++、附加包含目录：填写附加头文件所在目录 分号间隔多项 项目、属性、链接器、常规、附加库目录：填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项：填写附加依赖库的名字.lib 空格或分号间隔多项 https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order

user: user-0
content: 引用 9 楼 赵4老师 的回复:https://cn.bing.com/search?q="cgi调用dll"&qs=n&form=QBLHCN&sp=-1&pq="cgi调用dll"  这个更搞笑！ 不搞笑不当程序员。  你觉得别人在提前问之前不搜索的吗，你要是真会就写个调用的例子不就行了吗？ 何必装的跟大师一样，说些圣经一样的让人猜不透的话，显的你高深？ 我记得以前chinaunix有个大牛说话一句话：真正牛逼的人，不会这么闲来看帖和回帖。

user: user-2
content: https://cn.bing.com/search?q="cgi调用dll"&qs=n&form=QBLHCN&sp=-1&pq="cgi调用dll"  这个更搞笑！ 不搞笑不当程序员。

user: user-0
content: 引用 7 楼 赵4老师 的回复:[quote=引用 6 楼 iTom 的回复:] [quote=引用 5 楼 赵4老师 的回复:] 项目、属性、C/C++、附加包含目录：填写附加头文件所在目录 分号间隔多项 项目、属性、链接器、常规、附加库目录：填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项：填写附加依赖库的名字.lib 空格或分号间隔多项 https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order  我说的是cgi，不是exe[/quote] 你要是觉得CGI和我上面说的没关系，当我没说好了。[/quote]  你真搞笑，回答别人问题，又让别人去猜？？？ 麻烦你自己写个简单的cgi调用dll试试再说好吗？

user: user-2
content: 引用 6 楼 iTom 的回复:[quote=引用 5 楼 赵4老师 的回复:] 项目、属性、C/C++、附加包含目录：填写附加头文件所在目录 分号间隔多项 项目、属性、链接器、常规、附加库目录：填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项：填写附加依赖库的名字.lib 空格或分号间隔多项 https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order  我说的是cgi，不是exe[/quote] 你要是觉得CGI和我上面说的没关系，当我没说好了。

user: user-0
content: 引用 5 楼 赵4老师 的回复:项目、属性、C/C++、附加包含目录：填写附加头文件所在目录 分号间隔多项 项目、属性、链接器、常规、附加库目录：填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项：填写附加依赖库的名字.lib 空格或分号间隔多项 https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order  我说的是cgi，不是exe

user: user-0
content: 高手呢高手呢高手呢高手呢

user: user-3
content: 应该是环境变量的问题，如果是Windows，就是PATH；Linux下请搜索一下

user: user-0
content: 高手哪里去了

user: user-3
content: 搞定了吗？请在方便的时候结帖
user-0 提问: 关于二分搜索两个程序的不同点讨论

回复:
user: user-0
content: 引用 2 楼 與蘤舊縐的回复:前面写的有点问题，这个二分法找x的时候把两端也考虑进去了（也就是闭区间），所以在mid与mid-1之间不可能存在x，即使mid-1等于x，在下一次还是被考虑在内的，所以大可以缩小范围 嗯，第二个程序确实是闭区间，我拿数据试了，我的那个程序的范围是left到right-1，right是不包括的，从这点上来说我的确实显得更为不足

user: user-1
content: 有的时候你比较快主要是mid=(left+right)/2直接删去了小数位，有可能是你算出来的mid其实离x更远，比如x是1，mid实际是1.9，变成了1就找到了x，但是下面的程序算出来的mid实际是0.9，但是变成了0

user: user-1
content: 前面写的有点问题，这个二分法找x的时候把两端也考虑进去了（也就是闭区间），所以在mid与mid-1之间不可能存在x，即使mid-1等于x，在下一次还是被考虑在内的，所以大可以缩小范围

user: user-1
user-0 提问: 求大佬解决

回复:
user: user-0
content: 哦，好的，谢谢 我下去就去解决试试看

user: user-1
content: 这与你的权限有关， 由于你的权限不够，不是root，无法在/挂载点这个目录上面创建这么多的目录。以root权限打开codeblock。  或者 搞清楚你自己的用户名：e.g: Potter 然后把工作目录设为: /home/Potter/MyProject/即可解决

user: user-0
content: 不行的我重新安装了一下也不行

user: user-2
content: 考虑下权限问题，你是在linux下吧

user: user-3
content: 引用 楼主 qq_45714808 的回复:codeblock中显示error:couldn't creat the project directory  重启电脑试试？？
user-0 提问: 这个题的函数问题

回复:
user: user-0
content: 引用 4 楼 YGLeeeon的回复:[quote=引用 3 楼 听我的苹果包 的回复:] 能具体说一下fun2函数每一步的具体步骤么虽然希望你直接去百度什么是快速排序，但是还是稍微给你说一下吧，快速排序的步骤可以分解成多个完全一样的操作，也就是func2的操作，所以func1也是用递归来进行重复调用。那么func2的做法就是，找到一个基准值，然后把它归位，归位的要求是，它左边的值全都比他小（大）右边的值都比他大（小）。用代码中的两个while来找到不符合左小右大的元素，然后交换这两个元素，直到指针对撞。完成归位的条件就是代码中体现为if（i>=j）break;，即左右指针对撞了。，用一个图来解释一下： 。 另外提一个建议，你想让别人帮到你，就把代码文本贴出来，别整图片。比如说你要我给你一行一行的说明，我怎么拿着图片给你说？难道我要自己对着写下来说明吗。（语气有点不耐烦，但是都是大实话）[/quote] 好的谢谢了！，我会去百度快速排序的

user: user-0
content: 好的谢谢了！我会去百度快速排序的

user: user-0
content: 好的谢谢啦！我会去百度的

user: user-1
content: 整体上来看是一个快速排序，func2的工作是将a[p]这个元素归位（归位即，让它处于有序数组的应该在的位置上）。func2完成对a[p]元素的归位之后，返回这个元素的正确位置，即j。

user: user-1
content: 引用 3 楼 听我的苹果包 的回复:能具体说一下fun2函数每一步的具体步骤么虽然希望你直接去百度什么是快速排序，但是还是稍微给你说一下吧，快速排序的步骤可以分解成多个完全一样的操作，也就是func2的操作，所以func1也是用递归来进行重复调用。那么func2的做法就是，找到一个基准值，然后把它归位，归位的要求是，它左边的值全都比他小（大）右边的值都比他大（小）。用代码中的两个while来找到不符合左小右大的元素，然后交换这两个元素，直到指针对撞。完成归位的条件就是代码中体现为if（i>=j）break;，即左右指针对撞了。，用一个图来解释一下： 。 另外提一个建议，你想让别人帮到你，就把代码文本贴出来，别整图片。比如说你要我给你一行一行的说明，我怎么拿着图片给你说？难道我要自己对着写下来说明吗。（语气有点不耐烦，但是都是大实话）

user: user-0
content: 能具体说一下fun2函数每一步的具体步骤么

user: user-2
content: 单步调试，观察数组a做了哪些改变
user-0 提问: 新人求赞

回复:
user: user-1
content: 手动给你点个赞~

user: user-0
content: #include<stdio.h> #include <math.h> int main() { 	printf("printf('hello c')\n"); 	printf("cout<<'hello c++'\n"); 	printf("echo 'hello php'\n"); 	printf("console.log('hello javaScript')\n"); 	printf("print('hello python')\n"); 	printf("System.out.println('hello java')\n"); 	printf("hello 靓仔····"); 	return 0; }

user: user-2
content: 引用 2 楼 轻箬笠 的回复：[quote=引用 1 楼 SuperDay 的回复:] 我很丑 但是你很温柔[/quote]我是丑人多做怪

user: user-3
content: 引用 1 楼 SuperDay 的回复:我很丑 但是你很温柔

user: user-2
content: 我很丑
user-0 提问: c语言求解答

回复:
user: user-1
content: #include<stdio.h> #include<math.h> int main() { 	float x; 	scanf("%f", &x); 	float item = x; 	float sum = x; 	int count; 	for (count = 2; fabs(item) > 0.00001; count += 2) { 		item = item * (-1) * x * x / (count * (count + 1)); 		sum += item; 	} 	printf("sin(x)=%.6f,count=%d", sum, count >> 1); 	return 0; }

user: user-2
content: 也是哦，失误失误，忘记判断退出前多执行了一次i = i+2了。汗哒哒 printf("sin(x)=%.5f,count=%d",l,i/2);  引用 15 楼 CCCCcainiao 的回复:引用 14 楼 轻箬笠 的回复:printf("sin(x)=%.5f,count=%d",l,i/2 + 1);放在外面   你的是对的   除啦count那里多加了一次 目前我水平也学不来不过还是得谢谢你

user: user-0
content: 引用 14 楼 轻箬笠 的回复:printf("sin(x)=%.5f,count=%d",l,i/2 + 1);放在外面   你的是对的   除啦count那里多加了一次 目前我水平也学不来不过还是得谢谢你

user: user-2
content: printf("sin(x)=%.5f,count=%d",l,i/2 + 1);放在外面

user: user-2
content: #include<stdio.h> #include <math.h>  long fac(unsigned n) { 	if (n == 0 || n == 1) { 		return 1; 	} 	else { 		return (n * fac(n - 1)); 	} }  int main() { 	double a = 1.0, x, l=0.0; 	long i; 	scanf("%lf", &x); 	for (i = 1; fabs(a) > 0.00001; i=i+2) 	{ 		a = (((i/2) % 2 == 1) ? -1 : 1)* pow(x, i)/fac(i); 		l = l + a; 		printf("sin(x)=%.5f,count=%d",l,i/2 + 1); 	} } 这样试试，我这边没环境。楼主测试看看

user: user-0
content: 懂了 我那个阶乘好像差一点只乘了 奇数 尴尬

user: user-3
content: 引用 10 楼 CCCCcainiao 的回复:就是随便给他定义一个数都行？ count是对的但是为什么结果不对  结果差点，count人家是4你是5了

user: user-0
content: 就是随便给他定义一个数都行？ count是对的但是为什么结果不对

user: user-3

user: user-0
content: 怎么改。。哎 提前预习写的 好难

user: user-3
content: 引用 4 楼 轻箬笠 的回复:[quote=引用 3 楼 與蘤舊縐 的回复:] [quote=引用 2 楼 轻箬笠 的回复:] 楼主这个for判断条件的a永远不会变的。又没对a进行初始化，要么死循环，要么直接跳过for。  没有初始化a，变到是会变[/quote] 那你就没注意到，楼主在for循环里面又声明了一个double a;所以外层的a是不会变的。[/quote]  这操作的确很骚气

user: user-0
content: #include<stdio.h> #include <math.h> int main () { float a,x,i,j=1.0,l=0,m=-1.0; int c=0; scanf("%f",&x); for (i=1;a>0.00001;i=i+2); {j=j*i,c=c+1,a = pow(x, i)/j,m=-1*m*a,l=l+m; } printf("sin(x)=%.5f,count=%d",l,c); return 0;      }  引用 1 楼 wowpH 的回复:麻烦复制粘贴源代码并且附上运行截图。

user: user-0
content: #include<stdio.h> #include <math.h> int main () { float a,x,i,j=1.0,l=0,m=-1.0; int c=0; scanf("%f",&x); for (i=1;a>0.00001;i=i+2); {j=j*i,c=c+1,a = pow(x, i)/j,m=-1*m*a,l=l+m; } printf("sin(x)=%.5f,count=%d",l,c); return 0;      } 运行结果就是输入多少还是多少 count一直是1

user: user-2
content: 引用 3 楼 與蘤舊縐 的回复:[quote=引用 2 楼 轻箬笠 的回复:] 楼主这个for判断条件的a永远不会变的。又没对a进行初始化，要么死循环，要么直接跳过for。  没有初始化a，变到是会变[/quote] 那你就没注意到，楼主在for循环里面又声明了一个double a;所以外层的a是不会变的。

user: user-3
content: 引用 2 楼 轻箬笠 的回复:楼主这个for判断条件的a永远不会变的。又没对a进行初始化，要么死循环，要么直接跳过for。  没有初始化a，变到是会变

user: user-2
content: 楼主这个for判断条件的a永远不会变的。又没对a进行初始化，要么死循环，要么直接跳过for。

user: user-1
content: 麻烦复制粘贴源代码并且附上运行截图。
user-0 提问: 大佬帮忙看看哪里不对，怎么无论输入什么数字输出都为0

回复:
user: user-1
content: 好的，记得要结帖哦

user: user-0
content: 引用 3 楼 SuperDay的回复:total是0，a没初始化，这里也是0，循环里面一直累加，但结果一直都是0。另外，power没用上，而且是个递归死循环 ok，改过来了，谢谢

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:首先你没有初始化a，然后double power(x,i);不知道是什么东西，我看你下面已经声明了double power(int x,int i); 是把主函数的total改为power（x，i）

user: user-2
content: 我猜你应该是想用pow

user: user-1
content: total是0，a没初始化，这里也是0，循环里面一直累加，但结果一直都是0。另外，power没用上，而且是个递归死循环

user: user-2
content: a += power(x, i);

user: user-2
content: 首先你没有初始化a，然后double power(x,i);不知道是什么东西，我看你下面已经声明了double power(int x,int i);
user-0 提问: 新手菜鸟，数据结构，单链表的实现（c语言）,求教大佬

回复:
user: user-1
content: 方便的话麻烦结帖一下

user: user-1
content: 好的，都是细活，需要有足够的耐心

user: user-0
content: 找到错误了，for(;a<i;i++)p=p->next;仔细和别的代码对比了一下，没有与用法错误，a++写成i++了， 刚开始一直以为是逻辑错误

user: user-1
content: 算法数据结构是要去耐心调试的，每个人都要走这样的过程

user: user-0
content: 引用 1 楼 user-1 的回复:C语言没有string，第二个问题要慢慢调试 感谢大佬，明白了一个

user: user-1
content: C语言没有string，第二个问题要慢慢调试
user-0 提问: 去除噪点，请大佬赐教

回复:
user: user-1
content: 没必要吧，C语言用int就好了，一直都这么用的，也都好好的，非要用bool有什么特别的好处吗？

user: user-0
content: 引用 7 楼 wowpH 的回复：[quote=引用 6 楼 蜜蜂卡卡的回复:][quote=引用 4 楼 與蘤舊縐 的回复：]int main return 0 bool func  C语言似乎不用bool，返回0或者1吧返回零，我不知道该怎么判断 c语言返回值是没有返回布尔值是吗？[/quote] 有，但是要加头文件stdbool.h[/quote]好的，谢谢

user: user-2
content: 引用 6 楼 蜜蜂卡卡的回复:[quote=引用 4 楼 與蘤舊縐 的回复：]int main return 0 bool func  C语言似乎不用bool，返回0或者1吧返回零，我不知道该怎么判断 c语言返回值是没有返回布尔值是吗？[/quote] 有，但是要加头文件stdbool.h

user: user-0
content: 引用 4 楼 與蘤舊縐 的回复：int main return 0 bool func  C语言似乎不用bool，返回0或者1吧返回零，我不知道该怎么判断 c语言返回值是没有返回布尔值是吗？

user: user-0
content: 引用 3 楼 wowpH 的回复：if里面判断两个=  建议：iszd如果“是”噪点返回true比较好，便于理解。好的，明白 其他的部分还有什么问题吗？

user: user-3
content: int main return 0 bool func  C语言似乎不用bool，返回0或者1吧

user: user-2
content: if里面判断两个=  建议：iszd如果“是”噪点返回true比较好，便于理解。

user: user-0
content: 引用 1 楼 wowpH 的回复：函数声明要放在main前面（除非你是后加的）。行，好的，那里面的内容有问题吗？

user: user-2
content: 函数声明要放在main前面（除非你是后加的）。
user-0 提问: 有大佬知道为什么下面代码第一行没法赋值？？？

回复:
user: user-1
content: 楼主解决了记得及时结帖啊

user: user-1
content: 可以先去收一个回车再去读入数组

user: user-0
content: 引用 2 楼 user-1 的回复:回车键有可能会漏下来的 还真是。。。我把num直接定义一个数字后，就正常了。。。大佬，那我这代码就是要输入num,怎么改才能防止回车漏下来

user: user-1
content: 回车键有可能会漏下来的

user: user-1
content: 会不会是回漏了下来呢？跟踪检测一下下
user-0 提问: 求大佬解答！！！

回复:
user: user-1
content: #include<stdio.h> #include<stdlib.h> struct Number { 	int num; 	int flag = 1;//标记（尚未取走） }; int main() { 	Number map[201][201];//矩阵 	int row, line;//列、行 	printf("请输入行列数，数字必须少于200\n"); 	//保证输入少于200*200 	while (true) { 		scanf_s("%d %d", &line, & row); 		if (row > 200 || line > 200) { 			printf("输入行列数过大\n"); 		} 		else { 			break; 		} 	} 	int flag = row * line;//标记（尚未取走的数） 	for (int i = 0; i < line; i++) { 		for (int j = 0; j < row; j++) { 			map[i][j].num = rand(); 			printf("%d ", map[i][j].num); 		} 		printf("\n"); 	} 	 	int cr = 0, cl = 0;//当前列、行 	int direction[4][2] = { {1,0},{0,1},{-1,0},{0,-1} };//方向 	int control = 0;//方向控制 	while (flag > 0) { 			printf("%d ", map[cl][cr].num); 			map[cl][cr].flag = 0; 			flag--; 			int isGo = 0; 			while (isGo == 0) { 				//前进之后的行列 				int fl = cl + direction[control][0]; 				int fr = cr + direction[control][1]; 				if (fl >= 0 && fl < line && fr >= 0 && fr < row && map[fl][fr].flag != 0) { 					cl += direction[control][0]; 					cr += direction[control][1]; 					isGo = 1; 				} 				else { 					control++; 					if (control > 3) { 						control = 0; 					} 				} 			} 	} 	return 0; }  你可以试试  引用 1 楼 你媽的，為甚麽 的回复:求大佬解答

user: user-1
content: 引用 2 楼 與蘤舊縐 的回复:[quote=引用 1 楼 你媽的，為甚麽 的回复:] 求大佬解答  第一次是右转把[/quote] 搞错了没问题·····

user: user-1
content: 引用 1 楼 你媽的，為甚麽 的回复:求大佬解答  第一次是右转把

user: user-0
content: 求大佬解答

user: user-1
content: 以上只是一个比较能看的懂的方法，或者说比较简单的方法（可能有点问题，没有试过较大的数据），只是给出一个思路 另外你的问题我无法调试（太长了），而且说不定你的100*100就是错的（可能你没有完全检查清楚，错误比较不明显），到了150*150错误就开始变得明显了 这几个for循环可太秀了，无语

user: user-0
content: 引用 4 楼 與蘤舊縐的回复: #include<stdio.h> #include<stdlib.h> struct Number { 	int num; 	int flag = 1;//标记（尚未取走） }; int main() { 	Number map[201][201];//矩阵 	int row, line;//列、行 	printf("请输入行列数，数字必须少于200\n"); 	//保证输入少于200*200 	while (true) { 		scanf_s("%d %d", &line, & row); 		if (row > 200 || line > 200) { 			printf("输入行列数过大\n"); 		} 		else { 			break; 		} 	} 	int flag = row * line;//标记（尚未取走的数） 	for (int i = 0; i < line; i++) { 		for (int j = 0; j < row; j++) { 			map[i][j].num = rand(); 			printf("%d ", map[i][j].num); 		} 		printf("\n"); 	} 	 	int cr = 0, cl = 0;//当前列、行 	int direction[4][2] = { {1,0},{0,1},{-1,0},{0,-1} };//方向 	int control = 0;//方向控制 	while (flag > 0) { 			printf("%d ", map[cl][cr].num); 			map[cl][cr].flag = 0; 			flag--; 			int isGo = 0; 			while (isGo == 0) { 				//前进之后的行列 				int fl = cl + direction[control][0]; 				int fr = cr + direction[control][1]; 				if (fl >= 0 && fl < line && fr >= 0 && fr < row && map[fl][fr].flag != 0) { 					cl += direction[control][0]; 					cr += direction[control][1]; 					isGo = 1; 				} 				else { 					control++; 					if (control > 3) { 						control = 0; 					} 				} 			} 	} 	return 0; }  你可以试试  引用 1 楼 你媽的，為甚麽 的回复:求大佬解答 不是哇大佬，我想知道我哪里错了呀
user-0 提问: 大佬求帮忙我真的不行

回复:
user: user-1
content: 引用 2 楼 小原木 的回复:#include <stdio.h> void main() { 	int h=0,d=0,H; //H 为井深，h 为青蛙现在的高度       //这里的d是白天加黑夜的数量和，后面会有用 	printf("请输入井深："); 	scanf("%d",&H); 	for(int Time=1;h<H;d++) // Time ==1时是白天，Time==0时是黑夜 	{ 		if(Time==1) {h=h+2;Time--;} 		else {h=h-1;++Time;} 	}  	 if(d%2) printf("第%d天的白天爬出去的\n",d/2);      else printf("第%d天爬出去的\n",d/2);	  } 不瞒你说，刚开始我还以为答案是10........(不相当于一天一米吗）

user: user-1
content: #include <stdio.h> void main() { 	int h=0,d=0,H; //H 为井深，h 为青蛙现在的高度       //这里的d是白天加黑夜的数量和，后面会有用 	printf("请输入井深："); 	scanf("%d",&H); 	for(int Time=1;h<H;d++) // Time ==1时是白天，Time==0时是黑夜 	{ 		if(Time==1) {h=h+2;Time--;} 		else {h=h-1;++Time;} 	}  	 if(d%2) printf("第%d天的白天爬出去的\n",d/2);      else printf("第%d天爬出去的\n",d/2);	  }

user: user-2
content: 用一个变量表示所在的高度。超过10就退出，否则循环。用一个变量模拟白天夜晚，用if判断是＋2还是－1。
user-0 提问: 大佬求帮忙我真的不行

回复:
user: user-1
content: 这下楼主有作业可以抄了

user: user-2
content: 书本教你用break去终止循环

user: user-2
content: int x=0 , i=0; while(1){     x+=2;     i++;     if(x >= 10)break;     x-=1; } printf("%d天爬到%d米",i,x);

user: user-3
content: 引用 楼主 qq_45714099 的回复:我做了几次都不行  蜗牛那个？？？
user-0 提问: 二分法猜100以内随机数产生的疑问

回复:
user: user-0
content: 引用 1 楼 user-1的回复:假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了 right我刚开始是赋值了一百的啊，第一个程序里right的值并不会改变的吧？

user: user-1
content: 图歪了 看不了

user: user-1
content: 假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了

user: user-1
content: 引用 3 楼 sako.c 的回复:[quote=引用 1 楼 user-1的回复:]假设 mid是22 right是23 随机数是 23 你的做法 (22+23)/2 mid不变 right不变 死循环了 right我刚开始是赋值了一百的啊，第一个程序里right的值并不会改变的吧？[/quote]哦哦 不会改变  假设 随机数是 49  左右不变 最后会在 66 33 里面不停循环 所以错了
user-0 提问: 一道填空题和一道选择题

回复:
user: user-1
content: 几乎所有的双目运算符都有对应的运算之后直接赋值的组合运算符，比如按位与&就有一个&=，楼主所列出来的%也是一样的。或许你们会奇怪，为什么这么搞，变复杂了。这其实是C语言的一大特色，大家都知道它是介于低级语言和高级语言之间的一种语言，很接近于机器语言。在机器语言中，几乎所有的操作符都是直接作用于操作数的，比方：a += b;这样的语句基本就对应到一条机器指令；而a = a + b;这样的语句，在编译器不做优化的情况下，应该是有一个临时变量来存储a + b，然后再用另一条指令来把这个临时变量传递给a。也就是说，C语言是一种比较低级的语言，但是它效率更高，设计者就是出于这样的考虑引入这种操作符的。所以，我们可以尽量选择这样的操作符来提高效率，虽然效果不是那么明显，但是C语言可以作为底层开发库的基础，频繁被调用的时候，这种效率上的优势一旦累积起来就会相当可观。如果只是作为一个普通的应用就没有那么大的差别了

user: user-0
content: 引用 4 楼 李三思666 的回复:[quote=引用 3 楼 李三思666 的回复:] 1）k %= 5  等价于   k = k % 5，所以7 %=5 结果是2。 2）我试试吧，记不太清了，先算m*=y，得出m = 10，再算y-=m，得出y = -8，再计算y+=y，得出y = -16。注意最后算y+=y的时候，y已经不是定义中的2了，通过y-=m那一步，y的值已经改变了。   sb了，7%5不能算的好像，你如果是int a = 7 ，a%5，那结果就是2。抱歉抱歉= =[/quote]非常感谢！！！

user: user-0
content: 引用 2 楼 與蘤舊縐 的回复: 少了个等号看的出来吧非常感谢！！！

user: user-2
content: 引用 3 楼 李三思666 的回复:1）k %= 5  等价于   k = k % 5，所以7 %=5 结果是2。 2）我试试吧，记不太清了，先算m*=y，得出m = 10，再算y-=m，得出y = -8，再计算y+=y，得出y = -16。注意最后算y+=y的时候，y已经不是定义中的2了，通过y-=m那一步，y的值已经改变了。   sb了，7%5不能算的好像，你如果是int a = 7 ，a%5，那结果就是2。抱歉抱歉= =

user: user-2
content: 1）k %= 5  等价于   k = k % 5，所以7 %=5 结果是2。 2）我试试吧，记不太清了，先算m*=y，得出m = 10，再算y-=m，得出y = -8，再计算y+=y，得出y = -16。注意最后算y+=y的时候，y已经不是定义中的2了，通过y-=m那一步，y的值已经改变了。

user: user-3
content: 少了个等号看的出来吧

user: user-3
user-0 提问: 比两个数大小，输出大的那一个

回复:
user: user-0
content: 引用 7 楼 與蘤舊縐的回复:[quote=引用 5 楼 weixin_45672284 的回复:] [quote=引用 4 楼 user-2的回复:][quote=引用 2 楼 weixin_45672284 的回复：][quote=引用 1 楼 user-2的回复:]编译错误提示和运行结果发出来一下 sorry , not available (RE:,OJ_SHOW_DIFF:,TR:,valid:1)[/quote]你这个我怎么完全看不懂啊？我们用的是同一种语言吗？[/quote] 我用的c，大一新人[/quote] 改过之后 试过没问题[/quote] 嗯，我试试，谢谢啦！

user: user-1
content: 引用 5 楼 weixin_45672284 的回复:[quote=引用 4 楼 user-2的回复:][quote=引用 2 楼 weixin_45672284 的回复：][quote=引用 1 楼 user-2的回复:]编译错误提示和运行结果发出来一下 sorry , not available (RE:,OJ_SHOW_DIFF:,TR:,valid:1)[/quote]你这个我怎么完全看不懂啊？我们用的是同一种语言吗？[/quote] 我用的c，大一新人[/quote] 改过之后 试过没问题

user: user-1
content: 你要用的visual studio的话把scanf改成scanf_s

user: user-0
content: 引用 4 楼 user-2的回复:[quote=引用 2 楼 weixin_45672284 的回复：][quote=引用 1 楼 user-2的回复:]编译错误提示和运行结果发出来一下 sorry , not available (RE:,OJ_SHOW_DIFF:,TR:,valid:1)[/quote]你这个我怎么完全看不懂啊？我们用的是同一种语言吗？[/quote] 我用的c，大一新人

user: user-2
content: 引用 2 楼 weixin_45672284 的回复：[quote=引用 1 楼 user-2的回复:]编译错误提示和运行结果发出来一下 sorry , not available (RE:,OJ_SHOW_DIFF:,TR:,valid:1)[/quote]你这个我怎么完全看不懂啊？我们用的是同一种语言吗？

user: user-0
content: 引用 1 楼 user-2的回复:编译错误提示和运行结果发出来一下 如果是打印出较大的那个整数怎么改？

user: user-0
content: 引用 1 楼 user-2的回复:编译错误提示和运行结果发出来一下 sorry , not available (RE:,OJ_SHOW_DIFF:,TR:,valid:1)

user: user-2
content: 编译错误提示和运行结果发出来一下
user-0 提问: 求助！编程思想不好，想请教高手是如何实现这个问题！

回复:
user: user-1
content: 你这个提法有点问题，如果收到连续5个0，那你在收到第一个0的时候不是就要上报0吗？还有，就像楼上所说的，可以设计一种超时机制，比方超过5秒钟没收到数据就直接上报

user: user-0
content: 引用 2 楼 SuperDay 的回复：你这个提法有点问题，如果收到连续5个0，那你在收到第一个0的时候不是就要上报0吗？还有，就像楼上所说的，可以设计一种超时机制，比方超过5秒钟没收到数据就直接上报数据发送给我的频率是100ms，我上报服务器的频率也是100ms发1次，服务器端不作处理，必须我上报时处理，默认发给我的就是0，应该是变成1后的上报得延时确认是否5个1.

user: user-2
content: 引用 楼主 yaya237 的回复:，要实现的是，接收数据，采集后上报服务器，接收到数据如果是0.当然报0.如果接收到的是变换的，比如收到连续5个1然后5个0.这样交替变化，就要上报1.如何实现？假设是1秒采1次，是要把10秒的值都记录下来再判断吗？谢谢高手指点！ 其实你这个问题没有描述清楚，比如服务器接收有没有频率要求，上报数据最低频率是什么，可不可以放在服务器判断之类的。就你所说的交替变换，10秒并不能实现描述:0 1 1 1 1 1 0 0 0 0 0这样11个数，你十秒判断的应该是不准确的
user-0 提问: Windows下用gcc环境编译输出中文字符时出现乱码怎么解决？

回复:
user: user-1
content: 记得结帖啊

user: user-0
content: 引用 2 楼 SNOY文 的回复:你是不是没有中文包啊￼已经解决了，设置一下文件编码就好了，感谢

user: user-2
content: 你是不是没有中文包啊￼

user: user-2
content: https://segmentfault.com/a/1190000014392665?utm_source=tag-newest  试试这个，不知道版本对不对的上
user-0 提问: 指针排序的江湖写法。

回复:
user: user-1
content: 原来是你，多次谋面，未曾相识

user: user-0
content: 初入江湖，多多指教，这是新接触的一种写法，没考虑优缺点。

user: user-2
content: 引用 5 楼 SuperDay 的回复:好的设计想处处通用并不是那么容易，也许换一种平台会有更多的奇思妙想，优越感也只是另一种形式的夜郎自大 不知道你在说什么 我写的接口其实是参考标准库的qsort 我只是没把名字写出来而已 然后呢

user: user-2
content: 引用 5 楼 SuperDay 的回复:估计初学时间不太长，也要适当鼓励，沉淀需要时间经历各种磨练。好的设计想处处通用并不是那么容易，也许换一种平台会有更多的奇思妙想，优越感也只是另一种形式的夜郎自大这段代码不值得鼓励

user: user-1
content: 估计初学时间不太长，也要适当鼓励，沉淀需要时间经历各种磨练。好的设计想处处通用并不是那么容易，也许换一种平台会有更多的奇思妙想，优越感也只是另一种形式的夜郎自大

user: user-2
content: 引用 3 楼 SuperDay 的回复:话虽如此，还是鼓励楼主的分享精神啊，论坛不就是各种想法碰撞的地方吗？再说，你用C语言能写出泛型设计的算法吗？即使写出来，也是各种迷乱，毕竟不是一个时代的产品更想看到一些复合代码审美的分享 而不是这种多余的奇技淫巧 泛型的确做不到 不限制只能给int用倒是可以 void sort(void* pBuffer, size_t size, size_t count, int (*cmp)(void*, void*));

user: user-1
content: 话虽如此，还是鼓励楼主的分享精神啊，论坛不就是各种想法碰撞的地方吗？再说，你用C语言能写出泛型设计的算法吗？即使写出来，也是各种迷乱，毕竟不是一个时代的产品

user: user-2
content: 函数内部的 内层for 写的太蠢了 循环体摆在这个位置 毫无价值

user: user-2
content: 不知道你的江湖算法是什么意思  不过缺点实在太多了 简单说 这个函数固定了 只能给3个数据排序  作为一个排序算法 这个限制实在是愚蠢 然后 只能降序 无法升序  作为一个排序算法 这个限制属于自废武功 只能给 int排序 传入 其他类型数据就GG  作为排序算法是不合格的 排序和数据类型无关
user-0 提问: 大哥们帮忙看一下这个输出格式哪里出问题了

回复:
user: user-1
content: 方便的话麻烦结帖一下吧

user: user-0
content: 引用 3 楼 SuperDay的回复:会不会是s1, 19, s2, 19？ 对的没错，谢谢啦！！

user: user-1
content: 可以了吗？

user: user-1
content: 会不会是s1, 19, s2, 19？

user: user-2
content: scanf_s换成scanf。然后在第一行加上#define _CRT_SECURE_NO_WARNINGS

user: user-0
content: Visual Studio 2017
user-0 提问: 求助

回复:
user: user-1
content: 你是分配了的，要return回来

user: user-0
content: 引用 2 楼 SuperDay的回复:L1、L2都没有分配空间，虽然GetList_L里面分配了，但是并没有传递出来 那请问这个要怎么分配呀

user: user-1
content: L1、L2都没有分配空间，虽然GetList_L里面分配了，但是并没有传递出来

user: user-2
content: 格式有点乱。。。。。。。。
user-0 提问: C语言共用体问题

回复:
user: user-0
content: 引用 3 楼 user-2的回复:test.i=0x1234;  假设 int 4个字节 并且是小端模式  内存中的数据是 0x34 0x12 0x00 0x00 'A'的数值是 0x41  test.c='A'; 作用是 最低字节替换为 0x41 最低字节原先的数据是 0x34 换成 0x41 最后数据是 0x41 0x12 0x00 0x00 用%x 输出就是 1241 请问这算数据上溢码，上溢的话是不是看做取余

user: user-1
content: 楼上正解，刚才突然懵了

user: user-2
content: test.i=0x1234;  假设 int 4个字节 并且是小端模式  内存中的数据是 0x34 0x12 0x00 0x00 'A'的数值是 0x41  test.c='A'; 作用是 最低字节替换为 0x41 最低字节原先的数据是 0x34 换成 0x41 最后数据是 0x41 0x12 0x00 0x00 用%x 输出就是 1241

user: user-1
content: 错了错了，是0x1241

user: user-1
content: 0x1234，在内存里面是低位在前，所以覆盖之后就变成0xA234
user-0 提问: 之前的代码已经改完，麻烦大神看看怎么简化代码

回复:
user: user-1
content: 注意浮点数不要直接比较  要用 fabs(a - b) < 精度 这样的模式处理

user: user-0
content: 引用 10 楼 vv1025 的回复：刷分来了！！！！！！！！！！！！！！！！！！！！！！！！！！！？？？

user: user-2
content: 刷分来了！！！！！！！！！！！！！！！！！！！！！！！！！！！

user: user-3
content: 楼主又开一帖，之前那个先结掉吧

user: user-0
content: #include <stdio.h> int main() { 	float a; 	float b = 50.00; 	printf("please input A"); 	scanf("%f", a); 	if (a >= b) { 		printf("A=%.lf > or = 50", a); 		if (a >= 80) { 			printf("A >= 80 YES"); 		} 		else{ 			printf("A < 80 No"); 		} 	} 	else { 		printf("A=%.lf<50", a); 	} 	return 0; } 我猜·········，b就用了一次，其实不必整个变量出来，直接用值就可以了

user: user-0
content: 好吧我感觉我看错了，我写的上面if（a=80）是错的，搞不懂你了

user: user-0
content: #include <stdio.h> int main() { 	float a; 	float b = 50.00; 	float c; 	printf("please input A"); 	scanf("%f", a); 	if (a >= b) { 		printf("A=%.lf > or = 50", a); 		if (a = 80) { 			c = (a >= 80); 		} 		if(c == 1){ 			printf("A >= 80 YES"); 		} 		else{ 			printf("A < 80 No"); 		} 	} 	else { 		printf("A=%.lf<50", a); 	} 	return 0; } 你是不是这个意思，你的代码写的让我头疼······ 我觉得c就是个多余的

user: user-3
content: 引用 8 楼 SNOY_WEN 的回复：[quote=引用 7 楼 user-3 的回复：]c = a >= 80; 这样写就好了，前面那个if是多余的为啥，我是判断这个数大于等于50后在判断是否大于等于八十，如果大于就吧关系运算表达式结果赋值给c[/quote]怎么说呢？你知不知道这个表达式的意义？

user: user-0
content: 引用 7 楼 user-3 的回复：c = a >= 80; 这样写就好了，前面那个if是多余的为啥，我是判断这个数大于等于50后在判断是否大于等于八十，如果大于就吧关系运算表达式结果赋值给c

user: user-3
content: c = a >= 80; 这样写就好了，前面那个if是多余的

user: user-0
content: 引用 4 楼 user-3 的回复：楼主又开一帖，之前那个先结掉吧iPad版好像不能结帖

user: user-0
content: 我才学 ，else还不认识
user-0 提问: 大一新生，计算机方面渣的不行

回复:
user: user-1
content: 引用 9 楼 weixin_45706374 的回复：引用 6 楼 SuperDay的回复:[quote=引用 4 楼 與蘤舊縐 的回复：]还是dev c++对新手友好些，尤其vs用的不是标准gcc编译器，学校一般都要求用gcc吧这个无所谓，用习惯就好了，gcc也不是标准。一般语法能支持就可以了，进阶的时候再说了 好的，谢谢，那我还是继续用Dev c++吧[/quote]可以的，主要精力放在语言上面，工具到时候根据需要，说不定做苹果应用呢，所以这些还不如Xcode，不可能一辈子就用一个工具

user: user-2
content: 你可以用mysy2配，这个在清华开源镜像站可以找到，怎么用就查一下网上吧，需要修改一下配置文件，不然容易安装失败

user: user-2
content: 你是学生的话其实可以用CLion，在JetBrains官网可以申请免费使用，比VS容易用，而且代码提示比VS强得多，调试比不上vs，但对初学者很友好了，够你用很久的了，不过要配置环境，mingw官网被墙堵死了，基本上不去

user: user-0
content: 引用 6 楼 SuperDay的回复:引用 4 楼 與蘤舊縐 的回复：还是dev c++对新手友好些，尤其vs用的不是标准gcc编译器，学校一般都要求用gcc吧这个无所谓，用习惯就好了，gcc也不是标准。一般语法能支持就可以了，进阶的时候再说了 好的，谢谢，那我还是继续用Dev c++吧

user: user-1
content: 引用 5 楼 weixin_45706374 的回复：[quote=引用 3 楼 SuperDay的回复:]不好意思，打错了，是VS，手机麻烦 是visual studio吗，安装了，网上的回答很杂，，我就在这里问一问[/quote]是的，工具熟悉一下，用别的也可以，习惯就好

user: user-0
content: 引用 4 楼 與蘤舊縐的回复:还是dev c++对新手友好些，尤其vs用的不是标准gcc编译器，学校一般都要求用gcc吧 DEVC++操作确实很方便，可是老师说这个太简单了，建议我们最好用这两个，我在网上查教程，有的写的不详细，看不懂，就在这里问一问

user: user-1
content: 引用 4 楼 與蘤舊縐 的回复：还是dev c++对新手友好些，尤其vs用的不是标准gcc编译器，学校一般都要求用gcc吧这个无所谓，用习惯就好了，gcc也不是标准。一般语法能支持就可以了，进阶的时候再说了

user: user-0
content: 引用 3 楼 SuperDay的回复:不好意思，打错了，是VS，手机麻烦 是visual studio吗，安装了，网上的回答很杂，，我就在这里问一问

user: user-2
content: 还是dev c++对新手友好些，尤其vs用的不是标准gcc编译器，学校一般都要求用gcc吧

user: user-1
content: 不好意思，打错了，是VS，手机麻烦

user: user-0
content: 引用 1 楼 SuperDay的回复:不是有很多教程和博客可以参考吗？楼主CS装了吗？ cs是什么，APP吗？还是软件

user: user-1
content: 不是有很多教程和博客可以参考吗？楼主CS装了吗？
user-0 提问: 求助

回复:
user: user-0
content: 下次我截图。。。忘了忘了各位

user: user-1
content: 嗯，这样写的好处就是，如果初始化列表需要调整，就不需要每次都去修改数组长度了。对于编译器来说，它知道该怎么做就足够了，这也算是一种改进吧。

user: user-2
content: 引用 6 楼 SuperDay的回复:不不不，如果初始化了就可以的，你没有初始化就不行。你还没适应这样的，它也是有好处的 哦，神奇，受教了（10个字，凑字数）

user: user-1
content: 不不不，如果初始化了就可以的，你没有初始化就不行。你还没适应这样的，它也是有好处的

user: user-2
content: 引用 4 楼 SuperDay 的回复:[quote=引用 3 楼 與蘤舊縐 的回复：][quote=引用 楼主 qq_45711793 的回复:] 看不出来哪里有错误 char* name[]是什么骚操作，又不是指针，又不是字符数组[/quote]这样写可以的，而且也很常见，你还没适应[/quote]   显然不是谁都容许这种骚操作，刚开始学能标准就标准点吧

user: user-1
content: 引用 3 楼 與蘤舊縐 的回复：[quote=引用 楼主 qq_45711793 的回复:] 看不出来哪里有错误 char* name[]是什么骚操作，又不是指针，又不是字符数组[/quote]这样写可以的，而且也很常见，你还没适应

user: user-2
content: 引用 楼主 qq_45711793 的回复:看不出来哪里有错误 char* name[]是什么骚操作，又不是指针，又不是字符数组

user: user-1
content: 楼主，编译错误提示，运行结果什么一次性发出来，这样省时间

user: user-3
content: 为啥都这么喜欢用手机拍呢，拍也就算了，拍完自己都不看的吗？
user-0 提问: 大佬帮看，为啥错误

回复:
user: user-1
content: 引用 3 楼 與蘤舊縐 的回复：C++里面是要声明的，只是他原型不对的

user: user-1
content: 原型，就是跟函数的定义形式最接近的

user: user-2

user: user-0
content: 引用 1 楼 SuperDay的回复:C++是支持重载的，所以函数声明一定要用原型！ 我听不懂大佬，那怎么改呢

user: user-1
content: C++是支持重载的，所以函数声明一定要用原型！
user-0 提问: C语言中break与continue的区别

回复:
user: user-0
content: please do stay in touch

user: user-1
content: 你说说看，砧板和刀的区别有哪些？

user: user-1
content: 至少标题改一下，这东西还找区别

user: user-0
content: 😂给那些初学者准备的，大佬自动忽略哈

user: user-1
content: 这个也需要发吗？
user-0 提问: 关于VS使用问题 求助！

回复:
user: user-1
content: 谢什么啊？赶紧结帖吧

user: user-0
content: 谢谢你啊(最少10个字 括号里充个数)

user: user-2
content: 引用 2 楼 weixin_45710212 的回复:那就是说一个项目里只能运行一个源文件吗 没错，一个源文件。一个main函数

user: user-0
content: 那就是说一个项目里只能运行一个源文件吗

user: user-2
content: vs运行的是项目，也就是项目中的源文件，你把两个程序放一个项目里，只有源文件可以运行
user-0 提问: 一道双人博弈问题算法编程求解！

回复:
user: user-1
content: 引用 2 楼 qq_34786074 的回复：引用 1 楼 user-1 的回复：感觉很难，头大谢谢大佬回复！大佬有没有大概的思路呀。比如不断那种总结对方的下注规律 然后今儿确定自己的下注机器学习吗？

user: user-0
content: 引用 1 楼 user-1 的回复：感觉很难，头大谢谢大佬回复！大佬有没有大概的思路呀。比如不断那种总结对方的下注规律 然后今儿确定自己的下注

user: user-1
content: 感觉很难，头大
user-0 提问: 这个为什么int的不能运行，void的却可以。

回复:
user: user-1
content: 别用VC6了

user: user-2
content: 在C语音是可以这样的，但是C++不允许返回值为void

user: user-3
content: 入口函数参数返回值类型是固定的

user: user-4
content: C++后缀才是cpp吧

user: user-5
content: 引用 48 楼 qqdreamypp的回复:你是不是那个运行页面运行之后没有关掉 没关掉也会出现这种状况，或者是你这个软件出现问题，我以前和你一样的状况,重装一下软件试试

user: user-5
content: 你是不是那个运行页面运行之后没有关掉

user: user-6
content: 编译器比较老了，之前编译器（VC6.0）确实是void main();的

user: user-7
content: mark down

user: user-8
content: Int型要有返回值，return

user: user-9
content: #include <stdio.h> char a; int main(){ scanf("请输入一个字符：%c",&a); printf("%c\n",c); system("pause"); }

user: user-10
content: 没有语法错误，应该是其他的问题

user: user-11
content: 引用 3 楼 qq_45406434的回复:[quote=引用 1 楼 SuperDay的回复:]不能运行？什么提示？ --------------------Configuration: 去 - Win32 Debug-------------------- Compiling... 去.cpp D:\TDDownload\Microsoft Visual Studio\MyProjects\1\去\去.cpp(10) : error C2143: syntax error : missing ';' before '}' 执行 cl.exe 时出错.  去.exe - 1 error(s), 0 warning(s)[/quote] 靠，文件格式.c而不是. cpp。大哥你在写c语言不是c++

user: user-11
content: 引用 3 楼 qq_45406434的回复:[quote=引用 1 楼 SuperDay的回复:]不能运行？什么提示？ --------------------Configuration: 去 - Win32 Debug-------------------- Compiling... 去.cpp D:\TDDownload\Microsoft Visual Studio\MyProjects\1\去\去.cpp(10) : error C2143: syntax error : missing ';' before '}' 执行 cl.exe 时出错.  去.exe - 1 error(s), 0 warning(s)[/quote] 靠，文件格式.c而不是. cpp。大哥你在写c语言不是c++

user: user-11
content: 因为你传的是一个空值return 0了写个int有必要吗

user: user-12
content: 有时候分号容易打成中文还不好看见

user: user-13
content: 你的C是char类型怎么输出是整形呢，应该增加一个变量 int d=0：

user: user-14
content: 有返回值了  肯定不能说void类型啊

user: user-15
content: 不能运行？什么提示？

user: user-16
content: 你的主函数怎么没有返回值

user: user-17
content: 标准不同了，必须要有一个返回值
user-0 提问: 为什么C语言中的printf打印地址对变量初始化值有影响

回复:
user: user-1
content: 垃圾值而已  至于垃圾值怎么变都无所谓  不值得探究

user: user-2
content: 楼主想明白了吗？

user: user-3
content: 第一个没有取a的地址

user: user-2
content: 十万个为什么

user: user-4
content: 引用 6 楼 I will,的回复:那为什么不打印地址，每次a的值都是0呢 这就和编译器有关系了，不同编译器不一样，不同模式(debug/release)也不一样。我想是这个编译器的这个模式下编译器做了一些特殊处理。

user: user-0
content: 那为什么不打印地址，每次a的值都是0呢

user: user-4
content: 引用 4 楼 I will,的回复:但是打印出来的值不一样啊 对啊，因为取的内存是随机的，所以事先从哪个地址取内存以及这块内存中事先有什么值都是不确定的，一样是巧合，不一样是常态。

user: user-0
content: 但是打印出来的值不一样啊

user: user-4
content: 理论上没有影响，a的地址和值是随机的，只是从内存中随机取了一块可以使用的内存。

user: user-0
content: 嗯？什么意思，没听懂

user: user-5
content: 你这个不严谨。我问你第一个程序a的地址是多少，如果你知道怎么证明。
user-0 提问: 到底哪里错了啊

回复:
user: user-1
content: 引用 5 楼 SNOY_WEN 的回复：[quote=引用 2 楼 SuperDay 的回复：]这个是C语言吗？ a >= 80后面那个是什么符号？ 而且条件运算后面还跟个东西干嘛？我已经搞好了，想赋值来着[/quote]赋值给c吗？c要放在前面，而且赋值是等号=

user: user-0
content: 引用 2 楼 SuperDay 的回复：这个是C语言吗？ a >= 80后面那个是什么符号？ 而且条件运算后面还跟个东西干嘛？我已经搞好了，想赋值来着

user: user-1
content: 引用 3 楼 堕落年代 的回复：求软件，真的。好难过。QQ：2642514204什么软件？

user: user-2
content: 求软件，真的。好难过。QQ：2642514204

user: user-1
content: 这个是C语言吗？ a >= 80后面那个是什么符号？ 而且条件运算后面还跟个东西干嘛？

user: user-3
content: l打成了1。。。。。。。
user-0 提问: 为什么ungetc函数接受整型变量做参数?

回复:
user: user-1
content: 引用 4 楼 光球层上的黑子 的回复：[quote=引用 3 楼 user-1的回复:]问题解决了欢迎结帖啊 刚用csdn不懂，现在应该结了吧[/quote]可以了，大家都要向你学习

user: user-0
content: 引用 3 楼 user-1的回复:问题解决了欢迎结帖啊 刚用csdn不懂，现在应该结了吧

user: user-1
content: 问题解决了欢迎结帖啊

user: user-0
content: 引用 1 楼 user-1的回复:所以的流操作统一用int，因为int除了可以涵盖char以后，还可以赋予很多状态。对于栈结构来说，int是最小单位，即使是char，也是占用一样的空间。所以char并不会省内存，只有在数组空间里面才能省空间 感谢！大概明白点了，我再慢慢体会吧

user: user-1
content: 所以的流操作统一用int，因为int除了可以涵盖char以后，还可以赋予很多状态。对于栈结构来说，int是最小单位，即使是char，也是占用一样的空间。所以char并不会省内存，只有在数组空间里面才能省空间
user-0 提问: 请教各位大佬一个c语言初级问题

回复:
user: user-1
content: 这不就是输入吗。跟计算方法有什么关系呢。计算方法只是个表达式，运算过程。

user: user-2
content: 楼主的意思会不会是，比如像行列式甚至矩阵这样的数据，就说行列式吧，我们先定义一个参数n，然后输入这个n，紧接着输入n*n的行列式，可以这样输入：每行输入n个数值，连续输入n行，然后调用某个函数来计算这个行列式的值。 当我们又想计算m*m的行列式时候，也是一样先输入m，再逐行输入数值，同样调用函数计算出结果。 像这样的过程是不是还有什么细节你们想要理解的呢？

user: user-2
content: 你们是学生？感觉很不专业，难道是自学的吗？

user: user-2
content: 算法一样的变量？这个不像个术语，很不专业，一般我们设计一个算法都有相应的数据结构作为支撑，二者是有机结合。这里面涉及到很多技巧，三言两语说不清楚的

user: user-3
content: 能举个例子不，所谓算法一样的变量

user: user-2
content: 那你要定义什么样的数据结构，再决定如何输入它们。

user: user-0
content: 引用 2 楼 SuperDay的回复:什么叫做算法一样的变量呢？ 就是说计算过程一样但初始值不一样

user: user-2
content: 什么叫做算法一样的变量呢？

user: user-0
content: 没人吗？这个分数怎么得我也不知道我就这点分了
user-0 提问: 这个程序怎么都排不出来啊

回复:
user: user-1
content: 好的，多谢支持！

user: user-0
content: 引用 13 楼 user-1的回复:方便的话请记得及时结帖 结了啊，我电脑显示已经结贴了啊

user: user-1
content: 方便的话请记得及时结帖

user: user-1
content: 引用 11 楼 听我的苹果包 的回复：嗯嗯我已经搞定了。。这么厉害啊！

user: user-0
content: 嗯嗯我已经搞定了。。

user: user-1
content: 楼主搞定了吗？

user: user-0
content: 嗯嗯好的，谢谢帮助，

user: user-1
content: 就是嘛，粗心！

user: user-0
content: 嗯嗯，循环出了大问题啊

user: user-1
content: 看出来了吗？

user: user-0
content: emmmmmm我的错，那我再看看

user: user-1
content: 你拍的，看得我晕啊。 那段循环，你没看仔细了

user: user-1
content: 看着好累

user: user-0
content: 我运算错了么?上机的话运行出来和答案一样，但我手写写不出来

user: user-1
content: 这是什么？你是按照上面的思路来运算吗？
user-0 提问: vs2015小白问题求解

回复:
user: user-1
content: 去找一下安装程序，修改一下

user: user-1
content: 装错了，安装的时候需要勾选C++桌面开发

user: user-2
content: 你这个没安装全吧，漏了不少东西
user-0 提问: 大神，我需要帮忙

回复:
user: user-1
content: 引用 20 楼 user-2 的回复：帖子好像可以发代码。。。我怀疑你是来要大佬联系方式的。。。我想了一下，确实应该发到这里来让大家一起参照参照，可能她觉得写的不足之处，有点不好意思发吧。回头她稍微整明白一点可以发上来

user: user-1
content: 就是user-2大佬呀

user: user-0
content: 引用 22 楼 SuperDay 的回复：你可以找他，他才是真正的大佬谁？

user: user-1
content: 你可以找他，他才是真正的大佬

user: user-0
content: 引用 20 楼 user-2 的回复：帖子好像可以发代码。。。我怀疑你是来要大佬联系方式的。。。我是抱着学习的态度来的

user: user-2
content: 帖子好像可以发代码。。。我怀疑你是来要大佬联系方式的。。。

user: user-1
content: 可以私信发给我

user: user-1

user: user-0
content: 引用 16 楼 SuperDay 的回复：引用 14 楼 SuperDay 的回复：假设N-1个队，比赛S场，这时候增加一个队，会怎样？明白吗？大佬，可以留个联系方式吗，我把我写的，给您拍照发过去，您帮我看看对不对，行吗？

user: user-1
content: 引用 14 楼 SuperDay 的回复：假设N-1个队，比赛S场，这时候增加一个队，会怎样？明白吗？

user: user-1
content: 引用 12 楼 qq_45401622 的回复：引用 11 楼 SuperDay 的回复：引用 10 楼 qq_45401622 的回复：引用 9 楼 SuperDay 的回复：搞得定吗？我想了一下，还是搞不定找个男朋友帮你弄男朋友也找不到呀难道是传说中的恐龙

user: user-1
content: 假设N-1个队，比赛S场，这时候增加一个队，会怎样？

user: user-0
content: 大佬，能不能留个联系方式，我把我写的拍个照，给您发过去，您帮我看看，对不对，行吗

user: user-0
content: 引用 11 楼 SuperDay 的回复：引用 10 楼 qq_45401622 的回复：引用 9 楼 SuperDay 的回复：搞得定吗？我想了一下，还是搞不定找个男朋友帮你弄男朋友也找不到呀

user: user-1
content: 引用 10 楼 qq_45401622 的回复：引用 9 楼 SuperDay 的回复：搞得定吗？我想了一下，还是搞不定找个男朋友帮你弄

user: user-0
content: 引用 9 楼 SuperDay 的回复：搞得定吗？我想了一下，还是搞不定

user: user-1
content: 搞得定吗？

user: user-1
content: 这个思路是不是N-1的时候，增加1，要比赛多少场，能不能按照这个思路走下去

user: user-1
content: 那你不应该了，至少要想想

user: user-0
content: 引用 5 楼 SuperDay 的回复：你是想不出来还是写不出来？想不出来也写不出来
user-0 提问: C语言 定义的2维字符数组，scanf输入赋值，watches显示数组有3行，莫名其妙插入了一行

回复:
user: user-1
content: 那你可以去修改编译器代码

user: user-0
content: 不是这个原因，数组首地址可以直接写名称的。照楼上说的改了结果不变，老实说我怀疑是编译器出毛病了

user: user-1
content: scanf("%s", str[0]); scanf("%s", str[1]); 这样写就好了呀 scanf("%s", str);  // 这个不对的 scanf("%s", &str[1][0]);  // 这样可以，但不如scanf("%s", str[1]);简单
user-0 提问: vs2012必须安装在c盘吗

回复:
user: user-0
content: 引用 1 楼 user-1 的回复：不会，爱装哪个盘装哪个盘，只要磁盘空间够就OK好的谢谢了🙏

user: user-1
content: 不会，爱装哪个盘装哪个盘，只要磁盘空间够就OK
user-0 提问: windows日志删除。真心求助啊，国庆不回家就为做题

回复:
user: user-1
content: 查手册看一下

user: user-1
content: 有个OpenEventLog接口，资料好少，你试着找找看，有点麻烦

user: user-0
content: 引用 1 楼 user-1的回复:查手册看一下 需要用c语言自己编写，具体细节不太懂

user: user-0
content: 需要用c语言自己编写，具体细节不太懂
user-0 提问: 有关c语言

回复:
user: user-1
content: #include<stdio.h> #include<stdlib.h> #include <ctype.h>  int main() {     int i;     char str[16];      scanf("%s", str);      for (i = 0; str[i]; i++)         if (isupper(str[i]))             str[i] = 'A' + (str[i] - 'A' + 4) % 26;         else if (islower(str[i]))             str[i] = 'a' + (str[i] - 'a' + 4) % 26;       puts(str);      return 0; } 供参考～

user: user-2
content: 引用 10 楼 陌上_桑 的回复：不想写等代码呗...

user: user-3
content: 这是要等代码还是接下来要分享代码？

user: user-2
content: 伸手不是好习惯哦😯

user: user-2
content: 好好看看ASCII码

user: user-2
content: #include <stdio.h> int main() { 	char a; 	scanf("%c",&a); 	if(a<='z'&&a>='A')//限定范围 	{ 	if(a<='z' && a>='w')//处理a的特殊情况 	printf("1:%c",a-22); 	else if(a<='Z'&& a>='W')//处理A的特殊情况 	printf("2:%c",a-22); 	 	else 		printf("3:%c",a+4);}//正常输出情况 	 	}

user: user-4
content: 引用 4 楼 mgmws 的回复：初学者，不会把w,x,转换，难道要列举吗先写出来，哪怕列出来，看起来很笨，也是个办法，总比啥办法都没有强

user: user-0
content: 初学者，不会把w,x,转换，难道要列举吗

user: user-0
content: 引用 1 楼 SuperDay的回复:我在等你的源代码呢 这个是让自己写编程的

user: user-1
content: 输入的字母ch，得到的字母方法： ch = (ch + 4) % 26;试一下～

user: user-5
content: 这个不难呀，自己先动手弄，有啥问题再来问

user: user-4
content: 我在等你的源代码呢
user-0 提问: 三个数比较求最大数

回复:
user: user-1
content: 如楼上所诉，是接收格式和输入格式不匹配的问题 只需要调整接收格式和输入格式的任意一个格式，另它们一致即可解决。  扩展：如果你学了？：表达式，可以尝试用这个表达式写出求三数的最大值问题。

user: user-2
content: 输入时得用逗号分开，因为格式串里面是逗号分开的，得对应

user: user-3
content: 输入 5,4,3 或者改那个scanf("%d %d %d",&a,&b,,&c);

user: user-4
content: scanf，输入，格式串，两个逗号

user: user-0
content: 引用 4 楼 user-4 的回复：引用 3 楼 qq_45704918 的回复：引用 1 楼 liups 的回复：输入时得用逗号分开，因为格式串里面是逗号分开的，得对应具体怎么改输入的时候要按照格式来输，格式里面要求三个数字是用两个逗号隔开的，你就要按照要求输入逗号，而不是用空格来分隔是哪个printf那步弄错了吗

user: user-4
content: 引用 3 楼 qq_45704918 的回复：引用 1 楼 liups 的回复：输入时得用逗号分开，因为格式串里面是逗号分开的，得对应具体怎么改输入的时候要按照格式来输，格式里面要求三个数字是用两个逗号隔开的，你就要按照要求输入逗号，而不是用空格来分隔

user: user-0
content: 引用 1 楼 liups 的回复：输入时得用逗号分开，因为格式串里面是逗号分开的，得对应具体怎么改
user-0 提问: 不兼容

回复:
user: user-1
content: 与10无关，64位的win不能运行16位程序，所以要么项目没对（可以搞成32位的），要么开发环境得换一个

user: user-2
content: 这得是多古老的应用呢。楼主不能找一个稍微新一点的版本吗？
user-0 提问: C语言字符数组赋值时如果加双引号赋值为什么会只会输出p

回复:
user: user-0
content: 引用 4 楼 ~稻草人~的回复:兄弟，你这个小问题关联了很多知识点，给你拆分一下 1：数组，定义时就确定存储地址，在内存中开辟一段存储空间。使用时地地址是不可变的，和指针最大的区别所在。所以字符数组定义时要么明确数组下标，要么用双引号赋字符串。其它类型数组定义时，原则一样。 2：字符数组赋值，你要理解为只有两种方法，一，定义时，直接赋字符串，如 char str[20]=“hello！”，二，定义过后，只能单个字符赋值，如 str[0]='f'。 3：单引号和双引号。单引号就是字符，双引号是字符串，但有更多意思：把双引号内的字符数据，按顺序并尾部加'\0'，存放在内存中，并返回存储位置的首地址。 4：结尾符号，'\0'，其实就是数值0，在字符数组中，你加不加结尾符，没规定，看你怎么处理其中数据而已，很灵活的。如，使用printf函数，必须加，如果你没0结尾，它从数组首地开始读取并输出，可能一个也不输出，也可能输出十万个，直到遇到第一个0，和数组多大没关系。  所以，你代码中有个明显错误， 1：第五行，str[0]赋值只能用单引号，单个字符赋值。如果用双引号，不是赋值，是赋字符串地址，数据定义过后，是不能改地址的。 2：第五行中，你想把双引号中的数据赋给[0]，但双引号其实是提取字符串地址的，地址是32位，而你str是8位的，所以，这一句是把“F”的内存地址的低8位值赋给[0] 3：然后，当你puts(str)，是把“F”字符串地址的低8位，以字符形式输出了 谢谢你，不过，执行第五行，计算机做了哪些事？

user: user-1
content: 兄弟，你这个小问题关联了很多知识点，给你拆分一下 1：数组，定义时就确定存储地址，在内存中开辟一段存储空间。使用时地地址是不可变的，和指针最大的区别所在。所以字符数组定义时要么明确数组下标，要么用双引号赋字符串。其它类型数组定义时，原则一样。 2：字符数组赋值，你要理解为只有两种方法，一，定义时，直接赋字符串，如 char str[20]=“hello！”，二，定义过后，只能单个字符赋值，如 str[0]='f'。 3：单引号和双引号。单引号就是字符，双引号是字符串，但有更多意思：把双引号内的字符数据，按顺序并尾部加'\0'，存放在内存中，并返回存储位置的首地址。 4：结尾符号，'\0'，其实就是数值0，在字符数组中，你加不加结尾符，没规定，看你怎么处理其中数据而已，很灵活的。如，使用printf函数，必须加，如果你没0结尾，它从数组首地开始读取并输出，可能一个也不输出，也可能输出十万个，直到遇到第一个0，和数组多大没关系。  所以，你代码中有个明显错误， 1：第五行，str[0]赋值只能用单引号，单个字符赋值。如果用双引号，不是赋值，是赋字符串地址，数据定义过后，是不能改地址的。 2：第五行中，你想把双引号中的数据赋给[0]，但双引号其实是提取字符串地址的，地址是32位，而你str是8位的，所以，这一句是把“F”的内存地址的低8位值赋给[0] 3：然后，当你puts(str)，是把“F”字符串地址的低8位，以字符形式输出了

user: user-2
content: 啊，字那么小，居然没看清楚是双引号呀。 这个用strcpy(str, “f”);就可以了呀 另外@楼上，char p[3]=“123”;不能通过编译，但是char p[4]=“123”;却可以通过编译的。因为这不是赋值，这是初始化

user: user-3
content: 不支持字符串直接赋值  字符串是有多个字符组成的，就算可视化是一个字符，那它也是由两个字符组成的   `""` 这种写法会隐含一个 '\0' ，'\0' 就是 数值 0  你可自己验证一下，这种概念一定要知道   ``` char p[3] = "123"; // 能通过吗？ ```

user: user-2
content: 因为你str[1]没设置为字符串结束标志啊，知道是什么字符吗？对，就是’\0’ 应该是：str[1] = ‘\0’;
user-0 提问: c语言

回复:
user: user-1
content: 而且，只需要验证不超过一半的数值就可以了，因为两部分可以对调，加法交换律

user: user-1
content: 因为需要验证的只要奇的素数就足够了，所以在所有范围内遍历素数就可以了
user-0 提问: 求助一下

回复:
user: user-1
content: 1. int fun(int x) {     if (x == 0)     {         return 0;     }      if(x%10 == 7)     {         return 1;     }     else     {         return fun(x/10);     } }  函数结果是1就包含7，是0不包含7  2. 也可以用c的库函数实现， 先用itoa将该数转化为字符串str， 再用strchr(str, '7')查找字符串中是否包含字符7

user: user-2
content: 对于这个数，对10取余得到余数，然后除以10，直到这个数被除为0，期间看余数有没有等于7的情况
user-0 提问: 萌新  想做个输个a*b矩阵的函数 但不知道哪儿出错

回复:
user: user-1
content: 矩阵m行n列a,b矩阵n行k列相乘得m行k列c矩阵。行乘列很简单： 	for(int i=0;i<m;++i){ 		for(int j=0;j<k;++j){ 			for(int l=0;l<n;++l){ 				c[i][j]+=a[i][l]*b[l][i]; 			} 		} 	}

user: user-0
content: 引用 8 楼 真相重于对错 的回复：[quote=引用 7 楼 OmniJax 的回复:] [quote=引用 6 楼 真相重于对错 的回复：]元素位置计算错误   scanf("%d",((array+i)+j)); ----->   scanf("%d",((array+i*y)+j));能讲一下原理吗[/quote] 你的a是连续存储的，假设你要存储一个3×3的矩阵。 需要有9个存储单元， 第一行是 0，1，2 ， 第二行是3，4，5， 第三行是6，7，8。 不知你看出规律了吗？  [/quote]噢噢    那有没有更简便或者易懂的方法呢

user: user-2
content: 引用 7 楼 OmniJax 的回复:[quote=引用 6 楼 真相重于对错 的回复：]元素位置计算错误   scanf("%d",((array+i)+j)); ----->   scanf("%d",((array+i*y)+j));能讲一下原理吗[/quote] 你的a是连续存储的，假设你要存储一个3×3的矩阵。 需要有9个存储单元， 第一行是 0，1，2 ， 第二行是3，4，5， 第三行是6，7，8。 不知你看出规律了吗？

user: user-0
content: 引用 6 楼 真相重于对错 的回复：元素位置计算错误   scanf("%d",((array+i)+j)); ----->   scanf("%d",((array+i*y)+j));能讲一下原理吗🙏

user: user-2
content: 元素位置计算错误   scanf("%d",((array+i)+j)); ----->   scanf("%d",((array+i*y)+j));

user: user-3
content: 而且你这个输入的时候地址也没写对

user: user-3
content: 为什么要用calloc呢？这样用是有问题的，栈在函数返回的时候要被释放的

user: user-0
content: #include <stdio.h> int i,j,a,b,n; int main() {     printf("输入第1个矩阵的行与列\n");     scanf("%d%d",&a,&b);     int array1[a][b];     int* ptr_array1;     ptr_array1=*array1;     ptr_array1= InputMatrix(a,b);     for(i=0;i<a;i++)     {         for(j=0;j<b;j++)         {             printf("%d\t",*((ptr_array1+i)+j));         }         printf("\n");     }     return 0; } ///////////////////////////////////////////////////////////////////////////////////////////// int InputMatrix(int x, int y) {     n = x*y;     printf("输入矩阵的%d个元素\n",n);     int * array;     array = calloc(n,sizeof(int));     for(i=0;i<x;i++)     {         for(j=0;j<y;j++)         {             scanf("%d",((array+i)+j));         }     }     return (array); }

user: user-0

user: user-3
content: 运行结果什么样了？
user-0 提问: 关于if else语句的报错

回复:
user: user-1
content: else if (i>=60);

user: user-2
content: else if (i>=60);   //去掉～

user: user-3
content: 楼上正解，顶

user: user-4
content: 因为你(i >= 60)右边多了一个分号“;”呀

user: user-5
content: 因为只有一个语句的情况下，可以不用括号。所以他认为没错。但是这样的话，后面的括号无法和else if匹配，他就会认为前面少了个if。如果你在你加的分号后面写个if就不会报错了。
user-0 提问: 一道编程题

回复:
user: user-1
content: 输入scanf("%d",&h); 输出printf("%d",h); 循环输入所有人。

user: user-0
content: 么么哒  谢谢哈

user: user-2
content: C风格的，新鲜出炉啦， gcc编译过，请参考： /*20190930*/ #include <stdio.h> #define M 20 #define N 5  int main() {   float run[M][N];   float height_max[M];   int i, j;    for(i = 0; i < M; i++)   {     printf("Input the height of each team:\n");     for(j = 0; j < N; j++)     {       scanf("%f", &run[i][j]);       printf(" ");     }   }    for(i = 0; i < M; i++)   {     height_max[i] = run[i][0];   }    for(i = 0; i < M; i++)   {     for(j = 0; j < (N-1); j++)     {       if(run[i][j] < run[i][j+1])         height_max[i] = run[i][j+1];     }     printf("Output the heightest of each team: %f\n", height_max[i]);   }    return 0; }

user: user-2
content: 我再试试，看看c能不能写出来

user: user-0
content: 引用 2 楼 Most_retarded的回复:#include <iostream>  const int M = 20; const int N = 5; int main() {   using namespace std;   float run[M][N];   float height_max[M];   int i, j;    for(i = 0; i < M; i++)   {     cout << "Input the height of each team:\n";     for(j = 0; j < N; j++)     {       cin >> run[i][j];       cout <<" ";     }   }    for(i = 0; i < M; i++)   {     height_max[i] = run[i][0];   }    for(i = 0; i < M; i++)   {     for(j = 0; j < (N-1); j++)     {       if(run[i][j] < run[i][j+1])         height_max[i] = run[i][j+1];     }     cout << "Output the heightest of each team: " << height_max[i] << endl;   }    return 0; } 我用C++写的，并用g++编译过，没有问题， c语言方式没写出来，你参考一下 我不会c++，我勉强看得懂c语言

user: user-2
content: #include <iostream>  const int M = 20; const int N = 5; int main() {   using namespace std;   float run[M][N];   float height_max[M];   int i, j;    for(i = 0; i < M; i++)   {     cout << "Input the height of each team:\n";     for(j = 0; j < N; j++)     {       cin >> run[i][j];       cout <<" ";     }   }    for(i = 0; i < M; i++)   {     height_max[i] = run[i][0];   }    for(i = 0; i < M; i++)   {     for(j = 0; j < (N-1); j++)     {       if(run[i][j] < run[i][j+1])         height_max[i] = run[i][j+1];     }     cout << "Output the heightest of each team: " << height_max[i] << endl;   }    return 0; } 我用C++写的，并用g++编译过，没有问题， c语言方式没写出来，你参考一下
user-0 提问: 用vc6写了个代码但显示的结果不对

回复:
user: user-1
content: 这个结果跟你写的代码的结果一样，你的题目是什么要求

user: user-0
content: 我是新手，就找了个代码照着打了

user: user-2
content: 看着好像没问题。。。。。

user: user-2
content: 你这变量名还不如a,b,c,d来的方便。看的我眼花。另外100000*0.007这种你就不能提前算出来吗。。。。。。最后没有return 0;至于结果不对我再看看。。。眼睛有点放花。
user-0 提问: 用vc6写了个代码但显示的结果不对

回复:
user: user-1
content: 程序执行完全没有问题，如果结果不是预期，说明你的分红定义有问题。 程序首先进入else if(i<=200000) {         bonus=bonus1+(i-100000)*0.075;然后计算100000*0.1-（120000-100000）*0.075 = 11500

user: user-2
content: 怎么个不对了？你又没给个计算公式，谁知道你的代码是不是对的呢？我发现这上面提问题的人，沟通方式多少有点没效率。你提一个问题得把前因后果说清楚呀，然后让我们去猜，这既浪费你的时间，也浪费我们的时间。希望改进一下
user-0 提问: c++矩形类

回复:
user: user-1
content: 3、这个定义方式也是不合理的 void Rectangle::setRectangle(){ float length,width; len=length; wid=width; }  修改如下： void Rectangle::setRectangle(float length, float width){ len=length; wid=width; }

user: user-1
content: 我看到两个地方，仅供参考： 1、第七行，构造函数内联定义的右花括号右边的分号  }; 2、成员函数这样定义不是很好 void Rectangle::print(){ cout<<"Rectangle Area is :"<<Rectangle::ComputerArea()<<endl; cout<<"Rectanhle C is :"<<Rectangle::CoumpterC()<<endl; } 建议修改为： void Rectangle::print(const Rectangle &r) { cout<<"Rectangle Area is :"<<r.ComputerArea()<<endl; cout<<"Rectanhle C is :"<<r.CoumpterC()<<endl; }

user: user-2
content: 在mainhans中你是怎么调用的？

user: user-3
content: 你的main函数在哪里？

user: user-0
content: Rectangle r1; r1. 然后它不会显示自己定义的那几个对象
user-0 提问: scanf_s与EOF的问题

回复:
user: user-1
content: 管它安不安全，把那个选项关掉

user: user-1
content: scanf会有不同吗？

user: user-0
content: 引用 3 楼 SuperDay 的回复：一开始就EOF试试看也是要输入3次scanf_s才能返回-1

user: user-0
content: 引用 2 楼 user-2 的回复：⊙∀⊙！Ctrl+z是EOF吗win的一行开头输入ctrl+z是eof呢

user: user-0
content: 引用 6 楼 SuperDay 的回复：scanf会有不同吗？提示scanf不安全…

user: user-1
content: 一开始就EOF试试看

user: user-2
content: ⊙∀⊙！Ctrl+z是EOF吗

user: user-0
content: 这是代码.
user-0 提问: c语言

回复:
user: user-1
content: 你这个题目是字符串还是数值？ 这个是数值的： int num,i=1； scanf("%d",&num); while（num）{ i*=num%10; num/=10;}

user: user-2
content: int num = 123456; int NUM[10] = {0}; int i = 0,j; for(i = 0;i < 10;i++) {      NUM[i] = num %10;      num /=10;     if(num == 0)   break;      } for(j=i-1;j>0;j--) {     printf("%d *",NUM[j]); } printf("%d\n",NUM[0]);   大概是这样，我没有上机跑，具体你可以调试下

user: user-3
content: __int64 Translate(int nCurrent) { 	__int64 nTotal = 1; 	while (nCurrent > 0) 	{ 		int nValue = nCurrent % 10; 		nCurrent = nCurrent / 10; 		nTotal *= nValue; 	} 	return nTotal; }

user: user-4
content: 这个更适合用递归吧
user-0 提问: c/c++ 不重复走格子求方法总数

回复:
user: user-1
content: 仅供参考  #include <iostream> using namespace std; #define MAX 100 int n, visited[2][MAX]; int way[8][2] = { {1,0},{0,1},{1,1},{-1,-1},{-1,0},{0,-1},{1,-1},{-1,1} }; int k; int dfs(int x,int y) { 	if (visited[x][y])		//访问过 		return 0; 	if (k == 1&&visited[x][y]==0)				//访问到最后的方格 		return 1; 	--k; 	visited[x][y] = 1;		 	int result = 0;								 	for (int i = 0; i < 8; ++i) {				//8个方向搜索 		int a = x + way[i][0], b = y + way[i][1];	 		if (a >= 0 && a < 2 && b >= 0 && b < n) {	//边缘检测 			result+=dfs(a, b); 		} 	} 	visited[x][y] = 0; 	++k; 	return result; } int main() { 	cin >> n; 	k = 2 * n;								//方格数 	int count = 0; 	for (int j = 0; j < n/2; ++j)			//根据对称性，取方格的四分之一即可，这里取左上角（n为奇数时中间部分单独计算） 		count += dfs(0, j); 	cout << (count * 2 + (n % 2 ? dfs(0, n / 2) : 0)) * 2; 	return 0; }

user: user-2
content: 引用 3 楼 SALLY๑ 的回复：引用 2 楼 user-2 的回复：可以分析思路，不要动不动求程序。想要程序可以想百度一下看看那求一下思路可以嘛应该是N*N吧？这个估计要用到递归，弄一个二维数组，初始0，然后先朝一个方向走，走到没路就到上一层，换一个方向。就这样，每次换一个方向直到走完为止。说起来很复杂，但要实际去做就不一定了，看你的思路有没有理清楚

user: user-0
content: 引用 2 楼 user-2 的回复：可以分析思路，不要动不动求程序。想要程序可以想百度一下看看那求一下思路可以嘛

user: user-2
content: 可以分析思路，不要动不动求程序。想要程序可以想百度一下看看

user: user-1
content: 使用dfs搜索一下就可以了
user-0 提问: 求问！用c或者c++求矩阵中n个数的乘积最大值！

回复:
user: user-1
content: 仅供参考：//将一个nxn的矩阵每行每列仅取一个数值使得乘积最大。假设没有值为0的元素。 #include <stdio.h> const int n=4; double mat[n][n]={     {1.0, 2.0, 4.0, 3.0},     {4.0, 3.0, 2.0, 3.0},     {5.0, 2.0, 1.0, 3.0},     {8.0, 2.0, 4.0, 0.5}, }; double p,pmax; int f[n][n]; void list(int m) {     for (int i=0;i<n;i++) {         if (f[m][i]==0) {             f[m][i]=1;             p*=mat[m][i];             if (m>=n-1) {                 if (p==pmax) {                     for (int j=0;j<n;j++) {                         for (int k=0;k<n;k++) {                             if (f[j][k]==1) printf("%d %lg\n",k,mat[j][k]);                         }                     }                 }             } else list(m+1);             p/=mat[m][i];             f[m][i]=0;         }     } } void calc(int m) {     for (int i=0;i<n;i++) {         if (f[m][i]==0) {             f[m][i]=1;             p*=mat[m][i];             if (m>=n-1) {                 if (p>pmax) pmax=p;             } else calc(m+1);             p/=mat[m][i];             f[m][i]=0;         }     } } int main() {     pmax=0.0;     p=1.0;     for (int j=0;j<n;j++) for (int k=0;k<n;k++) f[j][k]=0;     calc(0);     printf("pmax:%lg\n",pmax);     list(0);     return 0; } //pmax:640 //2 4 //0 4 //0 5 //0 8 //

user: user-2
content: 这个比那个更简单多了

user: user-3
content: 同上一个问题，可以用搜索算法