Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 要求：输出50个素数，请大神指教哪里错了，谢谢！

回复:
user: user-1
content: 引用 5 楼 S_GKCYY 的回复:bool表达式是啥？可以理解为if语句判断的必须是确定的关系，而不能赋值吗？if是如果的意思，如果后面你说该干啥。

user: user-0
content: bool表达式是啥？可以理解为if语句判断的必须是确定的关系，而不能赋值吗？

user: user-2
content: #include<stdio.h> int main() {     int x=2;     int cnt=0;     int ispreme=1;     int i;     while(cnt<50)     {         for(i=2;i<x;i++)         {             if(x%i==0)             {                 ispreme=0;                 break;             }         }         if(ispreme==1) {             printf("%d ",x);             cnt++;         }         x++;         ispreme = 1;     }     putchar(10); }  供参考～

user: user-2
content: if(ispreme=1) 改成： if(ispreme==1)  if判断的是bool表达式。不是赋值语句。注意一下～

user: user-0
content: 我找到了错误地方，但不是很明白。。。。希望各位能人志士不吝赐教。

user: user-3
content: 每次外循环开始新一轮循环的时候，需要重置ispreme值
user-0 提问: 求C语言程序

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

user: user-2
content: CSDN论坛新手指南[/quote]

user: user-3
content: 算一下某天到那一天的隔了几天，对5取余 要算隔了几天方法多得很，最没技术含量的你就直接获取两个时间的时间戳，然后除以一天的时间
user-0 提问: 请问a=-a为什么会取反符号

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

user: user-2
content: 是负号，不是取反。取反应该是~符号～

user: user-3
content: 他是两个运算符，把-a赋值给 a了

user: user-4
content: a赋值为负a

user: user-5
content: 可以理解为单目运算符负号，功能是取一个数的相反数

user: user-0
content: 引用 5 楼 csucxy的回复:a=-a的计算过程：计算表达式-a，即对a乘-1，再将表达-a的值对a赋值。 当然a最终结果就是所谓的取反。 单目运算符-的优先级别比赋值运算符=高 为什么在会有个乘-1的操作呢

user: user-6
content: a=-a的计算过程：计算表达式-a，即对a乘-1，再将表达-a的值对a赋值。 当然a最终结果就是所谓的取反。 单目运算符-的优先级别比赋值运算符=高

user: user-7
content: 引用 3 楼 與蘤舊縐 的回复:你的写的是a = -a，=-是合在一起的 不好意思，看错了还以为你想说-=，那就是-作减号（负号）

user: user-7
content: 你的写的是a = -a，=-是合在一起的

user: user-5
content: 负号‘-’’是单双目运算符，具有两种用途

user: user-8
content: -也可以是一个单目运算符。 =-确实不是一个运算符，而是=和-两个运算符
user-0 提问: C语言求 球体积

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

user: user-2
content: 引用 楼主 weixin_45807650 的回复:#include<stdio.h> #define PI 3.1415927 int main() { double r,a; while(scanf("%lf",&r)!=EOF) { getchar(); a=(double)4/3*PI*r*r*r; printf("%.3lf\n",a); } return 0; } while后的(scanf("%lf",&r)!=EOF)啥意思？ 求大佬指导  EOF是文件结尾 也代表-1 你要是想结束的话 windows下就在键盘摁ctrl+z 然后回车 具体可以百度一下EOF是什么
user-0 提问: c语言初学者求下面这道题的程序，求大神指点，谢谢，不胜感激

回复:
user: user-1
content: 可以用stdlib.h中的itoa

user: user-2
content: 个人以为，递归作为练习可以，但不可滥用，像这种循环可以搞定的事情，没必要用递归

user: user-3
content: 十六进制可以在printf之前加判断，输出后面的英文字符

user: user-3
content: 超过十进制不再适用

user: user-3
content: #include<stdio.h> void transform(int num,int system) { 	//system为目标进制 	if (num != 0) { 		transform(num / system, system); 		printf("%d", num % system); 	} } int main() { 	int num; 	scanf_s("%d", &num); 	transform(num,8); 	return 0; }
user-0 提问: 求教C语言怎样实现压缩文件夹为zip文件？

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

user: user-0
content: 引用 1 楼 user-2 的回复:https://blog.csdn.net/sadwjy520/article/details/77931918这篇博客我看过了，迭代读写有点不方便，有没有直接压缩文件夹的办法？不用命令行

user: user-2
content: https://blog.csdn.net/sadwjy520/article/details/77931918
user-0 提问: 小白求助——求大佬解答

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

user: user-2
content: 好好捋捋，哈哈

user: user-3
content: 引用 5 楼 qq_43764817 的回复:[quote=引用 4 楼 liups的回复:]明明就是对的嘛！递归到N=1时开始第一次输出，也就是1先输出 还是不太理解，为什么是从1开始输出的呀，最后输出的是N我知道[/quote] 递归调用的最后一次是N==0,但是这时if条件不成立，所以不会继续递归调用，也不会输出，直接返回了

user: user-4
content: 引用 4 楼 liups 的回复:明明就是对的嘛！递归到N=1时开始第一次输出，也就是1先输出 引用 楼主 qq_43764817 的回复:这里不应该是先输出后递归吗？ 感觉这里顺序搞反了。 明白了明白了

user: user-0
content: 引用 4 楼 liups的回复:明明就是对的嘛！递归到N=1时开始第一次输出，也就是1先输出 还是不太理解，为什么是从1开始输出的呀，最后输出的是N我知道

user: user-3
content: 明明就是对的嘛！递归到N=1时开始第一次输出，也就是1先输出

user: user-4
content: 引用 2 楼 qq_43764817 的回复:[quote=引用 1 楼 user-4的回复:]我觉得好像是反了 我感觉也是，不过这样敲出来也是对的[/quote] 对的？ 那估计就是咱俩的感觉有问题吧

user: user-0
content: 引用 1 楼 user-4的回复:我觉得好像是反了 我感觉也是，不过这样敲出来也是对的

user: user-4
content: 我觉得好像是反了
user-0 提问: 求解

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

user: user-2
content: 参考：https://blog.csdn.net/pfdvnah/article/details/86716898
user-0 提问: 求解

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

user: user-2
content: #define PI 3.1415 double r(周长/(2*PI));  // 圆形半径 double s1 = PI*r*r;  // 圆形面积 double b(周长/4);  // 正方形边长 double s2 = b*b;  // 正方形面积  至于周长怎么输入，这些基本都输入输出自己看书去吧

user: user-3
content: 这个应该是初一公式吧，很简单啊，套一下，1分钟就做完了
user-0 提问: 求解

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

user: user-2
content: CSDN论坛新手指南

user: user-2
content: 参考：https://blog.csdn.net/pfdvnah/article/details/87460351
user-0 提问: c语言编程题

回复:
user: user-1
content: 第二题的思路没有错，有一种情况没有考虑，比如：12=2*2*3。虽然结果是一样的，但是算法上是通不过的。

user: user-2
content: 第二题题目没拍好。第一题用循环做。第二题应该也差不多，用嵌套循环遍历到2~1000的数(除去本身)与自身能否整除得到约数，然后再相加与本身比较得到完数。如果是我，我会这样做，办法可能蠢了些。

user: user-3
content: 第四行j*j<=j是什么意思呀

user: user-4
content: 不会  但我会学点的

user: user-5
content: for 循环

user: user-0
content: 引用 26 楼 user-6 的回复：[quote=引用 25 楼 醒着一脸懵 的回复:] [quote=引用 23 楼 user-6 的回复：]这才是学习该有的样子。啥都叫别人写。你觉得你能掌握几成？ 自己动手，错了再说。手机上怎么结帖[/quote]手机无法结贴。[/quote]哦哦

user: user-6
content: 引用 25 楼 醒着一脸懵 的回复:[quote=引用 23 楼 user-6 的回复：]这才是学习该有的样子。啥都叫别人写。你觉得你能掌握几成？ 自己动手，错了再说。手机上怎么结帖[/quote]手机无法结贴。

user: user-0
content: 引用 23 楼 user-6 的回复：这才是学习该有的样子。啥都叫别人写。你觉得你能掌握几成？ 自己动手，错了再说。手机上怎么结帖

user: user-0
content: 引用 23 楼 user-6 的回复：这才是学习该有的样子。啥都叫别人写。你觉得你能掌握几成？ 自己动手，错了再说。嗯嗯 谢谢教导

user: user-6
content: 这才是学习该有的样子。啥都叫别人写。你觉得你能掌握几成？ 自己动手，错了再说。

user: user-6
content: 对。CSDN论坛新手指南

user: user-0
content: 引用 18 楼 user-6 的回复：#include<stdio.h> int main() { 	int sum1 = 0, sum2 = 0, n, k, m; 	double sum3 = 0; 	for (n = 1; n <= 100; n++) 		sum1 += n;// 这里对了  	for (k = 1; k <= 50; k++) 		sum2 += k;// 这里加的应该是平方 	 	for (m = 1; m <= 10; m++) 		sum3 += m;// 这里是倒数  	// 这里sum3是double型的，那么这三个数相加 	// 后的类型会转成double型的，而你在这里用的 	// 格式是%d，是不符合语法的。 	// 两种选择： 	// 1、将sum1和sum2都改成double型的，并且改成下面这样 	// 这样损失较小。 	printf("%lf\n", sum1 + sum2 + sum3); 	// 2、将后面强制转换为int型的，这样损失数据较大 	printf("%d\n", (int) (sum1 + sum2 + sum3));  	return 0; }#include<stdio.h> void main() {     int ,n,k,m;     double sum1=0,sum2=0,sum3=0;     for(n=1;n<=100;n++)     sum1+=n;     for(k=1;k<=50;k++)     sum2+=k*k;     for(m=1;m<=10;m++)     sum3+=1/m;     printf("%lf\n",sum1+sum2+sum3); } 现在这样对吗

user: user-0
content: 引用 19 楼 user-6 的回复：拓展，去搜搜“高斯求和”  for里面的循环变量没必要定义这么多，就一个就行了。通常用i，j，k真心谢谢

user: user-6
content: 拓展，去搜搜“高斯求和”  for里面的循环变量没必要定义这么多，就一个就行了。通常用i，j，k

user: user-6
content: #include<stdio.h> int main() { 	int sum1 = 0, sum2 = 0, n, k, m; 	double sum3 = 0; 	for (n = 1; n <= 100; n++) 		sum1 += n;// 这里对了  	for (k = 1; k <= 50; k++) 		sum2 += k;// 这里加的应该是平方 	 	for (m = 1; m <= 10; m++) 		sum3 += m;// 这里是倒数  	// 这里sum3是double型的，那么这三个数相加 	// 后的类型会转成double型的，而你在这里用的 	// 格式是%d，是不符合语法的。 	// 两种选择： 	// 1、将sum1和sum2都改成double型的，并且改成下面这样 	// 这样损失较小。 	printf("%lf\n", sum1 + sum2 + sum3); 	// 2、将后面强制转换为int型的，这样损失数据较大 	printf("%d\n", (int) (sum1 + sum2 + sum3));  	return 0; }

user: user-0
content: 引用 16 楼 user-6 的回复：计算1~n的和这个是对的。谢谢🙏

user: user-6
content: 计算1~n的和这个是对的。

user: user-0
content: 引用 14 楼 user-6 的回复：不知道你运行一下没，我运行的结果是0我的是6380

user: user-6
content: 不知道你运行一下没，我运行的结果是0

user: user-0
content: 引用 12 楼 醒着一脸懵 的回复：[quote=引用 10 楼 user-6 的回复：]不知道明天叫你写，你还能不能单独写出来。#include<stdio.h> void main() {     int sum1=0,sum2=0,n,k,m;     double sum3=0;     for(n=1;n<=100;n++)     sum1+=n;     for(k=1;k<=50;k++)     sum2+=k;     for(m=1;m<=10;m++)     sum3+=m;     printf("%d\n",sum1+sum2+sum3); }[/quote]第一个应该对吧
user-0 提问: (求教)为什么这个输入语句的输出总是缺少最后一个数字?

回复:
user: user-1
content: 引用 2 楼 201410164的回复:[quote=引用 1 楼 user-1的回复:]麻烦代码格式化一下。看的全乱在一起了。CSDN论坛新手指南  你这不很明显吗？你输入5后直接换行了。最后一次循环的a是5，然后getchar读取的是换行。直接退出循环了。5就没加上去。  对不起，以后会注意的...那么请问我如果想要显示出5应该怎么写这个回车退出的语句呢？[/quote] 用do-while可以

user: user-0
content: 引用 1 楼 user-1的回复:麻烦代码格式化一下。看的全乱在一起了。CSDN论坛新手指南  你这不很明显吗？你输入5后直接换行了。最后一次循环的a是5，然后getchar读取的是换行。直接退出循环了。5就没加上去。  对不起，以后会注意的...那么请问我如果想要显示出5应该怎么写这个回车退出的语句呢？🙏

user: user-1
content: 麻烦代码格式化一下。看的全乱在一起了。CSDN论坛新手指南  你这不很明显吗？你输入5后直接换行了。最后一次循环的a是5，然后getchar读取的是换行。直接退出循环了。5就没加上去。
user-0 提问: 求助啊~C语言二维数组赋值会调到其他行

回复:
user: user-1
content: 应该是： printf("a[%d][0]=%d a[%d][1]=%d\n", i , a[i][0], j, a[j][1] );

user: user-1
content: 你的问题是格式化输出的时候后面两个参数搞反了 printf("a[%d][0]=%d a[%d][1]=%d\n", i , a[i][0], a[j][1] , j );

user: user-2
content: 引用 楼主 mr.hman 的回复:#include <stdio.h>  int main() { 	int a[][2]={{0}}; 	int b[][2]={}; 	int i , j ; 	int x , y ; 	i = 0; 	j = 0; 	x = 0; 	y = 1; do{ 	scanf("%d", &a[i][0]); 	scanf("%d", &a[j][1]); 	printf("a[%d][0]=%d a[%d][1]=%d\n", i , a[i][0], a[j][1] , j ); 	i++; 	j++;  }while(a[i][0]!=0);  	return 0;  }     甚是不解呀，是二维数组初始化错误了吗？请大神帮忙一下 感谢~~~ 我又来了，刚才跟你说的怕你误解，int a[][2]={{0}}这样定义是可以的，但是这样定义你就确定了a的大小，就只有1一个二维数组的元素，因为你在后面的大括号中只有一个元素，所以a这个二维数组就只有一个元素，超过一个元素就越界了，你只能使用a[0][0],a[0][1]这个0下标的元素，其他的就不行了

user: user-2
content: 引用 楼主 mr.hman 的回复:#include <stdio.h>  int main() { 	int a[][2]={{0}}; 	int b[][2]={}; 	int i , j ; 	int x , y ; 	i = 0; 	j = 0; 	x = 0; 	y = 1; do{ 	scanf("%d", &a[i][0]); 	scanf("%d", &a[j][1]); 	printf("a[%d][0]=%d a[%d][1]=%d\n", i , a[i][0], a[j][1] , j ); 	i++; 	j++;  }while(a[i][0]!=0);  	return 0;  }     甚是不解呀，是二维数组初始化错误了吗？请大神帮忙一下 感谢~~~ 大兄弟，你这样定义a[][2]这个数组，你知道它是多大的吗？你这样的话就是使用这个数组就越界了，你可以用两种方式修改，第一，a[100][2]这样定义一个固定的大小；第二，int *（a[2]），你定义一个指针，每次都是用malloc获取分配空间

user: user-0
content: 明白了大兄弟 因为我是要两列的矩阵存放数据的 那还是得定义数组大小

user: user-0
content: 引用 4 楼 636f6c696e 的回复：应该是： printf("a[%d][0]=%d a[%d][1]=%d\n", i , a[i][0], j, a[j][1] );对哦 你不说我还没看出来
user-0 提问: 新手求教

回复:
user: user-1
content: VC6.0在win 8.1和win10中的安装使用  不会安装看这里。 没有安装源的话可以私信我，可以百度网盘分享给你（原版的vc6，需要手动打SP6）

user: user-0
content: 引用 12 楼 喵兮兮的回复:而且如果是汉化版的就是新建文件。项目 嗯，我这个电脑太难了，好几次下个vc6.0都安装不了，够难的

user: user-2
content: 而且如果是汉化版的就是新建文件。项目

user: user-2
content: 对，把版本换一下吧，不然用codeblocks也是不错的

user: user-0
content: 引用 9 楼 liups的回复:[quote=引用 7 楼 qq_45673225 的回复:] [quote=引用 2 楼 liups的回复:]点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了 应该早生成exe了，每次只要点个它就显示这个弹窗[/quote] 也就是说你一次都没有成功运行过了？ 如果是这样，结合你图中的文件夹信息，正常的exe不应该在那里，那么我建议你换一个原版的VC6.0（英文版的）。所有的汉化版本都不要用了[/quote] 哦哦，好吧，电脑应该自带的visual studio

user: user-1
content: 引用 7 楼 qq_45673225 的回复:[quote=引用 2 楼 liups的回复:]点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了 应该早生成exe了，每次只要点个它就显示这个弹窗[/quote] 也就是说你一次都没有成功运行过了？ 如果是这样，结合你图中的文件夹信息，正常的exe不应该在那里，那么我建议你换一个原版的VC6.0（英文版的）。所有的汉化版本都不要用了

user: user-1
content: 引用 5 楼 qq_45673225 的回复:[quote=引用 3 楼 喵兮兮的回复:]你建文件时要在new中选择project->应该是倒数第3个，建立工作空间，然后写上项目名等等按提示操作，再点new，选source，填写文件名.c,就可以了，先试试 我这个编译器不知道是什么版本，没有new,project[/quote] 不要用这种狗屁汉化版本！现在你只有自己英译汉了

user: user-0
content: 引用 2 楼 liups的回复:点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了 应该早生成exe了，每次只要点个它就显示这个弹窗

user: user-1
content: 引用 4 楼 qq_45673225 的回复:[quote=引用 2 楼 liups的回复:]点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了 是，之后再怎么弄额[/quote]点了就开始编译、连接这些，如果程序没有问题就开始执行（调试），如果有问题就会显示错误，这就要修改后再来一次了

user: user-0
content: 引用 3 楼 喵兮兮的回复:你建文件时要在new中选择project->应该是倒数第3个，建立工作空间，然后写上项目名等等按提示操作，再点new，选source，填写文件名.c,就可以了，先试试 我这个编译器不知道是什么版本，没有new,project

user: user-0
content: 引用 2 楼 liups的回复:点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了 是，之后再怎么弄额😓

user: user-2
content: 你建文件时要在new中选择project->应该是倒数第3个，建立工作空间，然后写上项目名等等按提示操作，再点new，选source，填写文件名.c,就可以了，先试试

user: user-1
content: 点是那个按钮就可以了。 原因：编译器还没有生成相应的exe，自然无法调试了

user: user-3
content: 编译通过了吗？
user-0 提问: 这个每个子函数里的int n是啥？

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

user: user-2
content: 告诉这个函数，传给它的数组a的元素个数

user: user-3
content: 拒推测必然是数组的元素个数
user-0 提问: C语言浮点型精度

回复:
user: user-0
content: 引用 1 楼 user-1的回复:就是有效数字，中学数学还记得吗？ 意思是保留的有效数字的位数？

user: user-1
content: 就是有效数字，中学数学还记得吗？
user-0 提问: 求助

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

user: user-2
content: 用命令stat测试文件的时间戳，如果时间戳改变就copy。  在调试shell用命令touch就可以改变时间戳做测试。

user: user-3
content: 感觉只能遍历文件数据对照，比如每1秒访问所有文件的信息，与之前记录的信息对比，有不同复制，并更新信息

user: user-4
content: 文件大小相应的api可以自行百度，代码写一下并没有那么难
user-0 提问: 求10000以内的回文素数

回复:
user: user-1
content: 应该是先找个回文，再判断它是不是素数啊

user: user-0
content: 引用 1 楼 SuperDay的回复:你这个思路完全不对嘛，不知道你怎么想的 可以具体说一下吗，我其实确实很混乱

user: user-1
content: 你这个思路完全不对嘛，不知道你怎么想的

user: user-2
content: 所以咋改？
user-0 提问: 给定一串字符输出最后两数字

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

user: user-2
content: isdigit  判断一个字符是否是数字。

user: user-3
content: 最后两位不是数字怎么办？CSDN论坛新手指南
user-0 提问: 求求大佬帮忙看下 为什么运行没有结果

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

user: user-2
content: 贴代码更方便。截图还要保存再上传。。。CSDN论坛新手指南

user: user-0
content: 引用 6 楼 bsnow 的回复： int main() {     printf("Hello World");     double b=1,c,sum=0;     for(int a=1;a<=9;a++)     {         b=b*(double)a;         if(a%2 == 0)         {             b = -1/b;         }         else         {             b = 1/b;         }         sum = b + sum;     }     printf("sum=%f",sum);     return 0; }  根据你的程序，这样应该可以打印出值。不过我认为根据你的题目，你阶乘这个地方还没做，所以结果应该是错的。接下来你自己再改改吧。好的

user: user-3
content: int main() {     printf("Hello World");     double b=1,c,sum=0;     for(int a=1;a<=9;a++)     {         b=b*(double)a;         if(a%2 == 0)         {             b = -1/b;         }         else         {             b = 1/b;         }         sum = b + sum;     }     printf("sum=%f",sum);     return 0; }  根据你的程序，这样应该可以打印出值。不过我认为根据你的题目，你阶乘这个地方还没做，所以结果应该是错的。接下来你自己再改改吧。

user: user-0
content: c语言没有办法表示分数吗

user: user-0
content: 引用 3 楼 user-4 的回复：[quote=引用 2 楼 weixin_45781181的回复:][quote=引用 1 楼 user-4 的回复：]int运算，1除以大于1的数，结果取整为0 要用浮点数来运算不是1除以b 是想表示b分之1 c语言初学者莫笑话[/quote] 一回事，C语言没有分数，这个就是除法运算，你把类型改成浮点型吧[/quote]改成double了 但是还是没有结果

user: user-4
content: 引用 2 楼 weixin_45781181的回复:[quote=引用 1 楼 user-4 的回复：]int运算，1除以大于1的数，结果取整为0 要用浮点数来运算不是1除以b 是想表示b分之1 c语言初学者莫笑话[/quote] 一回事，C语言没有分数，这个就是除法运算，你把类型改成浮点型吧

user: user-0
content: 引用 1 楼 user-4 的回复：int运算，1除以大于1的数，结果取整为0 要用浮点数来运算不是1除以b 是想表示b分之1 c语言初学者莫笑话

user: user-4
content: int运算，1除以大于1的数，结果取整为0 要用浮点数来运算
user-0 提问: 这两个程序的求值顺序是什么情况呢？

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

user: user-2
content: 希望新版教材出现。虽然我用不上。。。

user: user-3
content: 引用 4 楼 user-4 的回复:[quote=引用 3 楼 liups的回复:][quote=引用 2 楼 user-4 的回复:] 是老师出的题吗？孔乙己式 象是个PPT[/quote] 嗯，真是误人子弟，研究这些有什么意义呢？想搞个编译器吗？[/quote] 这些老师真是悲哀啊，估计他们就是这样学的，手上的教材什么的也是这样写的。更悲哀的是又这样教他们的学生！

user: user-3
content: 引用 4 楼 user-4 的回复:[quote=引用 3 楼 liups的回复:][quote=引用 2 楼 user-4 的回复:] 是老师出的题吗？孔乙己式 象是个PPT[/quote] 嗯，真是误人子弟，研究这些有什么意义呢？想搞个编译器吗？[/quote] 老师想教一点有深度、难度的问题，结果却传授了错误的知识！其实最近类似的错误看到很多，说明这种问题搞不清楚的老师还很多。

user: user-4
content: 引用 3 楼 liups的回复:[quote=引用 2 楼 user-4 的回复:] 是老师出的题吗？孔乙己式 象是个PPT[/quote] 嗯，真是误人子弟，研究这些有什么意义呢？想搞个编译器吗？

user: user-3
content: 引用 2 楼 user-4 的回复:是老师出的题吗？孔乙己式 象是个PPT

user: user-4
content: 是老师出的题吗？孔乙己式

user: user-3
content: C语言参数的求值顺序标准中没有规定，取决于编译器。  半吊子老师
user-0 提问: 求助，c语言for……if的问题

回复:
user: user-0
content: 引用 7 楼 liups的回复:[quote=引用 6 楼 你吃辣条不 的回复:] 好像有点懂了，是不是当i=1，3，5，7，9时，余数为1，此时i%2为真，所以执行continue返回if语句，当i=0，2，4，6，8时，余数为0，所以i%2为假，跳过continue语句到下一行 对的！非0就为真（true，PS：C++才有true，不过C用法是一样的，只是没有规定true和false关键字），0为假[/quote] 谢谢大佬

user: user-1
content: 引用 6 楼 你吃辣条不 的回复:好像有点懂了，是不是当i=1，3，5，7，9时，余数为1，此时i%2为真，所以执行continue返回if语句，当i=0，2，4，6，8时，余数为0，所以i%2为假，跳过continue语句到下一行 对的！非0就为真（true，PS：C++才有true，不过C用法是一样的，只是没有规定true和false关键字），0为假

user: user-0
content: 好像有点懂了，是不是当i=1，3，5，7，9时，余数为1，此时i%2为真，所以执行continue返回if语句，当i=0，2，4，6，8时，余数为0，所以i%2为假，跳过continue语句到下一行

user: user-1
content: 引用 4 楼 你吃辣条不 的回复:[quote=引用 3 楼 liups的回复:][quote=引用 2 楼 你吃辣条不 的回复:] [quote=引用 1 楼 user-2的回复:]if (i % 2)   continue;  就是i为奇数（1，3，5，7，9）的时候，跳过 sum的值就是偶数的和，即0 + 2 + 4 + 6 + 8 = 20 那i%2是不是等价于i%2==0啊？[/quote] 不等价，但是这里也可以这样写[/quote] if (i%2)   continue 这句话我的理解是如果i%2的余数绝对等于0，那么返回if语句。 有哪里不对吗大佬[/quote] 或者说结果、效果可以说一样，但是进行的运算不一样，效率也不一样，推荐i%2

user: user-0
content: 引用 3 楼 liups的回复:[quote=引用 2 楼 你吃辣条不 的回复:] [quote=引用 1 楼 user-2的回复:]if (i % 2)   continue;  就是i为奇数（1，3，5，7，9）的时候，跳过 sum的值就是偶数的和，即0 + 2 + 4 + 6 + 8 = 20 那i%2是不是等价于i%2==0啊？[/quote] 不等价，但是这里也可以这样写[/quote] if (i%2)   continue 这句话我的理解是如果i%2的余数绝对等于0，那么返回if语句。 有哪里不对吗大佬

user: user-1
content: 引用 2 楼 你吃辣条不 的回复:[quote=引用 1 楼 user-2的回复:]if (i % 2)   continue;  就是i为奇数（1，3，5，7，9）的时候，跳过 sum的值就是偶数的和，即0 + 2 + 4 + 6 + 8 = 20 那i%2是不是等价于i%2==0啊？[/quote] 不等价，但是这里也可以这样写

user: user-0
content: 引用 1 楼 user-2的回复:if (i % 2)   continue;  就是i为奇数（1，3，5，7，9）的时候，跳过 sum的值就是偶数的和，即0 + 2 + 4 + 6 + 8 = 20 那i%2是不是等价于i%2==0啊？

user: user-2
content: if (i % 2)   continue;  就是i为奇数（1，3，5，7，9）的时候，跳过 sum的值就是偶数的和，即0 + 2 + 4 + 6 + 8 = 20
user-0 提问: 大佬们求助 ！。C语言初学者

回复:
user: user-1
content: 在第一个WHILE中存在s=s/10；这个语名已将s赋值为0了。 解决办法1：使用临时变量int k = s; 办法2:只用一个while将，sum = sum *10 + s/10放在同一个while中

user: user-2
content: 引用 楼主 mmdddeade的回复:为什么第二个while不执行了，应该怎样写呢?  求解 适时使用tab键。看的更舒服
user-0 提问: C语言数组的应用，不知道从那插入

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

user: user-2
content: 首先查找插入位置，然后移动插入位置之后的元素，把插入位置腾出来，最后插入新的元素。

user: user-3
content: 将输入的数与原数组中的数依次比较，当处于某两个数之间或者与某个数相等，那就是插入点； 再把其他元素往后移

user: user-4
content: 这种插入的重点是找到插入点，这个过程叫查找，因为是有序的，所以查找方法和无序的不一样，具体请看数据结构或算法书

user: user-5
content: 你的思路是啥 。。。。
user-0 提问: 下标输出怎么都有问题，怎么改？？

回复:
user: user-1
content: 引用 3 楼 OYJJO 的回复:[quote=引用 1 楼 45045399的回复:]#include "stdio.h"  int main () {    int a[8];    int i,n = 1,m = 1;  //默认为第一个为最大值和最小值    int max,min;        printf("请输入8个数:\n");    for(i=0;i<8;i++)    scanf("%d",&a[i]);        max=min=a[0];        for(i=1;i<8;i++)    {       if(a[i]>max){        max=a[i];n=i + 1;}  //第几个数与数组下标的关系为数组下标 + 1    }         for(i=1;i<8;i++)    {        if(a[i]<min){       min=a[i];m=i + 1;}  //同上    }        printf("最大数为第%d个:%d,最小数为第%d个:%d\n",n,max,m,min);    return 0; }仅供参考 那那两个if能不分开，在一个for里吗？[/quote] 两个if语句可以放在一个for循环里面，在这个程序里面不影响，

user: user-2
content: 试试就知道了。

user: user-0
content: 引用 1 楼 45045399的回复:#include "stdio.h"  int main () {    int a[8];    int i,n = 1,m = 1;  //默认为第一个为最大值和最小值    int max,min;        printf("请输入8个数:\n");    for(i=0;i<8;i++)    scanf("%d",&a[i]);        max=min=a[0];        for(i=1;i<8;i++)    {       if(a[i]>max){        max=a[i];n=i + 1;}  //第几个数与数组下标的关系为数组下标 + 1    }         for(i=1;i<8;i++)    {        if(a[i]<min){       min=a[i];m=i + 1;}  //同上    }        printf("最大数为第%d个:%d,最小数为第%d个:%d\n",n,max,m,min);    return 0; }仅供参考 那那两个if能不分开，在一个for里吗？

user: user-3
content: 数组下表是从0开始，第一个是0， 所以你要的第几个需要+1

user: user-1
content: #include "stdio.h"  int main () {    int a[8];    int i,n = 1,m = 1;  //默认为第一个为最大值和最小值    int max,min;        printf("请输入8个数:\n");    for(i=0;i<8;i++)    scanf("%d",&a[i]);        max=min=a[0];        for(i=1;i<8;i++)    {       if(a[i]>max){        max=a[i];n=i + 1;}  //第几个数与数组下标的关系为数组下标 + 1    }         for(i=1;i<8;i++)    {        if(a[i]<min){       min=a[i];m=i + 1;}  //同上    }        printf("最大数为第%d个:%d,最小数为第%d个:%d\n",n,max,m,min);    return 0; }仅供参考
user-0 提问: 用VS2010,写C语言("D\:.txt","w");为什么用记事本打开是ASCII值不是用“wb”打开才是二进制吗

回复:
user: user-1
content: 执行程序后，我的R.txt里面的数据是： 1   0   6   1   0   7   1   0   8   1   0   9

user: user-1
content: CSDN论坛新手指南

user: user-2
content: 你说的编码  最起码的 ASCII 都不知道  https://baike.baidu.com/item/ASCII  书上没有提到ASCII你就可以把书扔了

user: user-0
content: 如何实现在txt文件看到10进制数据呢，或者不在txt文件看用什么可以看到10进制数

user: user-2
content: ?  https://docs.microsoft.com/zh-cn/dotnet/standard/io/file-path-formats
user-0 提问: 拜托帮帮忙c语言的errorc2084和警告c4022

回复:
user: user-1
content: 引用 1 楼 user-2 的回复:这类基础问题应该在百度搜索，比论坛问高效的多 不然，编译器提示信息已经说得很清楚了！英文看不懂的话可以查一下

user: user-2
content: 这类基础问题应该在百度搜索，比论坛问高效的多
user-0 提问: 萌新求助！

回复:
user: user-1
content: 引用 8 楼 qq_45802164 的回复:[quote=引用 6 楼 與蘤舊縐的回复:]temp=*(pa+(9-i)) *(pa+(9-i))=pa[i] pa[i]=temp 用这一段吗？前面需不需要改呀，直接用就是啥都不变。。。[/quote]  这一段只是告诉你如何交换 至于你的程序很有问题，不知道你用的什么编译器，我想gcc和vc压根不会让你跑起来 首先函数传入了两个参数，第一个应当是字符串的长度，所以在使用函数之前先得获取字符串长度，然后传入 其次，你的函数中for循环的条件，不能用i，传入的就是i，如果用j表示，则j应当小于i而不是小于10，否则如果你输入的字符串长度根本没有10，就会访问一块没有初始化的内存 最后交换的时候是字符串的正数第n个和倒数第n个交换，而不是数组下标倒数第n个

user: user-0
content: 引用 5 楼 與蘤舊縐的回复:[quote=引用 3 楼 qq_45802164 的回复:] 就是，为啥他只能赋值一半啊，后一半不会改变。比如qwertyuiop，输出就是poiuyyuiop 还搞不明白吗 你的程序前五个获得了后五个的值，而后五个要获得值时获得的是此时前五个的值，也就是原本后五个的值 poiuy反过来就是yuiop[/quote] 这是我们上学期c语言一道题，反转一串字符，储存加输出。有人用两个指针来做，我比较想知道我这个程序能不能通关修改完成这个过程呀

user: user-0
content: 引用 6 楼 與蘤舊縐的回复:temp=*(pa+(9-i)) *(pa+(9-i))=pa[i] pa[i]=temp 用这一段吗？前面需不需要改呀，直接用就是啥都不变。。。

user: user-0
content: 引用 5 楼 與蘤舊縐的回复:[quote=引用 3 楼 qq_45802164 的回复:] 就是，为啥他只能赋值一半啊，后一半不会改变。比如qwertyuiop，输出就是poiuyyuiop 还搞不明白吗 你的程序前五个获得了后五个的值，而后五个要获得值时获得的是此时前五个的值，也就是原本后五个的值 poiuy反过来就是yuiop[/quote] 哦，明白了。。。，谢谢。

user: user-1
content: temp=*(pa+(9-i)) *(pa+(9-i))=pa[i] pa[i]=temp

user: user-1
content: 引用 3 楼 qq_45802164 的回复:就是，为啥他只能赋值一半啊，后一半不会改变。比如qwertyuiop，输出就是poiuyyuiop 还搞不明白吗 你的程序前五个获得了后五个的值，而后五个要获得值时获得的是此时前五个的值，也就是原本后五个的值 poiuy反过来就是yuiop

user: user-0
content: 引用 2 楼 與蘤舊縐的回复:如果你传入的i是字符串的长度，那么for循环的条件应该是int j=0;j<i;j++ 就是，为啥他只能赋值一半啊，后一半不会改变。比如qwertyuiop，输出就是poiuyyuiop

user: user-0
content: 就是，为啥他只能赋值一半啊，后一半不会改变。比如qwertyuiop，输出就是poiuyyuiop

user: user-1
content: 如果你传入的i是字符串的长度，那么for循环的条件应该是int j=0;j<i;j++

user: user-1
content: 这个函数明明接受两个变量，怎么搞成这个样子 另外你只有一个数组，该顺序需要的是交换，而不是纯粹的赋值，比如你一开始把最后一个赋值给了第一个，循环最后，第一个又赋值给了最后一个，但此时你的第一个本就是原来的最后一个

user: user-1
content: mingw不就是gcc和g++吗，传参少一个都给过

user: user-0
content: 引用 10 楼 與蘤舊縐的回复:[quote=引用 8 楼 qq_45802164 的回复:] [quote=引用 6 楼 與蘤舊縐的回复:]temp=*(pa+(9-i)) *(pa+(9-i))=pa[i] pa[i]=temp 用这一段吗？前面需不需要改呀，直接用就是啥都不变。。。[/quote]  这一段只是告诉你如何交换 至于你的程序很有问题，不知道你用的什么编译器，我想gcc和vc压根不会让你跑起来 首先函数传入了两个参数，第一个应当是字符串的长度，所以在使用函数之前先得获取字符串长度，然后传入 其次，你的函数中for循环的条件，不能用i，传入的就是i，如果用j表示，则j应当小于i而不是小于10，否则如果你输入的字符串长度根本没有10，就会访问一块没有初始化的内存 最后交换的时候是字符串的正数第n个和倒数第n个交换，而不是数组下标倒数第n个[/quote] 多谢(o^^o)大佬！我好好想想。另外我的是mingw编译器

user: user-1
content: j不是小于i~~，只需要到i的一半就够了，4个数只要交换两次
user-0 提问: 为什么不能运行求救

回复:
user: user-0
content: 引用 1 楼 user-1 的回复：CSDN论坛新手指南不好意思，了解了，怎么删帖子

user: user-1
content: CSDN论坛新手指南

user: user-1
content: 不用删，你在下面再发一遍代码即可。顺便描述一下你的问题。
user-0 提问: C语言的小编程问题

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

user: user-2
content: #include <stdio.h> #include <math.h>  void print_n_ch(char ch, int n) { 	for (int i = 0; i < n; ++i) { 		printf("%c", ch); 	} }  int main(void) { 	char ch; 	scanf_s("%c", &ch, 1); 	int hn = ch - 'A'; 	int n = (hn << 1) + 1; 	for (int i = 0; i < n; ++i) { 		print_n_ch(' ', abs(hn - i)); 		char cur = ch - abs(hn - i); 		int cur_n = ((hn << 1) + 1) - (abs(hn - i) << 1); 		print_n_ch(cur, cur_n); 		printf("\n"); 	} 	return 0; }

user: user-3
content: int count = 1; for(i = 'A';i <= 'D';i++) { 	for(j = 0;j < count;j++) 	{ 		printf("%c",i); 	} 	count += 2; 	printf("\n");  } for(i = 'C';i >= 'A';i--) { 	count -= 2; 	for(j = 0;j < count;j++) 	{ 		printf("%c",i); 	}	 	printf("\n");  }   差不多是这样吧，中心显示的话我就没写了

user: user-0
content: 引用 1 楼 喜欢做我自己的回复: int count = 1; for(i = 'A';i <= 'D';i++) { 	for(j = 0;j < count;j++) 	{ 		printf("%c",i); 	} 	count += 2; 	printf("\n");  } for(i = 'C';i >= 'A';i--) { 	count -= 2; 	for(j = 0;j < count;j++) 	{ 		printf("%c",i); 	}	 	printf("\n");  }   差不多是这样吧，中心显示的话我就没写了 哥，你的代码我有些看不懂，但是好像不是我想要的答案……不过谢谢了
user-0 提问: c语言二叉树的创建

回复:
user: user-1
content: 先序输入。  你将所有空的补上#就很明显了。  步骤： 先访问根结点，A 再访问左子树，B 访问B的左子树，D D无左右子树，## B无右子树，# 访问A右子树，C 访问C的左子树，E 。。。。 。。。。   规则先根结点，再左子树，最后右子树。即：DLR
user-0 提问: 直接插入排序 循环表达式

回复:
user: user-1
content: CSDN论坛新手指南

user: user-0
content: 引用 楼主 a31576jdj的回复:为什么使用--j，执行后，不就变成了A[0]复制A[1]了吗? 我错了，循环语句执行顺序搞错了，谢谢大家了

user: user-0
content: 我错了，循环语句执行顺序搞错了，谢谢大家了

user: user-2
content: A[0]存放要比较的值

user: user-1
content: 为啥是A[0]复制A[1]？这代码没问题啊。里层for循环是大于哨兵的数后移一位。然后将哨兵放到插入的位置。

user: user-3
content: 什么意思？不是后移至某个位置，再做插入吗？
user-0 提问: 初学者求组

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

user: user-2
content: 去掉scanf中的\n 另外，area没有定义

user: user-3
content: 光秃秃一个main()函数看起来太别扭了 自己写的话还是按标准来吧 int main(void) {     return 0; } 或者 int main(int argc, char *argv[]) {     return 0; }

user: user-4
content: 1. main没标返回值（应该是警告） 2. main参数没标void（警告） 3. main里没有返回值（应该是警告） 4. scanf内的\n（逻辑问题，语法没问题） 5. area未定义

user: user-5
content: scanf \n用法错误，area没定义.

user: user-6
content: 引用 2 楼 qq_45804184 的回复:应该就是scanf的问题了，我也是初学者area没定义

user: user-7
content: 应该就是scanf的问题了，我也是初学者

user: user-8
content: scanf不需要换行符，错误让编译器检查就好了呀
user-0 提问: 求帮助

回复:
user: user-0
content: 求一个学习c语言栈程序的视频网站

user: user-1
content: CSDN论坛新手指南

user: user-2
content: 规范标题，作业别发  你可以将已经写的代码放上来来寻求帮助，而不是让别人帮你写
user-0 提问: 求代码

回复:
user: user-1
content: 1~N中每个数的约数的个数的和。

user: user-1
content: 不好意思。你写的和我说的不一样。CSDN论坛新手指南

user: user-0
content: 引用 5 楼 user-1的回复:看看你的代码。 #include<stdio.h> int main(){     int n;     int sum=0;     scanf("%d",&n);     if(n==0) return 0;     for(int i=1;i<=n/2;i++)         {         if(n%i==0)         {             sum++;         }         }     printf("%d",sum+1); }

user: user-1
content: 看看你的代码。

user: user-0
content: 引用 2 楼 user-1的回复:m%n=0说明n是m的是“因”。说白了就是1~N中每个数的约数的个数的和。 按你的想法写不对我试了

user: user-0
content: 引用 2 楼 user-1的回复:m%n=0说明n是m的是“因”。说白了就是1~N中每个数的约数的个数的和。 可是三的约数只有两个啊

user: user-1
content: m%n=0说明n是m的是“因”。说白了就是1~N中每个数的约数的个数的和。
user-0 提问: C语言，求解

回复:
user: user-1
content: 未命名3. c文件跟main. c都有main函数，去除一个文件

user: user-2
content: 就是说你之前这个代码运行的程序还没关，因此未命名3.exe不可写，于是你编译失败收到提醒。

user: user-3
content: 一个项目只能有一个main函数。CSDN论坛新手指南

user: user-4
content: 最简单的办法，重启电脑 想找的话，开任务管理器
user-0 提问: C语言问题，求大佬解决

回复:
user: user-1
content: 引用 4 楼 youhehu 的回复:[quote=引用 3 楼 與蘤舊縐的回复:]那你就用一个数组存储输入的字符串 用一个变量存储当前最长的片段长度 用一个变量存储当前片段的长度 遍历字符串，当后一个字符和前一个字符相同时，当前片段长度+1，否则比较当前最长片段长度和当前片段长度的大小，然后更新当前最长片段长度，然后重置当前片段长度，继续遍历，直到字符串被完整遍历 能不能给个关键代码，我新手[/quote]  自己先尝试呗，我想这个逻辑够简单了，又没什么骚操作 出了问题再说

user: user-0
content: 引用 3 楼 與蘤舊縐的回复:那你就用一个数组存储输入的字符串 用一个变量存储当前最长的片段长度 用一个变量存储当前片段的长度 遍历字符串，当后一个字符和前一个字符相同时，当前片段长度+1，否则比较当前最长片段长度和当前片段长度的大小，然后更新当前最长片段长度，然后重置当前片段长度，继续遍历，直到字符串被完整遍历 能不能给个关键代码，我新手

user: user-1
content: 那你就用一个数组存储输入的字符串 用一个变量存储当前最长的片段长度 用一个变量存储当前片段的长度 遍历字符串，当后一个字符和前一个字符相同时，当前片段长度+1，否则比较当前最长片段长度和当前片段长度的大小，然后更新当前最长片段长度，然后重置当前片段长度，继续遍历，直到字符串被完整遍历

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:最纯净神奇字符型数组片段是什么 众所周知，猪猪学姐遭到了邹学长的重拳出击后并不不服气，于是找来了我胖哥帮忙，我胖哥可是大魔法师，邹学长自知打不过我胖哥，于是也找到了古月学姐，但是古月学姐当然也打不过我胖哥（我胖哥可是最强的）。于是跑到了魔法森林，去寻找传说中的神奇字符型数组来打败我胖哥。神奇字符串有“0”和“1”组成，现在要找到一个最纯净的字符型数组片段，即连续的相同字符最长的一段。请告诉我最纯净的字符型数组片段的长度。

user: user-1
content: 最纯净神奇字符型数组片段是什么
user-0 提问: c程序问题求救！！

回复:
user: user-0
content: #include <stdio.h> int main() {  int n,a[50];//定义数据   int i,sum=0;       printf("输入：\n");//输入n值   scanf("%d\n",&n);    for(i=0;i<n;i++)  {   scanf("%d",&a[i]);  }//输入数组内整数     int max=a[0],min=a[0];//循环   for(i=0;i<n;i++)  {   sum=sum+a[i];  if(a[i]>max)   max=a[i];   if(a[i]<min)  min=a[i];  }     printf("输出：\n%d,%d,%d",sum,max,min);  return 0; }

user: user-1
content: 解决了就结贴。CSDN论坛新手指南

user: user-1
content: 引用 6 楼 余国煜 的回复:[quote=引用 3 楼 user-2的回复:]C/C++明确规定，数组定义时长度必须使用大于0的整型常量。因此根据运行时输入变量的值来限定数组的长度是不可实现。如果是C++，可以使用vector来实现所谓变长度数组的需求，但vector实质上并不是数组。 哦哦，不是不是，先确定a[50]，容量定好方可解决[/quote]那不就是我的方法吗？

user: user-0
content: 引用 3 楼 user-2的回复:C/C++明确规定，数组定义时长度必须使用大于0的整型常量。因此根据运行时输入变量的值来限定数组的长度是不可实现。如果是C++，可以使用vector来实现所谓变长度数组的需求，但vector实质上并不是数组。 哦哦，不是不是，先确定a[50]，容量定好方可解决

user: user-0
content: 很奇怪的是，我发现其实现在是可以用scanf输入n，半路定义数组a的大小的，现在题目已解决，不知道是不是现在的c支持数组临时输入数组大小了

user: user-0
content: 引用 2 楼 wowpH的回复:#define MAX_N 51   int main() {    int a[MAX_N];     //....... } 开头定义max_n可以吗，题目是n要输入的哦

user: user-2
content: C/C++明确规定，数组定义时长度必须使用大于0的整型常量。因此根据运行时输入变量的值来限定数组的长度是不可实现。如果是C++，可以使用vector来实现所谓变长度数组的需求，但vector实质上并不是数组。

user: user-1
content: #define MAX_N 51   int main() {    int a[MAX_N];     //....... }
user-0 提问: if运行后出来的结果都一样

回复:
user: user-1
content: 为啥这么多人喜欢写%d,%d呢

user: user-2
content: sqrt（（a-2）*(a-2)+(b-2)*(b-2)）<1

user: user-3
content: 你是怎么输入的，输出又是什么结果？

user: user-4
content: 你输入这个试试： 0,0
user-0 提问: 到底哪有问题？？？？求助

回复:
user: user-1
content: 为了防止出错，还是第一个和第二个for循环，都加上花括号，sum初始化

user: user-2
content: 你的括号有问题，建议初学者每一个括号都不要丢，特别是在嵌套循环中

user: user-3
content: 貌似初始化也有问题emmmm

user: user-3
content: 你第二个for循环想要控制下面的scanf与sum加和操作吧，但你没用大括号把它们两个括起来，所以系统判定为你的第二个for循环只用来输入emmm偷懒的话，可以把scanf那句后面的分号改成逗号

user: user-4
content: 首先变量初始化没做好，然后里面的第二个循环你记得加括号 不然默认循环体为后面一句内容，但是这里求和肯定是在第二个循环体内的，所以加括号，求平均值放在第二个循环体外，因为你要根据求和的值再去求平均，注意格式问题，至少注意美不美观叭，养成习惯就好多了

user: user-5
content: 引用 1 楼 user-17 的回复:括号要写全，养成好习惯。CSDN论坛新手指南 for循环！

user: user-6
content: sum数组未初始化  应该初始化为0

user: user-7
content: 首先变量初始化(你可以先循环输出一遍sum和v看看里面是什么东西)，其次v和输出放外层，三个数加完再求平均数

user: user-8
content: 记得结贴！！！

user: user-9
content: 引用 9 楼 OYJJO的回复:[quote=引用 6 楼 user-17 的回复:] sum[x]没初始化。说不定一开始sum[x]就为100呢。  记得结贴给分。 [/quote] 数组初始化要用大括号，你这样没用，而且还是初始化了一个没有声明地址空间的变量

user: user-10
content: 养成加括号的好习惯，sum.没初始化

user: user-11
content: 直接看十一楼的吧  他写的是对的

user: user-12
content: 错误有三： 第一，求和sum与平均值v要赋初值0，不然没办法执行四则运算。 第二，平均值不能在第二个循环体里放，要移到第一个循环体里，第二个循环体是为了加总和的。 第三，printf语句同上。

user: user-13
content: 要养成数据初始化，注意循环体的范围

user: user-14

user: user-15
content: 额啊，我也不知了

user: user-16
content: 编译没错，第二个for没有括号功能不对吧

user: user-17

user: user-17
content: #include<stdio.h> int main() { 	int x, y; 	int a[5][3], sum[5], v[5]; 	printf("请输入5人三门课的成绩：\n"); 	for (x = 0; x < 5; x++) { 		sum[x] = 0; 		for (y = 0; y < 3; y++) { 			scanf("%d", &a[x][y]); 			sum[x] += a[x][y]; 		} 		v[x] = sum[x] / 3; 		printf("第%d人的总分为%d平均分为%d\n", x + 1, sum[x], v[x]); 	} 	return 0; }

user: user-17
content: 这么大个桌面非要挪到这里。右边留着干嘛
user-0 提问: 大佬们帮帮我

回复:
user: user-0
content: 引用 9 楼 weixin_40290083的回复:你的reg51. h中应该用到了这个lib库文件，但是没有在目标位置找到 好的，多谢我试一下

user: user-1
content: 你的reg51. h中应该用到了这个lib库文件，但是没有在目标位置找到

user: user-2
content: CSDN论坛新手指南

user: user-0
content: 引用 6 楼 user-3的回复:不好意思，我没有<reg51.h>，没办法看。 好吧。。。。。。。

user: user-3
content: 不好意思，我没有<reg51.h>，没办法看。

user: user-0
content: 引用 3 楼 user-3的回复: 你的程序不给出来，不知道你的程序出了什么问题 喔喔喔我发下面了，你可以帮我看看吗

user: user-0
content: #include <reg51.h>  typedef unsigned int uint;	  //对数据类型进行声明定义 typedef unsigned char uchar;  uchar SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar COM[]={0x01,0x02,0x04,0x08,0x10,0x20}; uchar dis_buf[6]={0,0,0,0,0,0};   sbit DQ=P2^0;  void delay1ms(uint t) {   uint x;   for(;t>0;t--)   {    for(x=110;x>0;x--);   } }  uchar init() {  uchar i;  DQ=0;  i=70;  while(i--);  DQ=1;  i=0;  while(DQ)  {   delay1ms(1);   i++;   if(i>5)   {    return 0;   }  }  return 1; }  void writebyte(uchar dat) {  uint i,j;  for(j=0;j<8;j++)  {   DQ=0;   i++;   DQ=dat&0x01;   i=6;   while(i--);   DQ=1;   dat>>=1;  } }  uchar readbyte() {  uint byte,bi;  uint i,j;  for(j=8;j>0;j--)  {   DQ=0;   i++;   DQ=1;   i++;   i++;   bi=DQ;   byte=(byte>>1)|(bi<<7);   i=4;   while(i--);  }  return byte; }  void changtemp() {  init();  if(init()==1)  {   delay1ms(1);   writebyte(0xcc);   writebyte(0x44);  } }  void read_temp_com() {  init();  if(init()==1)  {   delay1ms(1);   writebyte(0xcc);   writebyte(0xbe);  } }  int readtemp() {  int temp=0;  uint tmh,tml;  changtemp();  read_temp_com();  tml=readbyte();  tmh=readbyte();  temp=tmh;  temp<<=8;  temp|=tml;  return temp; }  void jisuan(int l) {  float tp;  if(l<0)  {   dis_buf[5]=0x40;   l=l-1;   l=~l;   tp=l;   l=tp*0.0625*100+0.5;  }  else  {   dis_buf[5]=0x00;   tp=l;   l=tp*0.0625*100+0.5;  }  dis_buf[4]=l/10000;  dis_buf[3]=l%10000/1000;  dis_buf[2]=(l%1000/100)|0x80;  dis_buf[1]=l%100/10;  dis_buf[0]=l%10; }  void display() {  uchar i;  for(i=0;i<6;i++)  {   P1=COM[i];   P0=SEG[dis_buf[i]];   delay1ms(10);  } }  void main() {  while(1)  {   jisuan(readtemp());   display();  } }

user: user-3
content: 你的程序不给出来，不知道你的程序出了什么问题

user: user-0
content: 引用 1 楼 user-3的回复:请给出源代码 是什么意思鸭，能不能解释详细一点

user: user-3
content: 请给出源代码
user-0 提问: 十四进制转换为七进制，可以帮忙写一下代码吗？

回复:
user: user-0
content: 引用 6 楼 user-1 的回复:[quote=引用 5 楼 user-1 的回复:]代码来自：https://zhidao.baidu.com/question/809437191274955412.html 稍作修改。[/quote] 太感谢了！成功pass，辛苦你啦~~

user: user-1
content: 引用 5 楼 user-1 的回复:代码来自：https://zhidao.baidu.com/question/809437191274955412.html 稍作修改。

user: user-1
content: #include<stdio.h>  // 可根据n调整大小 #define MAX_N 30 #define MAX_LENGTH 100  int conver_14_to_10(char* tar) {//把14进制转为10进制 	int res = 0; 	int cur_idx = 0; 	while (tar[cur_idx] != '\0') { 		if (tar[cur_idx] >= '0' && tar[cur_idx] <= '9') { 			res = 14 * res + tar[cur_idx] - '0'; 		} else { 			res = 14 * res + tar[cur_idx] - 'A' + 10; 		} 		cur_idx++; 	} 	return res; }  void print_7(int tar) {//将10进制转为7进制输出 	if (tar == 0) 		return; 	print_7(tar / 7); 	printf("%d", tar % 7); }  int main() { 	int n; 	scanf("%d", &n); 	char arr[MAX_N][MAX_LENGTH]; 	for (int i = 0; i < n; ++i) { 		scanf("%s", arr[i]); 	} 	for (int i = 0; i < n; i++) { 		print_7(conver_14_to_10(arr[i])); 		printf(" "); 	} 	printf("\n"); 	return 0; } 2 1A D

user: user-0
content: 引用 3 楼 user-1 的回复:引用 2 楼 Silvia0121 的回复:user-1说的网上的那个程序我看了，不符合题目要求，可以帮忙修改吗？为啥不符合要求。把你的要求说一下。 比如在这个程序中我输入2和1A还没输入D就已经输出33了。这个n=2输入不就无效了吗，要的是n个数字的转换。可能还需要一些小的修改，但我不太会······

user: user-1
content: 引用 2 楼 Silvia0121 的回复:user-1说的网上的那个程序我看了，不符合题目要求，可以帮忙修改吗？为啥不符合要求。把你的要求说一下。

user: user-0
content: user-1说的网上的那个程序我看了，不符合题目要求，可以帮忙修改吗？

user: user-1
content: https://zhidao.baidu.com/question/809437191274955412.html 问之前搜一下。CSDN论坛新手指南
user-0 提问: 为什么visual studio 2019不可以这样用？谁知道这个怎么改？

回复:
user: user-1
content: 因为scanf_s()函数都不能处理回车符。即把回车符看作再次输入的字符。 所以，此时你的代码中a1的值是你在控制台输入的第一个字符，而此时a2的值是你输入第一个字符后按下的回车按键'\n'它的值是0x0a，所以此时程序等不到你输入第二个字符就开始输出a1+a2的值了，此时的输出是第一个字符串加上0x0a。所以，解决的方法是在两个scanf_s()函数中间再加入一个scanf_s()函数用来屏蔽回车符，即'\n'。 	char temp; 	scanf_s("%c", &c1); 	scanf_s("%c", &temp); 	scanf_s("%c", &c2); 以下是VS2015中的输出  对于scanf_s()函数屏蔽回车的详细资料，请参考《scanf()、gets()和getline()读取输入》 希望能够帮到你

user: user-2
content: CSDN论坛新手指南

user: user-3
content: %c会将回车当作字符读进去

user: user-4
content: 第一个scanf_s接收了你输入的那个字符，第二个接收了回车，没毛病  撸起我的老花镜

user: user-5
content: 你这样提问，是想我们看瞎眼呀
user-0 提问: C语言判断一个数是否是素PTA

回复:
user: user-1
content: 6楼这个。我长见识了。

user: user-2
content: 这些方法都太慢，很可能超时，更快一些的方法是先判断是否偶数，奇数的话则试除以3..sqrt(n)之间的小素数，该方法可以非常快测试32位范围内的数，如果更大范围，64位、128位或者更多，需要用Miller-Rabin素数性测试的变体或者AKS素数性测试之类的方法。

user: user-1
content: 引用 4 楼 Guuudbro 的回复:我的这个算法也是在网上找的，原理就是大于等于5的质数一定和6的倍数相邻， 第一次见这个，我得捋一捋。

user: user-0
content: 我的这个算法也是在网上找的，原理就是大于等于5的质数一定和6的倍数相邻， 令x≥1，将大于等于5的自然数表示如下： ······ 6x-1，6x，6x+1，6x+2，6x+3，6x+4，6x+5，6(x+1），6(x+1)+1 ······ 可以看到，不在6的倍数两侧，即6x两侧的数为6x+2，6x+3，6x+4，由于2(3x+1)，3(2x+1)，2(3x+2)，所以它们一定不是素数，再除去6x本身，显然，素数要出现只可能出现在6x的相邻两侧。这里有个题外话，关于孪生素数，有兴趣的道友可以再另行了解一下，由于与我们主题无关，暂且跳过。这里要注意的一点是，在6的倍数相邻两侧并不是一定就是质数。 此时判断质数可以6个为单元快进，即将方法（2）循环中i++步长加大为6，加快判断速度，原因是，假如要判定的数为n，则n必定是6x-1或6x+1的形式，对于循环中6i-1，6i，6i+1,6i+2，6i+3，6i+4，其中如果n能被6i，6i+2，6i+4整除，则n至少得是一个偶数，但是6x-1或6x+1的形式明显是一个奇数，故不成立；另外，如果n能被6i+3整除，则n至少能被3整除，但是6x能被3整除，故6x-1或6x+1（即n）不可能被3整除，故不成立。综上，循环中只需要考虑6i-1和6i+1的情况，即循环的步长可以定为6，每次判断循环变量k和k+2的情况即可

user: user-1
content: CSDN论坛新手指南

user: user-1
content: #include <stdio.h> #include <math.h>  int main(void) { 	int n, flag; 	scanf("%d", &n); 	if (n < 2) { 		flag = 0; 	} else { 		int max = (int)sqrt(n); 		flag = 1; 		for (int i = 2; i <= max; ++i) { 			if (0 == (n % i)) { 				flag = 0; 				break; 			} 		} 	} 	if (1 == flag) { 		printf("Yes\n"); 	} else { 		printf("No\n"); 	} 	return 0; }

user: user-1
content: 你这个逻辑。可否说一下。建议直接去百科看看素数怎么判断的。

user: user-3
content: 思路没啥错，这样的效率确实比常规方法要高，只是代码看上去比较绕。 错的地方在于这里： if(n%6!=1&&n%6!=5){printf("No");return 0;}
user-0 提问: 求大佬们解决，没有输出怎么回事

回复:
user: user-1
content: if(m*2.3+n*1.9==s&&m<n)   会不会是这个不成立

user: user-2
content: 引用 6 楼 羅昇 的回复:想都不用想，没输出肯定是条件没满足没运行到那呗。不会打断点看就把每一个值都打印出来看什么情况 +1. 这个问题你下一个断点轻松搞定,现在的编译器比较智能了，新版本编译器浮点数直接对比可以的

user: user-3
content: 想都不用想，没输出肯定是条件没满足没运行到那呗。不会打断点看就把每一个值都打印出来看什么情况

user: user-4
content: m*2.3+n*1.9==s&&m<n  float类型的不要直接用  == 比较。。由于精度问题，你输入s为2.3  可能会变成 2.299995这样的。 所以会导致   if(m*2.3+n*1.9==s&&m<n)  这个条件一直不满足，就没有输出

user: user-5
content: 第8行应该是n<=吧

user: user-0
content: 引用 1 楼 fireyou的回复:#include<studio.h>  //多了个 u #include <stdio.h>  for(n=m+1;m<=floor(s/1.9),n++) for(n=m+1;m<=floor(s/1.9);n++) 谢谢，打字写程序还不熟练，但电脑上打的格式都对，就是没有输出，请问您知道怎么回事吗？

user: user-4
content: #include<studio.h>  //多了个 u #include <stdio.h>  for(n=m+1;m<=floor(s/1.9),n++) for(n=m+1;m<=floor(s/1.9);n++)
user-0 提问: 求大神指导？

回复:
user: user-0
content: 谢谢大家，我明白了。

user: user-1
content: CSDN论坛新手指南   ps：怎么感觉昨天见到过，不过那位同学发的是截图。

user: user-2
content: 正如楼上朋友说的，你的代码中：  a=(f-32)/9; 假设输入f的值是40，此时f-32的值是40-32=8；因为a的类型是int，所以a = 8/9时，a的值实际上是0，再运行 printf("Celsius = %d\n",a*5); 代码时，依旧输出的是0。 而如果把代码改为 a = (f - 32) * 5 / 9; 假设输入f的值是40，此时f-32的值是40-32=8；8×5=40,因为a的类型是int，所以a = 40/9时，a的值实际上是4，之后将输出的代码改为 printf("Celsius = %d\n", a); 即可。 #include<stdio.h> int main(int argc, char **argv) { 	int f;  	scanf("%d", &f);  	int a;   	if (f >= 32)  	{ 		a = (f - 32) * 5 / 9;  		printf("Celsius = %d\n", a);  	}  	else  	{ 		a = (32 - f) * 5/ 9;  		printf("Celsius = -%d\n", a);  	}  	return 0; }  VS2015调试结果为

user: user-3
content: 应该是先乘以5再除以9，先除以9精度都掉光啦
user-0 提问: 为什么是返回字符指针的函数

回复:
user: user-1
content: 引用 3 楼 马振宇 的回复:[quote=引用 2 楼 六道佩恩 的回复：]不是void，是void* 这个星号不能忽略，这是指针类型 所以这个函数会接收一个char*指针，返回一个void*指针 而void*和其他指针是兼容的，可以随意转换那应该是返回void指针，也不是字符指针啊[/quote] 我说了呀，void*指针和其他指针是兼容的啊，可自动转换、随意转换，你随后一句话都不看的吗？ 简单来说， char  *p = (void*)q void* p = (char*)q 这两种都没问题，你这返回的void*指针，你用任何一种类型的指针变量接收都可以

user: user-2
content: 引用 8 楼 棉猴 的回复:[quote=引用 7 楼 wowpH 的回复:] [quote=引用 6 楼 棉猴 的回复:]这个不行啊。C语言可以不，例如malloc函数不一直都是 int* a = (int*)malloc(sizeof(int) * 10); 这样用啊。。。[/quote] C语言是双向转换的，但是C++是单向转换的[/quote]额，看到了啊。懂了。

user: user-3
content: 引用 7 楼 wowpH 的回复:[quote=引用 6 楼 棉猴 的回复:]这个不行啊。C语言可以不，例如malloc函数不一直都是 int* a = (int*)malloc(sizeof(int) * 10); 这样用啊。。。[/quote] C语言是双向转换的，但是C++是单向转换的

user: user-3

user: user-2
content: 引用 4 楼 马振宇 的回复:有人知道吗？调用的地方转换就行了

user: user-0
content: 引用 2 楼 六道佩恩 的回复：不是void，是void* 这个星号不能忽略，这是指针类型 所以这个函数会接收一个char*指针，返回一个void*指针 而void*和其他指针是兼容的，可以随意转换那应该是返回void指针，也不是字符指针啊

user: user-1
content: 不是void，是void* 这个星号不能忽略，这是指针类型 所以这个函数会接收一个char*指针，返回一个void*指针 而void*和其他指针是兼容的，可以随意转换

user: user-2
content: CSDN论坛新手指南
user-0 提问: 求教个问题

回复:
user: user-1
content: 可以采用深度搜索遍历的方式，写个递归函数，用一个长度为5的数组来存每一位，然后遍历从高位允许的最大的数开始循环，将每一位的结果存在数组里面，当存满5位时输出即可，代码如下： #include<stdio.h> int a[5]; void dfs(int n,int cnt) {     if(n<0)         return;     if(n==0&&cnt==5)//满足条件输出     {         for(int i=0;i<5;i++)         {             printf("%d",a[i]);         }         printf("\n");     }     for(int i=n-4+cnt;i>=1;i--)     {         a[cnt]=i;         dfs(n-i,cnt+1);//深度搜索遍历     } } int main() {     int n;     scanf("%d",&n);     dfs(n,0);     return 0; }

user: user-0
content: 有没有大佬帮忙解答一下?
user-0 提问: vs2017求助

回复:
user: user-1
content: CSDN论坛新手指南

user: user-1
content: 你可能建的不是项目，而是一个简单的C语言文件

user: user-2
content: 编译了吗？？ 不是有个绿色的矩形调试吗，点那个
user-0 提问: 1-1/2+1/3-......问题

回复:
user: user-1
content: 最好while(true) 把退出循环的条件放到循环里面 你这个条件怕是根本退不出去 另外sum等变量每次循环开始时都需要初始化为原值

user: user-2
content: CSDN论坛新手指南
user-0 提问: ACM题不会

回复:
user: user-1
content: #include <stdio.h> #include <string.h>  int main() {   int n;   char s[20][21];    while(~scanf("%d", &n))   {     for (int i = 0; i < 20; i++)       i < n ? scanf("%s", s[i]) : s[i][0] = 0;     for (int i = 0, j = n, k; k = strlen(s[i]), j;)     {       if (k > 1) s[i][k - 1] = 0, printf("%s ", s[i]);       if (k == 1) s[i][0] = 0, j--;       if (++i == n && j) i = 0, puts("");     }   }    return 0; }

user: user-2
content: 引用 5 楼 qq_45800134 的回复:不找的话，我怎么知道输出多少行是要找，我说错了。

user: user-2
content: 引用 5 楼 qq_45800134 的回复:不找的话，我怎么知道输出多少行我想的是所有的长度单独保存。我写一下。

user: user-0
content: 不找的话，我怎么知道输出多少行

user: user-2
content: 引用 3 楼 qq_45800134 的回复:我是不是得找最长的单词的长度可找可不找。

user: user-0
content: 我是不是得找最长的单词的长度

user: user-0
content: 方便写一下吗

user: user-2
content: 用一个二维数组保存读的单词。每次将最后一个字符换成\0就行
user-0 提问: 加密问题

回复:
user: user-1
content: 你要求的不是每次只输入两个字符吗，那只有一行的， 想多次输入，可以再加个循环，输入两个字符串，得到结果，循环再输入两个字符串。 引用 4 楼 qq_45800134 的回复:if((temp=strchr(temp，s1[i])==NULL)) 这样写会不会不仅访问了temp的第一行，还可能访问temp的所有行

user: user-2
content: #号换成空格。。方便调试才写的#

user: user-2
content: ACM不会那道题，我发在这儿了。不能连续回帖三次。  我还是不自找麻烦了。找最大长度这种写法简单点。 #include <stdio.h> #include <string.h> int main(void) { 	int n; 	scanf("%d", &n); 	char str[20][21]; 	int len[20]; 	int max = 0; 	for (int i = 0; i < n; ++i) { 		scanf("%s", str[i]); 		len[i] = strlen(str[i]); 		if (len[i] > max) { 			max = len[i]; 		} 	} 	while (max > 1) { 		for (int i = 0; i < n; ++i) { 			if (len[i] > 0) { 				--len[i]; 				str[i][len[i]] = '\0'; 				printf("%s", str[i]); 				if (len[i] > 0) { 					printf("#"); 				} 			} 		} 		printf("\n"); 		--max; 	} 	return 0; }

user: user-0
content: if((temp=strchr(temp，s1[i])==NULL)) 这样写会不会不仅访问了temp的第一行，还可能访问temp的所有行

user: user-1
content: temp = s2;         for (i = 0; i < strlen(s1); i++)         {             if ((temp = strchr(temp, s1[i])) == NULL)             {                 isEncrypt = false;                 break;             }             isEncrypt = true;         } 		if (isEncrypt) 		{ 			printf("Yes\n"); 		} 		else 		{ 			printf("No\n"); 		}

user: user-1
content: 循环判断   可以用  strchr  函数。

user: user-2
content: for循环依次判断就行了。
user-0 提问: 输出所有的“水仙花数”，所谓水仙花数是指一个3位数，其各位数字立方和等于该数本身。 例如，153是一水仙花数，因为153=1³﹢5³﹢3³

回复:
user: user-1
content: while(m)的前面加上sum = 0
user-0 提问: switch-case 语句以及if语句的小白疑难...

回复:
user: user-1
content: 第一题 first=1; (x%2==0) first=0;(first判断是不是第一个数字，第一个数字前不需要空格) printf(" %d",x); 第二题 (month) ((year%4==0&&year%100!=0)||year%400==0) day=28; break; case 1:case 3:case 5:case 7:case 8:case 10:case 12:(作为一行代码只想到这种方式) default: 第一题每输入一个数字如果是偶数就会马上输出，不是多个偶数连续输出的形式，不知道是不是题目出得有问题

user: user-0
content: 引用 2 楼 user-2的回复:第1题的第12行用到了first，但是前面没有初始化，而这个初始化显然不能在循环里面。因此第1空填： first = 1;  第2空是判断是不是偶数，是的话，if里面就输出他。  第3空输出第1个数后，first要加1，表示输出的不是第1个数了，不然每次输出的都是if里面的x，这样中间就没有空格分隔了。  第4空输出的内容和第3空前面的那一句比就是%x前面多了个空格。用来分隔。 感谢指导 下次一定改进不当行为

user: user-2
content: 第1题的第12行用到了first，但是前面没有初始化，而这个初始化显然不能在循环里面。因此第1空填： first = 1;  第2空是判断是不是偶数，是的话，if里面就输出他。  第3空输出第1个数后，first要加1，表示输出的不是第1个数了，不然每次输出的都是if里面的x，这样中间就没有空格分隔了。  第4空输出的内容和第3空前面的那一句比就是%x前面多了个空格。用来分隔。

user: user-2
content: CSDN论坛新手指南
user-0 提问: 求大神帮助

回复:
user: user-0
content: 引用 4 楼 自信男孩的回复:输出不应该放到排序的循环里，应该想输入那样，重新用一个循环，逐个输出～ 嗯，对的，输出也得循环输出，负责就输出一个最大值

user: user-1
content: 输出不应该放到排序的循环里，应该想输入那样，重新用一个循环，逐个输出～

user: user-2
content: 引用 2 楼 weixin_45726302 的回复:[quote=引用 1 楼 45045399的回复:]printf()函数的位置问题 是最后那个输出函数吗？[/quote]嗯，最后一个printf函数位置

user: user-0
content: 引用 1 楼 45045399的回复:printf()函数的位置问题 是最后那个输出函数吗？

user: user-2
content: printf()函数的位置问题
user-0 提问: 求助大神 谢谢大神

回复:
user: user-1
content: 我这个是M3的板子的，中文的话因为编码关系，我就没去改了，你想看的话可以复制出来自己调下

user: user-1
content: //°´¼ü³õÊ¼»¯º¯Êý void KEY_Init(void) //IO³õÊ¼»¯ {   	GPIO_InitTypeDef GPIO_InitStructure; 	//³õÊ¼»¯KEY0-->GPIOA.13,KEY1-->GPIOA.15  ÉÏÀ­ÊäÈë  	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);//Ê¹ÄÜPORTA,PORTEÊ±ÖÓ  	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//PE2~4 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //ÉèÖÃ³ÉÉÏÀ­ÊäÈë  	GPIO_Init(GPIOE, &GPIO_InitStructure);//³õÊ¼»¯GPIOE2,3,4  	//³õÊ¼»¯ WK_UP-->GPIOA.0	  ÏÂÀ­ÊäÈë 	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0; 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0ÉèÖÃ³ÉÊäÈë£¬Ä¬ÈÏÏÂÀ­	   	GPIO_Init(GPIOA, &GPIO_InitStructure);//³õÊ¼»¯GPIOA.0  }  u8 KEY_Scan(u8 mode) {	  	static u8 key_up=1;//°´¼ü°´ËÉ¿ª±êÖ¾ 	if(mode)key_up=1;  //Ö§³ÖÁ¬°´		   	if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1)) 	{ 		delay_ms(10);//È¥¶¶¶¯  		key_up=0; 		if(KEY0==0)return KEY_RIGHT; 		else if(KEY1==0)return KEY_DOWN; 		else if(KEY2==0)return KEY_LEFT; 		else if(KEY3==1)return KEY_UP; 	}else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0)key_up=1; 	      	return 0;// ÎÞ°´¼ü°´ÏÂ }   #define KEY0  GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//¶ÁÈ¡°´¼ü0 #define KEY1  GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//¶ÁÈ¡°´¼ü1 #define KEY2  GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)//¶ÁÈ¡°´¼ü2  #define KEY3  GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//¶ÁÈ¡°´¼ü3(WK_UP)    #define KEY_UP 		4 #define KEY_LEFT	3 #define KEY_DOWN	2 #define KEY_RIGHT	1
user-0 提问: #c语言

回复:
user: user-1
content: 引用 5 楼 s46264k 的回复：[quote=引用 2 楼 SNOY文的回复:]换成int main（） {return 0;}的格式 可是书上也是这些语句啊，就是不知道哪里错了[/quote]错误提示是什么

user: user-2
content: 要请绕罗翔老师来教教你怎么截图

user: user-2
content: 我把显示器扭断了

user: user-1
content: 换成int main（） {return 0;}的格式

user: user-0
content: 引用 2 楼 SNOY文的回复:换成int main（） {return 0;}的格式 可是书上也是这些语句啊，就是不知道哪里错了

user: user-3
content: CSDN论坛新手指南
user-0 提问: 输入8个正整数，输出其中所有的“对称数”，并求“对称数”的个数。

回复:
user: user-0
content: 引用 18 楼 user-1 的回复:[quote=引用 17 楼 ljn20010724 的回复:] 谢谢你啊，我自己再试试 不客气，希望下次发代码能按照格式发就行。[/quote] #include<stdio.h> main() { 	int i,j,sum=0,k,n=1,a[8],b[10],count=0; 	for(i=0;i<8;i++)scanf("%d",&a[i]); 	for(i=0;i<8;i++) 	{ 		for(j=0;n!=0;j++) 		{ 		    n=a[i]%10; 		    count=count+1;		 		    if(a[i]!=a[count-1]) 			{ 				k=0;break; 			} 			if(k!=0) 		    { 			sum=sum+1; 			printf("%d",a[i]);	 		    }	 		}  	} 	printf("对称数个数：%d",sum);   } 这是我改的代码，但它只能输出一个9，个数也是1个，可是答案有4个

user: user-1
content: 引用 17 楼 ljn20010724 的回复:谢谢你啊，我自己再试试 不客气，希望下次发代码能按照格式发就行。

user: user-0
content: 引用 16 楼 user-1的回复:[quote=引用 15 楼 ljn20010724 的回复:] [quote=引用 14 楼 user-1的回复:]要想得到一个数字的长度，1、可以转成字符串。2、循环除10，用个int型变量计数。 噢噢噢，是不是整除10，看余数有几位就可以计算它的长度啦？[/quote]right[/quote] 谢谢你啊，我自己再试试

user: user-1
content: 引用 15 楼 ljn20010724 的回复:[quote=引用 14 楼 user-1的回复:]要想得到一个数字的长度，1、可以转成字符串。2、循环除10，用个int型变量计数。 噢噢噢，是不是整除10，看余数有几位就可以计算它的长度啦？[/quote]right

user: user-0
content: 引用 14 楼 user-1的回复:要想得到一个数字的长度，1、可以转成字符串。2、循环除10，用个int型变量计数。 噢噢噢，是不是整除10，看余数有几位就可以计算它的长度啦？

user: user-1
content: 要想得到一个数字的长度，1、可以转成字符串。2、循环除10，用个int型变量计数。

user: user-1
content: 引用 11 楼 ljn20010724 的回复:引用 9 楼 user-1的回复:[quote=引用 7 楼 ljn20010724 的回复:] 这条语句我是跟在for语句后面的，它们在一行这和在哪儿没关系。把你的输入数据发出来。 9 26 262 2621 1232 14641 251 8118[/quote]那就好说了。错的有点离谱。  你的a的类型是char型的。而char型的范围是-128~127。很明显越界了。  所以要改成int型的。那么现在又有问题了。strlen只能计算字符串的长度。而int型的不是字符串。所以不能用这个函数。

user: user-0
content: 引用 10 楼 user-1的回复:strlen函数是检测到'\0'结束，而你的代码没有这个，所以报错 好的，那所以这一题我不能用这个函数来计算字符串长度是吧？

user: user-0
content: 引用 9 楼 user-1的回复:引用 7 楼 ljn20010724 的回复:这条语句我是跟在for语句后面的，它们在一行这和在哪儿没关系。把你的输入数据发出来。 9 26 262 2621 1232 14641 251 8118

user: user-1
content: strlen函数是检测到'\0'结束，而你的代码没有这个，所以报错

user: user-1
content: 引用 7 楼 ljn20010724 的回复:这条语句我是跟在for语句后面的，它们在一行这和在哪儿没关系。把你的输入数据发出来。

user: user-0
content: 引用 3 楼 user-1 的回复:[quote=引用 2 楼 ljn20010724 的回复:] [quote=引用 1 楼 user-1的回复:]CSDN论坛新手指南 什么意思？？？？？？[/quote][/quote] 我还想问一下，这些错误是什么原因？

user: user-0
content: 这条语句我是跟在for语句后面的，它们在一行

user: user-1
content: 引用 5 楼 user-1 的回复:这里，你想输入的是字符还是数字。从后面的代码看应该是输入字符，那么就需要将%d改为%c 	char a[8]; 	for (i = 0; i < 8; i++) { 		scanf("%d", &a[i]); 	} 为啥我发的代码又这个框框，而你的没有呢，这是个问题

user: user-1
content: 这里，你想输入的是字符还是数字。从后面的代码看应该是输入字符，那么就需要将%d改为%c 	char a[8]; 	for (i = 0; i < 8; i++) { 		scanf("%d", &a[i]); 	}

user: user-0
content: 引用 3 楼 user-1的回复:[quote=引用 2 楼 ljn20010724 的回复:] [quote=引用 1 楼 user-1的回复:]CSDN论坛新手指南 什么意思？？？？？？[/quote][/quote] 在上面我有粘贴代码啊

user: user-1
content: 引用 2 楼 ljn20010724 的回复:[quote=引用 1 楼 user-1的回复:]CSDN论坛新手指南 什么意思？？？？？？[/quote]

user: user-0
content: 引用 1 楼 user-1的回复:CSDN论坛新手指南 什么意思？？？？？？

user: user-1
content: CSDN论坛新手指南
user-0 提问: 麻烦看段C代码

回复:
user: user-0
content: 结贴了，自己搞明白了。手机端没法关闭，周一用pc关。

user: user-0
content: 是啊，linux下没输出。

user: user-1
content: CSDN论坛新手指南  这是Linux环境下的代码吗？
user-0 提问: 冒泡排序

回复:
user: user-0
content: 引用 6 楼 wowpH的回复:引用 3 楼 k....... 的回复:MySQL中可以实现数据的排序吗这和帖子有什么关系？ 第一次用这个软件，好像发错了

user: user-1
content: 引用 4 楼 k....... 的回复:[quote=引用 1 楼 wowpH的回复:]CSDN论坛新手指南  问题是什么 MySQL中可以实现数据的排序吗[/quote]可以

user: user-1
content: 引用 3 楼 k....... 的回复:MySQL中可以实现数据的排序吗这和帖子有什么关系？

user: user-0
content: 引用 2 楼 user-2的回复:what is your problem? MySQL中可以实现数据的排序吗

user: user-0
content: 引用 1 楼 wowpH的回复:CSDN论坛新手指南  问题是什么 MySQL中可以实现数据的排序吗

user: user-0
content: MySQL中可以实现数据的排序吗

user: user-2
content: what is your problem?

user: user-1
content: CSDN论坛新手指南  问题是什么
user-0 提问: acm水题(Creating a Character),求看为什么我的代码不能AC

回复:
user: user-1
content: 这题应该可以直接计算：  #include <stdio.h>  int main() {   int T, s, i, e, n;    scanf("%d", &T);   while(T--)   {     scanf("%d%d%d", &s, &i, &e);     ((n = (s + e > i) ? s + e - i : 0) & 1) ? n = n / 2 + 1 : n /= 2;     printf("%d\n", n);   }    return 0; }

user: user-2
content: 看着没问题啊。
user-0 提问: 这个求两个数的最大公约数的有什么问题吗 为什么算出来答案不对

回复:
user: user-1
content: while那个地方错了，条件应该是或而不是与。即a和b只要有一个不为0都不是公约数。 while ((a != 0) || (b != 0)) 希望采纳，给分