Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: c语言 循环 break

回复:
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: 引用 5 楼 github_37414436的回复:j=1，t=2 j=2，t=3 j=3，t=6 为什么t=6要读入呢 break不是当判断条件满足条件时，判断条件不输出么 t=6退出内层循环，这时候就到了s=s+t;这一句，因此6会被累加进去的

user: user-0
content: 引用 3 楼 qq_45798109 的回复：是的.........看一下5楼😬

user: user-0
content: j=1，t=2 j=2，t=3 j=3，t=6 为什么t=6要读入呢 break不是当判断条件满足条件时，判断条件不输出么

user: user-3
content: 不太明白。。。。

user: user-4
content: 1+3+6*8=52

user: user-0
content: i=1时，s=1，i=2时，s=4，接下来8个循环都是t=6，所以4+6x8=52，是不是这样
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: 引用 5 楼 qq_45880623 的回复:[quote=引用 3 楼 user-2的回复:]while下次循环把sum和s清空一下 额，不懂清哪个…………[/quote] while (scanf("%d", &n) != EOF) 	{ 		memset(sum, 0, 100); 		s = 0; 		for (i = 0; i < n; i++) 		{ 			for (j = 0; j < n; j++) 			{ 				scanf("%d", &a[i][j]); 			} 		} ......

user: user-2
content: 引用 6 楼 qq_45880623 的回复:[quote=引用 4 楼 user-2的回复:]而且魔法矩阵的判断不对吧。为什么没算对角线和竖线 对角线的如何算呢。。[/quote] 你循环里i==j和i==(n-j)时应该就是两条对角线吧，没试验，毕竟是对称的，代码调一下就能知道了

user: user-0
content: 引用 4 楼 user-2的回复:而且魔法矩阵的判断不对吧。为什么没算对角线和竖线 对角线的如何算呢。。

user: user-0
content: 引用 3 楼 user-2的回复:while下次循环把sum和s清空一下 额，不懂清哪个…………

user: user-2
content: 而且魔法矩阵的判断不对吧。为什么没算对角线和竖线

user: user-2
content: while下次循环把sum和s清空一下

user: user-0
content: 引用 1 楼 user-2的回复:代码呢！！！！ #include <stdio.h> #include <stdlib.h>  /* run this program using the console pauser or add your own getch, system("pause") or input loop */  int main(int argc, char *argv[]) { 	int n,i,j,a[100][100],sum[100]={0},s=0; 	while(scanf("%d",&n)!=EOF) 	{ 		for(i=0;i<n;i++) 		{ 			for(j=0;j<n;j++) 			{ 				scanf("%d",&a[i][j]);  			} 		} 		for(i=0;i<n;i++) 		{ 			for(j=0;j<n;j++) 			{ 				sum[i]+=a[i][j]; 			} 		} 		s=sum[0]; 		for(i=0;i<n;i++) 		{ 			if(s!=sum[i]) 			s=sum[i]; 		} 		if(s==sum[0]) 		{ 			printf("Yes %d\n",s); 		} 		else 		{ 			printf("No\n"); 		} 	} 	return 0; }

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: 错误提示信息函数原型都没有，元芳你怎么看？
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: 引用 2 楼 Cunesey 的回复:[quote=引用 1 楼 自信男孩的回复:]三处分别是：1) fun函数形参没有定义类型，应该是long 类型； 2) num /= 10;注意除号； 3) while(num)后缺少一个分号; 第二题不会写，求帮一下[/quote] 先自己写写，能写多少写多少，动手一下～

user: user-0
content: 引用 1 楼 自信男孩的回复:三处分别是：1) fun函数形参没有定义类型，应该是long 类型； 2) num /= 10;注意除号； 3) while(num)后缺少一个分号; 第二题不会写，求帮一下

user: user-2
content: 三处分别是：1) fun函数形参没有定义类型，应该是long 类型； 2) num /= 10;注意除号； 3) while(num)后缺少一个分号;
user-0 提问: 向多个MQTT服务器订阅主题问题

回复:
user: user-1
content: 根据官方定义，该函数返回值为布尔型，true表示成功接收完消息；false表示有问题，客户端会重新调用MQTTClient_messageArrived接收数据。 “This function must return a boolean value indicating whether or not the message has been safely received by the client application. Returning true indicates that the message has been successfully handled. Returning false indicates that there was a problem. In this case, the client library will reinvoke MQTTClient_messageArrived() to attempt to deliver the message to the application again.”

user: user-0
content: 问题解决了，bMsgArrvd在这里帖的代码中返回值为1，但是在实际项目中的返回值却为0，如果返回值为0，当第一次消息到达时可以正常接收，当第二次消息到达时，由于第一次返回值为0时，第二次就不会成功，为什么会返回值的问题造成这样的情况不知道原因。欢迎讨论
user-0 提问: 数据结构单链表删除所有值为x的元素

回复:
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 楼 不闻窗外事的回复:因为你的p是从phead->next开始的啊，你没有计算phead本身呢 在后面定义了phead=NULL

user: user-2
content: 引用 6 楼 Christopher__ 的回复:[quote=引用 3 楼 自信男孩的回复:]因为首节点没有比较，看一下p初始化为head的下一个节点了。  楼主可以先判断一下头结点，然后在判断后面的节点 我判断了  结构还是错误[/quote] 那要看你怎么判断了～ 贴出代码吧～

user: user-0
content: 引用 3 楼 自信男孩的回复:因为首节点没有比较，看一下p初始化为head的下一个节点了。  楼主可以先判断一下头结点，然后在判断后面的节点 我判断了  结构还是错误

user: user-3
content: 引用 2 楼 Christopher__ 的回复:[quote=引用 1 楼 不闻窗外事的回复:]因为你的p是从phead->next开始的啊，你没有计算phead本身呢 谢谢回答 所以应该怎么改进呢  [/quote] 比较好的办法是你搞一个头指针，不存放内容，也就是你的head不要放数据，单纯的就是指向链表的指针，这样会好一些

user: user-0
content: 引用 2 楼 Christopher__的回复:[quote=引用 1 楼 不闻窗外事的回复:]因为你的p是从phead->next开始的啊，你没有计算phead本身呢 谢谢回答 所以应该怎么改进呢  [/quote] 把q=p换成q=phead  应该就可以了

user: user-2
content: 因为首节点没有比较，看一下p初始化为head的下一个节点了。  楼主可以先判断一下头结点，然后在判断后面的节点

user: user-0
content: 引用 1 楼 不闻窗外事的回复:因为你的p是从phead->next开始的啊，你没有计算phead本身呢 谢谢回答 所以应该怎么改进呢

user: user-3
content: 因为你的p是从phead->next开始的啊，你没有计算phead本身呢
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: 开启debug模式，一步一步看递归程序是怎么走下去的，有助于理解

user: user-4
content: 自己写个递归程序去调试下，写不来网上找一个

user: user-5
content: 尽可能减少递归次数，把过程打出来，在这里问也没用，一二句话说不清楚

user: user-0
content: 引用 1 楼 user-5的回复:如何理解，很简单，打个程序进去，把所有的过程全部打印出来仔细观察一遍就OK了 emmmmmmm...

user: user-5
content: 如何理解，很简单，打个程序进去，把所有的过程全部打印出来仔细观察一遍就OK了
user-0 提问: 这个怎么运行不了啊

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

user: user-0
content: 引用 3 楼 自信男孩的回复:这样的代码风格，确定是你写的吗？还是copy from other? 粘贴过来的，不知道为什么只能横着粘贴

user: user-2
content: 这样的代码风格，确定是你写的吗？还是copy from other?

user: user-3
content: 另外从程序内容看好象不能是C扩展名，应该是cpp

user: user-3
content: 头文件好象只能一行一个吧
user-0 提问: 单链表删除所有值为x的元素

回复:
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-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: 引用 5 楼 月凉西厢 的回复:我也来一个 #include <conio.h> #include<stdio.h> #include<windows.h>  int main() { 	while (true) 	{ 		if (_kbhit()) { 			if (_getch() == 13) { 				break; 			} 		} 		printf("123456789\n"); 		Sleep(500);  	} 	return 0; } 学习了

user: user-3
content: 我也来一个 #include <conio.h> #include<stdio.h> #include<windows.h>  int main() { 	while (true) 	{ 		if (_kbhit()) { 			if (_getch() == 13) { 				break; 			} 		} 		printf("123456789\n"); 		Sleep(500);  	} 	return 0; }

user: user-2
content: 引用 1 楼 user-5 的回复:#include <windows.h> int main() { 	while (!GetAsyncKeyState(13))//相应的键自己对于ASCII 	{ 		printf("123456789\n"); 		Sleep(50); 	}  	return 0; }

user: user-0
content: 引用 2 楼 自信男孩的回复:可以用多线程，信号量来实现；  主线程接收输入设置一个变量，子线程打印（无限循环）和判断一个变量； 我是想在无限循环进行的同时，按下回车退出刷屏

user: user-4
content: 可以用多线程，信号量来实现；  主线程接收输入设置一个变量，子线程打印（无限循环）和判断一个变量；

user: user-5
content: #include <windows.h> int main() { 	while (!GetAsyncKeyState(13))//相应的键自己对于ASCII 	{ 		printf("123456789\n"); 		Sleep(50); 	}  	return 0; }
user-0 提问: 可以看看哪里错了吗？

回复:
user: user-1
content: 引用 7 楼 up___lqw 的回复:我把代码重新搞成一个图片  我们让你直接贴代码呢，是能直接拷贝了然后运行一下就知道哪里错了。而不是说你贴的图看不清

user: user-0
content: 我把代码重新搞成一个图片

user: user-1
content: 引用 5 楼 up___lqw 的回复:[quote=引用 4 楼 user-2的回复:]你不是有电脑吗？没电脑你的截图哪儿来的。 但我发帖用的手机…没用网站[/quote] 那就用网站发啊。。何必给帮你看问题的人不便呢，你贴个代码，帮你看问题的人会方便很多的

user: user-0
content: 引用 4 楼 user-2的回复:你不是有电脑吗？没电脑你的截图哪儿来的。 但我发帖用的手机…没用网站

user: user-2
content: 你不是有电脑吗？没电脑你的截图哪儿来的。

user: user-0
content: 引用 1 楼 user-2的回复:贴代码。  ------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 ------------------------------------- 用手机在哪里贴？没看到有这个

user: user-0
content: 用手机在哪里贴？没看到有这个

user: user-2
content: 贴代码。  ------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------
user-0 提问: c语言字符串比较，为什么这个程序输出结果是1？且str2[1]无论怎么改，n2都等于1，请问问题出在哪？

回复:
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: char str2[2][6]={"heasdqerecto","world"};  这个定义就有问题， 【2】【6】表示这两个字符串都不能超过6个字符啊  int main()  { char str1[]="hello" ; char str2[2][6]={"heasd","world"}; int n1, n2; n1 = strncmp(str1, str2[0], 5); n2 = strncmp(str1, str2[1], 5); printf("%d %d", n1,  n2); return 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: 字符串中的 \ 要写成 \\ 以防止被转义。

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: 直接输出：    printf("+---+");    printf("-+-+-");    printf("--+--");    printf("-+-+-");    printf("+---+");  :-)  要写算法就是对角线上元素下标的特点为： 行列坐标相等，或者是和为4 for ( int i=0; i<5; i++ ) {     for (int j=0; j<5; j++)             if ( (i+j==4)   ||  (i==j) ) printf("+"); else printf("-");    printf("\n"); }

user: user-3
content: 遍历二维数组，对角线上的坐标为(0.0,)(1,1)(2,2)(3,3)(4,4),其余的则不是对角线上的数值，是的话+，不是的话-。
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-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-0 提问: 哪位大佬知道按照题目所给的空格数打出这个图形

回复:
user: user-0
content: emmmm，我需要的时前面空格数

user: user-1
content: 这么多加一减一，不能抵消几个么？

user: user-2
content: /*-  * Copyright (C), 1999-2019, mymtom.  *                     _                *  ____  _   _ ____ _| |_ ___  ____    * |    \| | | |    (_   _) _ \|    \   * | | | | |_| | | | || || |_| | | | |  * |_|_|_|\__  |_|_|_| \__)___/|_|_|_|  *       (____/                         *  * vi:set ts=4 sw=4:  */  /**  * @file    LetterTraingle.c  * @brief     */  #include <ctype.h> #include <stdio.h>  /*  * 0         4  * 1-....----0  *             *           A  *          B B  *         C   C  *        D     D  *       EEEEEEEEE  */ static void printLetterTraingle(char c) {     int startColumn = 40;     int rows = c - 'A' + 1;     int leadingSpaces, middleSpaces;     int i, j;      for (i = 0; i < rows; i++) {         leadingSpaces = startColumn - 1 - i;         for (j = 0; j < leadingSpaces; j++) {             fputc(' ', stdout);         }         fputc('A' + i, stdout);          middleSpaces = (i * 2) - 1;         if (middleSpaces > 0) {             for (j = 0; j < middleSpaces; j++) {                 if (rows - 1 == i)                     /* last row */                     fputc('A' + i, stdout);                 else                     fputc(' ', stdout);             }             fputc('A' + i, stdout);         }          fputc('\n', stdout);     } }  int main(void) {     char c;      scanf("%c", &c);      if (isupper(c)) {         printLetterTraingle(c);     }      return 0; }

user: user-3
content: 刚开始学的时候，先别想着一堆技巧，老老实实的按照找到的规律来写代码比较好  int main() { 	char c; // 输入的字符 	scanf("%c", &c); 	if ( c<'A' || c>'Z') {return 0;}; 	int row = 0; // 控制打印的行数  	for ( int i=0; i<39; i++) printf(" "); 	printf("A\n"); if ( c=='A') return 0;  	char ch = 'B'; //要打印的字符，每行自增1  	int i=0; 	for ( row=1; row<c-'A'; row++ ) { 		for (i=0; i<39-row; i++) printf(" "); 		printf("%c", ch); 		for(i=0; i<row*2-1; i++) printf(" "); 		printf("%c\n", ch); 		ch ++; 	} 	// 最后一行 	for ( i=0; i<39-row; i++) printf(" "); 	for ( i=0; i<2*row+1; i++) printf("%c", ch); 	printf("\n"); 	return 0;  }

user: user-4
content: 怎么感觉楼主输出的是一个直角三角形呢。
user-0 提问: 求大佬拯救源代码统计

回复:
user: user-1
content: 赶紧开始写吧，先写个框架也好啊，懒到这个程度，应该是属于晚期吧

user: user-0
content: 引用 1 楼 不闻窗外事 的回复：行号很好统计，嵌套的话使用堆栈，遇到左大括号就把遇到的是第几个入栈，遇到右大括号，就出栈大神，求代码。实在是不行了。。

user: user-2
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: 确实是输出一列星星

user: user-0
content: 说的啥啊你 别凑数

user: user-3
content: #include <stdio.h>  int main () { 	int i; 	for (i = 0; i < 10; ++i) { 		printf("星星\n"); 	} 	return 0; }   如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 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: 不是第二次循环，是第三次循环，i=0退出。

user: user-0
content: 引用 4 楼 自信男孩的回复:continue之后就去判断while的条件了，因此i =-1时退出循环～ 是不是switch里的continue是跳while循环，不是跳switch的吧，我一开始理解成continue执行之后去判断switch了

user: user-3
content: continue之后就去判断while的条件了，因此i =-1时退出循环～

user: user-4
content: 这里的continue指的是跳出本次while循环，所以不会继续运行下面的程序，直接走到了一下次while循环了

user: user-5
content: 第一次continue以后直接跳到while了，话说我还没有用过这种用法，我do{}while(0);都是为了保证宏定义的语句是一个整体。

user: user-6
content: continue本来就是这样的，越过后面的程序，从下一次循环重新开始
user-0 提问: 大一新生，大佬们看看我这个程序哪里有问题。

回复:
user: user-0
content: 引用 9 楼 SuperDay的回复:为什么要两个a++呢？把else去掉，只留后面那个a++就好了 有道理啊，我搞复杂了

user: user-1
content: 为什么要两个a++呢？把else去掉，只留后面那个a++就好了

user: user-0
content: 引用 6 楼 SuperDay的回复:那就while吧，也全不对，两个a++几个意思呢？你这个程序到处都不对 改成这样就可以是对的了

user: user-0
content: 引用 6 楼 SuperDay的回复:那就while吧，也全不对，两个a++几个意思呢？你这个程序到处都不对 #include<stdio.h> int main() {     int i=2,a=1,sum=0;     while(i<=1000)     {        sum=0;        a=1;        while(a<i)        {             if(i%a==0)             sum+=a,a++;             else             a++;         }        if(sum==i)             printf("%d是完数",i);     i++;     }

user: user-1
content: 那就while吧，也全不对，两个a++几个意思呢？你这个程序到处都不对

user: user-0
content: 引用 2 楼 proorck2019的回复:sum=0的位置不对。 是的，应该放在第一个while下面

user: user-0
content: 引用 3 楼 SuperDay的回复:到处都是问题，怎么说？为什么不用for for没讲，自己也用了for编，还是不对

user: user-1
content: 到处都是问题，怎么说？为什么不用for

user: user-2
content: sum=0的位置不对。

user: user-3
content: 因为你这个程序没有判断一个数是不是完数。

user: user-4
content: #include <stdio.h> int main(void) {     int num = 2;     while (num <= 1000) {         int i = 1;         int sum = 0;         int right = num / 2;         while (i <= right) {             if (num % i == 0) {                 sum += i;             }             ++i;         }         if (sum == num) {             printf("%d是完数\n", num);         }         ++num;     }     return 0; } /* 6是完数 28是完数 496是完数 Program exited with status 0 */   如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 CSDN论坛新手指南

user: user-0
content: 引用 11 楼 SuperDay的回复:本来++就应该写在for里面的，程序看起来也很简洁。对于C语言来说，while等于是鸡肋 好吧，慢慢改进自己的技术

user: user-1
content: 本来++就应该写在for里面的，程序看起来也很简洁。对于C语言来说，while等于是鸡肋
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: 引用 2 楼 user-3的回复:楼上老哥，稳 就看看这个点了，还有没人跟我抢生意，发家致富就指着这个了

user: user-3
content: 楼上老哥，稳

user: user-2
content: 你先说清楚，是需要指点呢？还是需要帮你把程序写出来？如果是后者，起步价一千，自己看着办吧
user-0 提问: 函数调用

回复:
user: user-1
content: 校友啊，19机械也在头秃

user: user-0
content: 引用 7 楼 SuperDay的回复:p要用浮点数啊，不然算出来都是0了 我改成double型的了，可是输出结果还是零

user: user-2
content: p要用浮点数啊，不然算出来都是0了

user: user-0
content: 引用 2 楼 proorck2019的回复:for(i=1;i<=n;i++) { sum=sum+p; } 这段好诡异啊？ 就是我在主函数里定义运算了p，不能用到Sop函数里吗？？？

user: user-0
content: 引用 3 楼 自信男孩的回复:建议楼主把需求发一下，不然不清楚楼主的要做什么 编写函数,计算下列表达式的值,n从主函数中传入。 S=3/2^2-5/4^2+7/6^2-……+[(-1)^( n-1)]*2n-1/(2n)^2 测试数据有多组,每组单独占一行,仅包含一个正整数n, n < = 1000。 Output 对于每组输入数据,输出结果占行,为该表达式的值,小数位数输出6位。

user: user-0
content: 我在主函数里定义然后调用不可以吗

user: user-3
content: 建议楼主把需求发一下，不然不清楚楼主的要做什么

user: user-4
content: for(i=1;i<=n;i++) { sum=sum+p; } 这段好诡异啊？

user: user-2
content: 计算p都是由整数来的，精度都丢失了
user-0 提问: 函数调用

回复:
user: user-0
content: 引用 3 楼 还没秃顶的景初的回复:以我看来你好像是想计算阶层之和对吧，然而你调用函数的时候虽然循环加了sum，但是你的p值是固定的，所以运行不到你想要的结果 那该怎么才能更改p的值呢？

user: user-0
content: 引用 4 楼 自信男孩的回复:楼主发一下需求吧 编写函数,计算下列表达式的值,n从主函数中传入。 S=3/2^2-5/4^2+7/6^2-……+[(-1)^( n-1)]*2n-1/(2n)^2 测试数据有多组,每组单独占一行,仅包含一个正整数n, n < = 1000。 Output 对于每组输入数据,输出结果占行,为该表达式的值,小数位数输出6位。

user: user-0
content: 引用 5 楼 weixin_40290083的回复:楼主发一下需求吧 编写函数,计算下列表达式的值,n从主函数中传入。 S=3/2^2-5/4^2+7/6^2-……+[(-1)^( n-1)]*2n-1/(2n)^2 测试数据有多组,每组单独占一行,仅包含一个正整数n, n < = 1000。 Output 对于每组输入数据,输出结果占行,为该表达式的值,小数位数输出6位。

user: user-1
content: 楼主发一下需求吧

user: user-2
content: 楼主发一下需求吧

user: user-3
content: 以我看来你好像是想计算阶层之和对吧，然而你调用函数的时候虽然循环加了sum，但是你的p值是固定的，所以运行不到你想要的结果

user: user-3
content: 首先，请问你一下你这程序是要做到一个什么样的事情，有没有题目之类的，其次你的程序有报错信息吗，然后才能帮你看怎么出错了

user: user-4
content: 啥错误，不要光说结果有错，这看起来多麻烦
user-0 提问: 求助

回复:
user: user-0
content: 引用 1 楼 qybao的回复:你每次用完n以后，n变了，你应该保存 n的初始值，每次用的时候重新用初始值更新n 比如 在第一个while之前 int tmp = n; 在第一个for之前 n = tmp; 嗯嗯，谢谢，谢谢谢谢

user: user-1
content: 你每次用完n以后，n变了，你应该保存 n的初始值，每次用的时候重新用初始值更新n 比如 在第一个while之前 int tmp = n; 在第一个for之前 n = tmp;

user: user-2
content: 引用 2 楼 lqxzb 的回复:[quote=引用 1 楼 qybao的回复:]你每次用完n以后，n变了，你应该保存 n的初始值，每次用的时候重新用初始值更新n 比如 在第一个while之前 int tmp = n; 在第一个for之前 n = tmp; 嗯嗯，谢谢，谢谢谢谢[/quote] 如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 CSDN论坛新手指南
user-0 提问: 怎样用C语言输入三个字符逆向输出

回复:
user: user-1
content: 大佬一般喜欢这么写：  #include <stdio.h> #include <conio.h> void get() {     static i = 0;     char c;     i++;     c = getche();     if (i < 3)         get();     else         printf("\r\n");     printf("%c", c); }  int main() {     get();     printf("\r\n");     system("pause");     return 0; }

user: user-2
content: 通过取余取值 再赋值给变量 就好了

user: user-3
content: 读到数组里，顺序从0-n，输出的时候从n-0就行
user-0 提问: 怎样用C语言输入三个字符逆向输出

回复:
user: user-1
content: 我正好学过，下午给你写

user: user-2
content: 引用 6 楼 还没秃顶的景初 的回复:[quote=引用 5 楼 lin5161678 的回复:] [quote=引用 4 楼 还没秃顶的景初 的回复:] [quote=引用 3 楼 还没秃顶的景初 的回复:] int main() { 	int n = 3; 	char a[n];	 	for(int i=(n-1);i>-1;i--){ 		scanf("%c",&a[i]); 	} 		 	printf("%s",a); 	 	   	return 0; } 应该是这样才对。[/quote]这么简单还能错 扶额  %s 遇到 0 才停止输出 你没处理 结尾0 这是错的 [/quote] 这里s%不是把字符数组转化成字符串输出出来的么？怎么会检测0呢[/quote]不检测0  %s 怎么知道什么时候 字符串输出完成呢

user: user-3
content: 引用 5 楼 lin5161678 的回复:[quote=引用 4 楼 还没秃顶的景初 的回复:] [quote=引用 3 楼 还没秃顶的景初 的回复:] int main() { 	int n = 3; 	char a[n];	 	for(int i=(n-1);i>-1;i--){ 		scanf("%c",&a[i]); 	} 		 	printf("%s",a); 	 	   	return 0; } 应该是这样才对。[/quote]这么简单还能错 扶额  %s 遇到 0 才停止输出 你没处理 结尾0 这是错的 [/quote] 这里s%不是把字符数组转化成字符串输出出来的么？怎么会检测0呢

user: user-2
content: 引用 4 楼 还没秃顶的景初 的回复:[quote=引用 3 楼 还没秃顶的景初 的回复:] int main() { 	int n = 3; 	char a[n];	 	for(int i=(n-1);i>-1;i--){ 		scanf("%c",&a[i]); 	} 		 	printf("%s",a); 	 	   	return 0; } 应该是这样才对。[/quote]这么简单还能错 扶额  %s 遇到 0 才停止输出 你没处理 结尾0 这是错的

user: user-3
content: 引用 3 楼 还没秃顶的景初 的回复:int main() { 	int n = 3; 	char a[n];	 	for(int i=(n-1);i>-1;i--){ 		scanf("%c",&a[i]); 	} 		 	printf("%s",a); 	 	   	return 0; } 应该是这样才对。

user: user-0
content: 引用 1 楼 636f6c696e 的回复：scanf printf任意三个字符

user: user-4
content: scanf printf

user: user-5
content: 引用 11 楼 西木的家 的回复:谢谢  如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 CSDN论坛新手指南

user: user-6
content: 引用 6 楼 还没秃顶的景初 的回复:[quote=引用 5 楼 lin5161678 的回复:] [quote=引用 4 楼 还没秃顶的景初 的回复:] [quote=引用 3 楼 还没秃顶的景初 的回复:] int main() { 	int n = 3; 	char a[n];	 	for(int i=(n-1);i>-1;i--){ 		scanf("%c",&a[i]); 	} 		 	printf("%s",a); 	 	   	return 0; } 应该是这样才对。[/quote]这么简单还能错 扶额  %s 遇到 0 才停止输出 你没处理 结尾0 这是错的 [/quote] 这里s%不是把字符数组转化成字符串输出出来的么？怎么会检测0呢[/quote] 这个0是值'\0'，字符串结束标记～改一下，改成如下：   #define SIZE    16 int main() {     char a[SIZE] = { 0 };        for(int i=(SIZE-2);i>= 0;i--){         scanf("%c",&a[i]);     }               printf("%s",a);     return 0; } 供参考～

user: user-0
content: 引用 9 楼 wowpH 的回复： #include <stdio.h> #define N 3 int main() {     char a[N]; 	int i;     for(i = 0; i < N; ++i) {         scanf(" %c", &a[i]);     }     for(i = N - 1; i >= 0; --i) {         printf("%c", a[i]);         putchar(i > 0 ? ' ' : '\n');     }     return 0; } 谢谢

user: user-0
content: 引用 8 楼 解书黎 的回复：我正好学过，下午给你写好的

user: user-5
content: #include <stdio.h> #define N 3 int main() {     char a[N]; 	int i;     for(i = 0; i < N; ++i) {         scanf(" %c", &a[i]);     }     for(i = N - 1; i >= 0; --i) {         printf("%c", a[i]);         putchar(i > 0 ? ' ' : '\n');     }     return 0; }
user-0 提问: 一个球从100米高空自由落下，每次落地后反弹回原高度的一半，再落下，求它在第十次落地时共经过多少米，第十次反弹多高。

回复:
user: user-1
content: 什么问题，看起来没问题

user: user-2
content: 第十次的话n不应该从1开始吗？是我搞错了？

user: user-3
content: #include<stdio.h> int main() {     double h = 100, s = 0;     for(int i = 1; i <= 10; ++i) {         s += h;         h /= 2;         printf("第%d次落地时共经过%lf米\n", i, s);         printf("第%d次反弹%lf米\n", i, h);     }     return 0; } /* 第1次落地时共经过100.000000米 第1次反弹50.000000米 第2次落地时共经过150.000000米 第2次反弹25.000000米 第3次落地时共经过175.000000米 第3次反弹12.500000米 第4次落地时共经过187.500000米 第4次反弹6.250000米 第5次落地时共经过193.750000米 第5次反弹3.125000米 第6次落地时共经过196.875000米 第6次反弹1.562500米 第7次落地时共经过198.437500米 第7次反弹0.781250米 第8次落地时共经过199.218750米 第8次反弹0.390625米 第9次落地时共经过199.609375米 第9次反弹0.195313米 第10次落地时共经过199.804688米 第10次反弹0.097656米 Program exited with status 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: 引用 2 楼 ???695 的回复:[quote=引用 1 楼 自信男孩的回复:]需要注意的是break是跳出switch，因此后面的也不会执行，不论后面的case有没有break，若case 'B'后有break 那么后面的都不会执行的。 所以如果grade是B的话应该不会输出他写的那个值吧[/quote] 你从逻辑上也可以看出那应该是70~84吧

user: user-3
content: 70-40，写错了。

user: user-4
content: 代码里面敲错了，70-84

user: user-5
content: 只是个印刷错误罢了。

user: user-0
content: 引用 1 楼 自信男孩的回复:需要注意的是break是跳出switch，因此后面的也不会执行，不论后面的case有没有break，若case 'B'后有break 那么后面的都不会执行的。 所以如果grade是B的话应该不会输出他写的那个值吧

user: user-2
content: 需要注意的是break是跳出switch，因此后面的也不会执行，不论后面的case有没有break，若case 'B'后有break 那么后面的都不会执行的。
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: 印刷错误，40应为84 程序逻辑出来应该是输出70~40
user-0 提问: 纯梦想关于Ubuntu里配置a.out文件的问题

回复:
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.out是编译出来的吧，不是配置的吧

user: user-3
content: 怎么不去linux专区问？
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: 引用 5 楼 qinglouchangke 的回复:感谢以上各位友人 不客气  1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南

user: user-0
content: 感谢以上各位友人

user: user-3
content: #include <stdio.h> #include <string.h>  char a[1000][15]; int b[1000];  int main() {     int n,i,j,k,max;     while (scanf("%d", &n)!=EOF)     {         //if(n=0)         if(n==0)             break;         for (i=1;i<=n;i++)         {             b[i]=0;             scanf("%s",a[i]);          }         for (i=1;i<=n;i++)         {             for (j=1;j<=n;j++)                 if(strcmp(a[i],a[j])==0)                 {                     b[i]++;                 }          }         max=b[1];         k = 1;         for(i=2;i<n;i++)         {             if(b[i]>max)             {                 max=b[i];                 k=i;             }          }         printf("%s\n",a[k]);     }     return 0; }  供参考～  每次输入的n都会变成0.

user: user-4
content: 字符串比较strcmp

user: user-0
content: 指的是哪个比较

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: 引用 3 楼 BuaaFrancisco 的回复:[quote=引用 1 楼 qq_45798109的回复:]二维字符数组。。。。 想知道这样的代码怎么写[/quote] 自己比较一下我注释掉的和没注释掉的有点区别，自己运行一下看看 #include <stdio.h> int main(){ 	int row,col;	//row是你要输入的行数，col要大于所有行中的字符个数 	scanf("%d%d",&row,&col);  	char a[row][col]; 	getchar(); 	for (int i = 0; i < row; ++i) { 		scanf("%s",&a[i]); //遇到换行符，空格，TAB结束 	//	gets(a[i]);	 //遇到换行符才会结束 	} 	for (int i = 0; i < row; ++i) { 		printf("%s\n",&a[i]); 	//	puts(a[i]); 	} 	return 0; }

user: user-0
content: 引用 1 楼 qq_45798109的回复:二维字符数组。。。。 想知道这样的代码怎么写

user: user-3
content: typedef char String[20] char a[20] char b[20] String c[2]={a,b} c[0],c[1]

user: user-2
content: 二维字符数组。。。。
user-0 提问: c语言指针不用i遍历进行排序

回复:
user: user-1
content: #include <stdio.h>   int main(void) {     int *p, num[10], *p1, temp;      printf("请输入10个数字：");     for(p=num;p-num<10;p++)     {         scanf("%d",p);     }      //while(*p++=*p1++)    //无意义的代码，去掉;      //for(p=num[0];p-num<9;p++)     for(p=num;p-num<9;p++)     {         //for(p1=num[0];p1-num<9-(p-num);p1++)         for(p1=num;p1-num<9-(p-num);p1++)         {             if(*p1>*(p1+1))             {                 temp=*p1;                 *p1=*(p1+1);                 *(p1+1)=temp;             }         }     }      printf("按照升序排列为：");     for(p1=num;p1-num<10;p1++)     {         printf("%d ",*p1);     }     putchar(10);      return 0; }  供参考～

user: user-0
content: 我也想用i直接遍历，可是要求必须用指针完成遍历；其次，while循环的目的只是为了将数组复制；最后，p=num[0]可以表达数组首地址

user: user-2
content: 功能我没看，先说代码中的错误 1.p1没有初始化就进行比较  2.while循环条件没用==，而用了=这个赋值操作   3.p=num[0]这个一个int，一个int*    你确定你这个代码能编译过然后运行奔溃？我觉得不会编译过

user: user-3
content: p=num; 你这样写还不如用i
user-0 提问: 一个思维题。

回复:
user: user-1
content: 假设都是一列(行) 行(列)   格子 1            1  2            2+1 3            3+2+1 4            4+3+2+1 5            5+4+3+2+1 6            6+5+4+3+2+1 .......... 如果我猜的不错的话只要把你输入的行和列求和再相乘就好了吧
user-0 提问: 这个怎么编写？

回复:
user: user-1
content: 基本东西还是自己研究一下如何写吧。如果你一定要让人帮你写，那么你考虑给多少钱吧？ PS：虽然这非常简单，但考虑到你基础这样差，估计就是给你完整的程序你也不一定会运行，这些工作量加在一起，价钱太低估计没有人会干的！

user: user-2
content: 建议自己先写写，一个循环加一个判断条件的事情。怎么还需要别人给动手写呢

user: user-3
content: 这种不应该是基础的吗？ 慢慢来啊

user: user-4
content: 建议自己先写写，一个循环加一个判断条件的事情。怎么还需要别人给动手写呢

user: user-5
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: 都是数学题，和编程关系不大

user: user-0
content: 引用 2 楼 寻开心的回复:2   公式是  n*（n-1）/2   写代码输入n，然后输出结果就完了  3   3*5*7 共105种情况，对1到105做循环， 看看是几满足除三余2，除以5余3，除以7余2的情况； 假定这个数是n     用2395 和2333 分别减去n， 看看差哪一个是105的倍数，哪一个就是了。     满足除以几余几的条件的数是105x+n     当然，你可以直接用2395和2333直接去除看余数是否满足条件 谢谢  麻烦再问你一道题可不可以

user: user-3
content: 2   公式是  n*（n-1）/2   写代码输入n，然后输出结果就完了  3   3*5*7 共105种情况，对1到105做循环， 看看是几满足除三余2，除以5余3，除以7余2的情况； 假定这个数是n     用2395 和2333 分别减去n， 看看差哪一个是105的倍数，哪一个就是了。     满足除以几余几的条件的数是105x+n     当然，你可以直接用2395和2333直接去除看余数是否满足条件

user: user-4
content: 2.先用数学写出公式，然后在程序中代入公式就行
user-0 提问: 大佬帮忙看看我这什么问题。。。

回复:
user: user-0
content: 引用 4 楼 qq_45690740的回复:[quote=引用 3 楼 自信男孩的回复:]去掉scanf前的~ 去我用~或者！＝eof好像都是死循环，输入数字没有输出yes或者no[/quote] 去掉~或者后面的，我都试了

user: user-0
content: 引用 3 楼 自信男孩的回复:去掉scanf前的~ 去我用~或者！＝eof好像都是死循环，输入数字没有输出yes或者no

user: user-1
content: 去掉scanf前的~

user: user-0
content: 引用 1 楼 qq_45798109的回复:~和!=EOF用一个就可以了 试了，还是一样的，单单用~或者!＝EOF也是一样。。

user: user-2
content: ~和!=EOF用一个就可以了

user: user-1
content: 引用 4 楼 qq_45690740 的回复:[quote=引用 3 楼 自信男孩的回复:]去掉scanf前的~ 去我用~或者！＝eof好像都是死循环，输入数字没有输出yes或者no[/quote] EOF是需要输入ctrl+d（linux下）或者ctrl+z（windows下）

user: user-3
content: 题目的要求是输入多组参数，针对每一组，得出一种结果。你这是全部输入完成之后处理，实际上，只是处理最后一组数据

user: user-0
content: 引用 6 楼 user-3的回复:你这个题目感觉都是做错了 那要怎么写，，，。，

user: user-3
content: 你这个题目感觉都是做错了
user-0 提问: 编程问题求m到n之间的素数和并输出求指点，谢谢

回复:
user: user-0
content: 谢谢两位大佬，刚接触，很多也不懂我多学习学习。我先把帖子结了。

user: user-1
content: #define PRIME 1 #define NOT_PRIME 0 int prime_two(int num) { 	if (num < 2) { 		return NOT_PRIME; 	} 	int max = (int)sqrt(num);// 头文件math.h 	for (int i = 2; i <= max; ++i) { 		if (0 == (num % i)) { 			return NOT_PRIME; 		} 	} 	return PRIME; } #undef PRIME #undef NOT_PRIME

user: user-2
content: #include<stdio.h> #include <math.h>  int is_prime(int num); int main() {     int m, n, tmp;     int sum = 0;     int cnt = 0;     int i;      scanf("%d %d", &m ,&n);     if (m <= 0 || n < 2)         return -1;     if (n < m) {         tmp = n;         n   = m;         m   = tmp;     }      for (i = m; i < n; i++) {         if (is_prime(i)) {             cnt++;             sum += i;         }     }      printf("%d\n", sum);      return 0; #if 0     if(0<n<=m<=200){         for(i=m;i<200;i++)         {             int k;             int isPrime = 1;             for(k=2;k<i;k++)             {                 if(i%k==0)                 {                     isPrime = 0;                     break;                  }             }             if(isPrime)             {                 cnt++;                 if( cnt<=n && isPrime==1  )                 {                     sum+=i;                 }              }         }          printf("%d\n",sum);     } #endif }  int is_prime(int num) {     int i;     int cnt = (int)sqrt(num);      for (i = 2; i <= cnt; i++)         if (num % i == 0)             return 0;      if (i > cnt)         return 1;      return 0; } 供参考～  优化之后～

user: user-2
content: #include<stdio.h> #include <math.h>  int is_prime(int num); int main() {     int m, n, tmp;     int sum = 0;     int cnt = 0;     int i;      scanf("%d %d", &m ,&n);     if (m <= 0 || n < 2)         return -1;     if (n < m) {         tmp = n;         n   = m;         m   = tmp;     }      for (i = m; i < n; i++) {         if (is_prime(i)) {             cnt++;             sum += i;         }     }      printf("%d\n", sum);      return 0; #if 0     if(0<n<=m<=200){         for(i=m;i<200;i++)         {             int k;             int isPrime = 1;             for(k=2;k<i;k++)             {                 if(i%k==0)                 {                     isPrime = 0;                     break;                  }             }             if(isPrime)             {                 cnt++;                 if( cnt<=n && isPrime==1  )                 {                     sum+=i;                 }              }         }          printf("%d\n",sum);     } #endif }  int is_prime(int num) {     int i;      for (i = 2; i <= (int)sqrt(num); i++)         if (num % i == 0)             return 0;      return 1; } 供参考～
user-0 提问: malloc与free的凝问

回复:
user: user-1
content: 没问题的，申请和释放可以不在一个函数里。但是申请时得到地址，在free是也需要是这个地址。

user: user-2
content: 假如你要买一个塑料袋装东西，等东西用完袋子就可以扔掉了。 你的问题就好比说你是要买完袋子就扔掉，还是要用完再扔

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: 引用 4 楼 mymtom 的回复:这本教材可以扔垃圾桶了。  printf("%d\n", d * y);  这样写根本，格式为"%d", 参数是double, 结果不不确定的。 题目错了！

user: user-3
content: 给你一个详细的解答： int x=1.2; 由于是int类型，所以i等于1。 (x+3.8)/5.0； 其中符号 / 是取商，如果y的类型是double，则等于0.96。 只怪y也是int类型，所以只能等于0. 而你最后输出的时候，用的又是%d, 这一下子就掐死了，最终结果只能是0

user: user-4
content: 这本教材可以扔垃圾桶了。  printf("%d\n", d * y);  这样写根本，格式为"%d", 参数是double, 结果不不确定的。

user: user-5
content: 在环境里输入代码编译运行一下，比如把x, y的值都打印一下。然后根据结果学习一下运行状态～

user: user-6
content: x的值为1 ， y的值为0，最后输出为0

user: user-7
content: 在电脑上跑下呗
user-0 提问: 萌新求助

回复:
user: user-1
content: 就是一直取第二次操作直到第三棵树的香蕉数量不足以再进行第二次操作，然后再进行第一次操作

user: user-0
content: 引用 1 楼 赵建泉的回复:我认为最优解永远是先进行第二种操作再进行第一种操作 我一点思路都没。。。

user: user-1
content: 我认为最优解永远是先进行第二种操作再进行第一种操作
user-0 提问: 求作业解答

回复:
user: user-0
content: int main 3.1416676……误差比起来double main 3.141597159……有点儿大

user: user-1
content: 编译器都说了必须返回int型。(你return个0.0试试，我也不确定)

user: user-0
content: 引用 1 楼 qq_45798109的回复:int main 不是double 可是我同学的double就能运行啊

user: user-1
content: int main 不是double

user: user-0
content: 引用 6 楼 weixin_40290083的回复:我的环境：ubuntu 16   GCC   Eclipse platform可以运行。 可能真的是电脑问题吧  我的fabs必须要声明一下加个头文件math.h才能用 她的就可以直接用

user: user-2
content: 我的环境：ubuntu 16   GCC   Eclipse platform可以运行。

user: user-3
content: main一般是用int作为返回值类型的，或者void(有些编译器支持），但是没有见过返回double的
user-0 提问: Program received signal SIGSEGV, Segmentation fault. 的情况该怎么解决啊？遇到好几次了 我仅仅是想生成散列表

回复:
user: user-1
content: 按照你的代码来说，就是没申请内存，相当于访问了一个不存在的地方。其他的你可以搜搜。我不甚了解。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-0
content: 引用 1 楼 user-1 的回复：#include <stdio.h> #include <stdlib.h> #define SUCCEE 1 #define UNSUCCEES 0 #define HashSize 16  //定义散列表表长为数组的长度 #define NULLKEY -32768 #define Mod 13  //余数 typedef struct { 	int* elem;  //数据元素存储基址，动态分配数组 	int count; //当前数据元素个数 }HashTable; int m = 0; //散列表表长 void InitHashTable(HashTable** H);// 双指针 int HashFunc(int key); void InsertHash(HashTable* H, int key); int main() { 	HashTable* H; 	InitHashTable(&H);// 加取地址 	int key_array[12];  	printf("请输入一组关键字：\n");  	int i;  	for (i = 0; i < 12; i++) { 		scanf("%d", &key_array[i]); 	} 	for (i = 0; i < 12; i++) { 		InsertHash(H, key_array[i]); 	}  	return 0; } void InitHashTable(HashTable** H) {// 双指针 	int i; 	*H = (HashTable*)malloc(sizeof(HashTable));// 申请结构体的内存 	if (NULL == *H) { 		exit(-1); 	} 	m = HashSize; 	(*H)->count = m; 	(*H)->elem = (int*)malloc(m * sizeof(int)); 	if (NULL == (*H)->elem) { 		exit(-1); 	} 	for (i = 0; i < m; i++) { 		(*H)->elem[i] = NULLKEY; 	} 	return; } int HashFunc(int key) { 	return key % Mod; } void InsertHash(HashTable* H, int key) { 	int address;  	address = HashFunc(key); 	while (H->elem[address] != NULLKEY) { 		address = (address + 1) % Mod; 	} 	H->elem[address] = key; }大佬 我那样子写为什么不对呢？那个错误是什么意思？

user: user-1
content: #include <stdio.h> #include <stdlib.h> #define SUCCEE 1 #define UNSUCCEES 0 #define HashSize 16  //定义散列表表长为数组的长度 #define NULLKEY -32768 #define Mod 13  //余数 typedef struct { 	int* elem;  //数据元素存储基址，动态分配数组 	int count; //当前数据元素个数 }HashTable; int m = 0; //散列表表长 void InitHashTable(HashTable** H);// 双指针 int HashFunc(int key); void InsertHash(HashTable* H, int key); int main() { 	HashTable* H; 	InitHashTable(&H);// 加取地址 	int key_array[12];  	printf("请输入一组关键字：\n");  	int i;  	for (i = 0; i < 12; i++) { 		scanf("%d", &key_array[i]); 	} 	for (i = 0; i < 12; i++) { 		InsertHash(H, key_array[i]); 	}  	return 0; } void InitHashTable(HashTable** H) {// 双指针 	int i; 	*H = (HashTable*)malloc(sizeof(HashTable));// 申请结构体的内存 	if (NULL == *H) { 		exit(-1); 	} 	m = HashSize; 	(*H)->count = m; 	(*H)->elem = (int*)malloc(m * sizeof(int)); 	if (NULL == (*H)->elem) { 		exit(-1); 	} 	for (i = 0; i < m; i++) { 		(*H)->elem[i] = NULLKEY; 	} 	return; } int HashFunc(int key) { 	return key % Mod; } void InsertHash(HashTable* H, int key) { 	int address;  	address = HashFunc(key); 	while (H->elem[address] != NULLKEY) { 		address = (address + 1) % Mod; 	} 	H->elem[address] = key; }
user-0 提问: 小白求教

回复:
user: user-1
content: VC6好像不支持for括号内定义变量，移出来试试看

user: user-0
content: 谢谢大家，用的是visual c++

user: user-2
content: 建议把i, j的声明定义放在循环外，循环前

user: user-3
content: 把”j=10“放在循环的前边

user: user-4
content: 另外，检查一下逗号和分号的半角，不能用中文的符号

user: user-4
content: 你用什么版本?有些版本好像不能在for()里定义变量。 试试把int定义在for前
user-0 提问: 有没有没有头节点的空链表

回复:
user: user-0
content: 引用 1 楼 proorck2019的回复:可以看做链表的特殊状态，也算是链表。 那这个链表是不是没占一点空间啊

user: user-1
content: 链表头是为了表示这个链表的开始位置，是为了寻找后面的节点才保存的。 如果一个链表没有一个节点，那么这个链表是一个空的

user: user-2
content: 链表不一定是树形的，还有环形链表

user: user-3
content: 可以看做链表的特殊状态，也算是链表。

user: user-1
content: 引用 4 楼 Dr.Derison 的回复:[quote=引用 1 楼 proorck2019的回复:]可以看做链表的特殊状态，也算是链表。 那这个链表是不是没占一点空间啊[/quote] 怎么才算栈空间，另外，你说的占一点空间，是指堆上的，还是栈上的？ 头结点即使没有申请空间，但是也会占用内存的，因为指针也占用内存的

user: user-4
content: 链表如果没有头指针，你从哪儿开始啊  还怎么对链表进行操作呢？  头指针的值可以是空， 表示空表， 此时链表本身没有占任何空间 （头指针这个变量是始终存在并占据空间的）  ps 具体如何，其实还是要取决于链表的具体实现方法， 链表的类型比较多， 实现方法也五花八门

user: user-3
content: 引用 4 楼 Dr.Derison的回复:[quote=引用 1 楼 proorck2019的回复:]可以看做链表的特殊状态，也算是链表。 那这个链表是不是没占一点空间啊[/quote] 现在内存很大，老师们，尤其是老教授，他们年轻时内存才1MB。我们现在不用算这么细。
user-0 提问: 我想让被调函数里i<10的10用个参数来表示，好在不管输入多少个数都能用，怎么改代码？

回复:
user: user-1
content: f函数要改造， main函数当中的定义a[10]也要改造成类似下面的方法 main () {     int N;     scanf("%d", &N);     int a[N]; }  注意这个和编译环境有关系，早期的软件版本可能不支持这种数组的定义；  如果不支持，就要改成 动态指针了，  用 int * a = (int*) malloc( sizeof(int) * N ) 来处理

user: user-2
content: double f(int m[], int n) {     int i;     double ave = 0,s=0;      for(i=0;i<n;i++)     {         s=s+m[i];     }      if (n)         ave=s/n;      return ave; } 供参考～

user: user-3
content: 引用 1 楼 user-4 的回复:加个参数int n就好啦，然后i < n 没有这么简单！数组会越界的。鉴于程序只求平均值可以考虑取消数组，输入一个就累加一个，然后直接求平均，同时取消f函数

user: user-4
content: 平均数那边/10也要改成/n

user: user-4
content: 加个参数int n就好啦，然后i < n
user-0 提问: 为什么scanf 和gets不能连用？

回复:
user: user-1
content: 中间加个getchar把那个回车换行给读了不就好了

user: user-2
content: 引用 6 楼 棉猴 的回复:gets()函数用来接收输入的字符串，而scanf()可以接收多种格式的数据。两个函数遇到回车符都会认为是输入结束，但是gets()可以接收空格，但是scanf()则不行。 以上节选自《scanf()、gets()和getline()读取输入》 希望能够帮到你！scanf 可以接受带空格的字符串的

user: user-2
content: 引用 5 楼 薄情⁽ⁿᵔᵕᵔⁿ⁾ 的回复:[quote=引用 3 楼 自信男孩 的回复:] 如果在scanf后用gets需要注意一点，gets是遇到'\n'直接返回，而输入scanf后回车会将'\n'留在输入缓存里，而gets正好 遇到'\n'就直接返回了，所以你没有机会输入。那需要如何把这个避免，难道就不能用了吗？ [/quote]知道有一个 \n 干扰 那就清理掉 \n就完事了 比较简单的 scanf后面加一个 %*c 处理\n 就可以了

user: user-3
content: gets()函数用来接收输入的字符串，而scanf()可以接收多种格式的数据。两个函数遇到回车符都会认为是输入结束，但是gets()可以接收空格，但是scanf()则不行。 以上节选自《scanf()、gets()和getline()读取输入》 希望能够帮到你！

user: user-0
content: 引用 3 楼 自信男孩 的回复:如果在scanf后用gets需要注意一点，gets是遇到'\n'直接返回，而输入scanf后回车会将'\n'留在输入缓存里，而gets正好 遇到'\n'就直接返回了，所以你没有机会输入。那需要如何把这个避免，难道就不能用了吗？

user: user-4
content: 如果在scanf后用gets需要注意一点，gets是遇到'\n'直接返回，而输入scanf后回车会将'\n'留在输入缓存里，而gets正好 遇到'\n'就直接返回了，所以你没有机会输入。

user: user-2
content: 看你怎么用而已

user: user-2
content: 完全可以连用
user-0 提问: vs2017这个问题怎么办啊，求大神解答

回复:
user: user-0
content: 谢谢，OK了，

user: user-1
content: 可以把暂时不需要的main临时改为main1、2345等等

user: user-0
content: 引用 1 楼 user-1的回复:你多个程序文件里面都有main函数，这是不允许的！ 请问那该怎么办呢，今天刚下的vs2017,dev里就没有这个问题

user: user-1
content: 你多个程序文件里面都有main函数，这是不允许的！
user-0 提问: 一数组内放5个整数，要求找出第一次出现的最小数和它的下标，然后把它和数组中最前面的元素即第一个数对换位置。

回复:
user: user-1
content: #include<stdio.h> int main() {     //int a[5],i,min,t=0;     //int b[5],k,j,n=0;     int a[5], tmp, n;     int i, min;      scanf("%d",&n);     if (n > 5)         n = 5;     for(i=0;i<n;i++)         //scanf("%d",a[i]);   //此处可能导致段错误         scanf("%d", &a[i]);      //min = a[0];     min = 0;     //for(i=0;i<n;i++)     for(i=1;i<n;i++)     {         //if(min>a[0])         if(a[min]>a[i])             min = i;             /*         {             k=min;             min=a[0];             a[0]=k;         }         */     }     printf("min=%d,weizhi=%d",a[min], min);     if (min != 0) {         tmp = a[min];         a[min] = a[0];         a[0] = a[min];     }      for (i = 0; i < 5; i++)         printf("%4d", a[i]);     putchar(10);      /*     for(i=0;i<n;i++)     {    b[5]=a[5];     //数组越界，可能导致段错误     }     if(min>b[i])     {         min=b[i];         t=i;     }     printf("%4d ",b[i]);     printf("min=%d,weizhi=%d",min,t);     */     return 0; } 供参考～

user: user-2
content: a[5]b[5]这样的数组，范围是a[0]～a[4]b[0]～b[4]。 上课没注意听讲，在玩手机吗？

user: user-3
content: for(i=0;i<n;i++)     {    b[5]=a[5];  }这玩意什么意思，，写错了吧 另外b[5]和a[5]越界了
user-0 提问: 求解

回复:
user: user-0
content: 引用 3 楼 SuperDay的回复:楼主一个接一个地发帖子，都不去结掉吗？这样对得起观众吗？ 不好意思，刚开始用，才上网页版

user: user-1
content: 楼主一个接一个地发帖子，都不去结掉吗？这样对得起观众吗？

user: user-2
content: 可以。通常用循环实现

user: user-0
content: 引用 楼主 fight with myself的回复:C语言中能不能输出给定范围的元素，比如说输出第3个到第9个 忘记补条件了，是在数组中
user-0 提问: 求解

回复:
user: user-1
content: 引用 2 楼 winnerrrrrrrr 的回复:引用 1 楼 liups 的回复：是==，不是=这样就可以输出在范围的三位数了是吧 昏了！这样当然可以在范围了，因为d在范围内改变，而d正常情况下又没有改变，所以你说的对！

user: user-1
content: 引用 2 楼 winnerrrrrrrr 的回复:引用 1 楼 liups 的回复：是==，不是=这样就可以输出在范围的三位数了是吧 没细看，不知道能不能。原始的程序最大的问题是把相等比较（==）误写成赋值（=）了

user: user-0
content: 引用 1 楼 liups的回复:是==，不是= 感谢

user: user-0
content: 引用 2 楼 winnerrrrrrrr的回复:引用 1 楼 liups 的回复：是==，不是=这样就可以输出在范围的三位数了是吧 对，感谢

user: user-2
content: 引用 1 楼 liups 的回复：是==，不是=这样就可以输出在范围的三位数了是吧

user: user-1
content: 是==，不是=
user-0 提问: 新手求解答  Compile Error   

回复:
user: user-1
content: strchr在Linux下是不支持这个函数的，建议楼主查一下自己的编译器里是否支持这个函数；  也可以自己实现～  #include<stdio.h> #include<ctype.h> #include<string.h>  char *my_strupr(char *str);  int main() {     int i,n,k;     char c[100];     while ((c[0]=getchar())!=EOF)     {         k=1;         while ((c[k++]=getchar()) != '\n')             ;         c[k-1]='\0';         my_strupr(c);         n = strlen(c);         for(i=0;i<n/2;i++) {             if(c[i]!=c[n-i-1])                 break;         }         if(i==n/2)             printf("Yes\n");         else             printf("No\n");     }     return 0; }  char *my_strupr(char *str) {     int i = 0;      while (str[i]) {         if (islower(str[i]))             str[i] -= 32;         i++;     }      return str; } 供参考～

user: user-2
content: 可以编译运行！

user: user-3
content: strupr(c)换成_strupr_s(c)
user-0 提问: 求解，为什么数都那么大？

回复:
user: user-1
content: printf不加\n就是这种效果

user: user-2
content: 输出在一个循环里，所以你看着是数据是很大的～

user: user-0
content: 啊，谢谢你，我懂了。

user: user-3
content: 不是大，这是三个数，8  5  2，就是3的倍数减一，%3就是对3取余
user-0 提问: C语言数据结构C2143错误求大神解答！

回复:
user: user-1
content: 真的是环境问题，我用c source 提示错误，用c++ source就可以了

user: user-0
content: 引用 8 楼 菜菜初学者的回复:[quote=引用 7 楼 qq_45798109的回复:][quote=引用 4 楼 菜菜初学者的回复:][quote=引用 1 楼 qq_45798109的回复:]函数原型的参数是指针类型，主函数里的s却不是指针 你好，我改了那个地方但还是没用。[/quote] Sqstack s;改成Sqstack *s;我云行出来了呀，虽然我不知道运行的结果是不是你想要的[/quote] 你好，你看一下我新发的贴，有一串可以编译运行的代码，但是我对比不出错误在哪里。[/quote] 以前我们老师说应该是环境问题，但我也不敢确定。

user: user-0
content: 引用 7 楼 qq_45798109的回复:[quote=引用 4 楼 菜菜初学者的回复:][quote=引用 1 楼 qq_45798109的回复:]函数原型的参数是指针类型，主函数里的s却不是指针 你好，我改了那个地方但还是没用。[/quote] Sqstack s;改成Sqstack *s;我云行出来了呀，虽然我不知道运行的结果是不是你想要的[/quote] 你好，你看一下我新发的贴，有一串可以编译运行的代码，但是我对比不出错误在哪里。

user: user-2
content: 引用 4 楼 菜菜初学者的回复:[quote=引用 1 楼 qq_45798109的回复:]函数原型的参数是指针类型，主函数里的s却不是指针 你好，我改了那个地方但还是没用。[/quote] Sqstack s;改成Sqstack *s;我云行出来了呀，虽然我不知道运行的结果是不是你想要的

user: user-0
content: 引用 3 楼 proorck2019的回复:void initstack(Sqstack *&L) 星号和&连用？ 嗯嗯。之前这么打没问题的。

user: user-0
content: 引用 2 楼 自信男孩的回复:#include"stdio.h" #include"stdlib.h" //#include <stdbool.h> #define Maxsize 100 // 定义栈的最大容量  typedef int Datatype; typedef struct {     Datatype data[Maxsize]; // 定义存放栈元素的数组，定义栈中元素，Datatype为元素的数据类型     int top; // 定义栈指针，指向栈顶的位置 }Sqstack; void initstack(Sqstack *&L)/*初始化顺序栈*/ {     L = (Sqstack *)malloc(sizeof(Sqstack));     L -> top = -1; // 初始化栈指针top为-1，即为空栈 } int stackempty(Sqstack *L)/*判断顺序栈是否为空*/ {     //return (L->top = -1);     return (L->top == -1); } //void main() int main() {     //Sqstack s;     Sqstack *s;     printf("(1).初始化顺序栈;\n");     initstack(s);      printf("(2).判断顺序栈是否为空:");     if(stackempty(s))     {         printf("这是一个空顺序栈!\n");     }     else printf("这是非空顺序栈!\n"); }  供参考～ 你好，我用你改的代码后还是没用。

user: user-0
content: 引用 1 楼 qq_45798109的回复:函数原型的参数是指针类型，主函数里的s却不是指针 你好，我改了那个地方但还是没用。

user: user-3
content: void initstack(Sqstack *&L) 星号和&连用？

user: user-4
content: #include"stdio.h" #include"stdlib.h" //#include <stdbool.h> #define Maxsize 100 // 定义栈的最大容量  typedef int Datatype; typedef struct {     Datatype data[Maxsize]; // 定义存放栈元素的数组，定义栈中元素，Datatype为元素的数据类型     int top; // 定义栈指针，指向栈顶的位置 }Sqstack; void initstack(Sqstack *&L)/*初始化顺序栈*/ {     L = (Sqstack *)malloc(sizeof(Sqstack));     L -> top = -1; // 初始化栈指针top为-1，即为空栈 } int stackempty(Sqstack *L)/*判断顺序栈是否为空*/ {     //return (L->top = -1);     return (L->top == -1); } //void main() int main() {     //Sqstack s;     Sqstack *s;     printf("(1).初始化顺序栈;\n");     initstack(s);      printf("(2).判断顺序栈是否为空:");     if(stackempty(s))     {         printf("这是一个空顺序栈!\n");     }     else printf("这是非空顺序栈!\n"); }  供参考～

user: user-2
content: 函数原型的参数是指针类型，主函数里的s却不是指针
user-0 提问: 为啥会这样呢？

回复:
user: user-1
content: 今天之内最秀的帖子，没有之一。  如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 CSDN论坛新手指南

user: user-2
content: 窗口标题已经说明了一切

user: user-3
content: 直接贴代码吧～

user: user-4
content: 这啥意思。。。

user: user-5
content: 你能不能好好发帖子，就让人看一个黑框框吗？
user-0 提问: 求解答！！

回复:
user: user-1
content: x的取值是0,1；有什么问题吗？根据&&前一个&&先计算，如果为假，整个表达式为假（即0），如果前一个&&得出的是真， 继续后面的表达式。如果后面的表达式为真（即1）则整个表达式为真（1），否则真个表达式为假（即0）

user: user-2
content: a&&b  =1(a,b都不为零的情况下等1） 'A'<'B'  =1(因为A的ascii比B小） 1&&1  =1

user: user-3
content: x=(a&&b)&&(c<'B') x=(2&&5)&&('A'<'B') x=(true&&true)&&true=true 在C语言中0表示false，非0表示true x最终等于1
user-0 提问: C语言进制转换问题

回复:
user: user-1
content: /********************************************************************* 	Description: int型10进制数转换为radix进制字符串 	Language: C 	IDE: Visual Studio 2019 	Author: user-1 	Date: 2019-11-12 19:19:04 	From: https://bbs.csdn.net/topics/395030499 *********************************************************************/ #include <stdio.h> #include <stdlib.h> #define MAX_LEN 33 char* int_to_radix(int value, char str[], int radix) { 	if (radix < 2 || radix > 36) { 		printf("进制范围是[2,36]\n"); 		exit(-1); 	} 	char tab[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 	unsigned unum; 	int len = 0; 	int k = 0;// 正 	if (10 == radix && value < 0) { 		unum = (unsigned)(-value); 		str[len++] = '-'; 		k = 1;// 负 	} else { 		unum = (unsigned)value; 	} 	do { 		str[len++] = tab[unum % radix]; 		unum /= radix; 	} while (unum > 0); 	str[len] = '\0'; 	for (int i = k; i <= ((len - 1) >> 1); ++i) { 		char temp = str[i]; 		str[i] = str[len - 1 - i + k]; 		str[len - 1 - i + k] = temp; 	} 	return str; } int main(void) { 	int n, radis; 	scanf_s("%d %d", &n, &radis); 	char str[MAX_LEN]; 	int_to_radix(n, str, radis); 	printf("%s\n", str); 	return 0; } /********************************************************************* 2147483647 2 1111111 11111111 11111111 11111111 请按任意键继续. . . 2147483647 3 12112122212110202101 请按任意键继续. . . 2147483647 4 1333333333333333 请按任意键继续. . . 2147483647 5 13344223434042 请按任意键继续. . . 2147483647 10 2147483647 请按任意键继续. . . -1 10 -1 请按任意键继续. . . *********************************************************************/   如果已经解决，麻烦及时在电脑网页上结贴。 如果没有解决，可继续追问。 CSDN论坛新手指南
user-0 提问: 输出任意区间内水仙花数的个数。帮忙看看代码哪里有问题，正确结果应该是4，不是11

回复:
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: 嗯嗯，以后得多注意这些问题。谢谢指导~

user: user-0
content: 引用 1 楼 qq_45798109的回复:建议你把码贴出来，这样才会有人看。 嗯嗯，新手上路，慢慢探索

user: user-2
content: 因为你没有考虑n的值为1位数和2位数的问题。   while(t>9){     cnt++;     t = t/10; }  if(cnt <3){     n++;     continue; }  p = n;

user: user-3
content: 建议你把码贴出来，这样才会有人看。
user-0 提问: 新手求解答

回复:
user: user-1
content: 调换的话可以搞一个中间变量。

user: user-1
content: 直接  指针名[下标]  。C的下表引用和间接访问表达式是一样的。

user: user-2
content: 虽然不太理解你想表述的意思，但首先你要明白 数组名本身就是一个指针，例如int Arr[3] = {1, 2, 3}; 其中数组名Arr本质就是一个指针。 给你一段代码，把指针操作数组的不同方式列举了一下。 int main() {  	int arr[3] = {1, 2, 3}; 	int *pt = arr;  	*pt = 11;  	*(++pt) = 12; 	--pt;  	pt[2] = 13;  	//循环1 	for(int i=0; i<3; i++) 		cout<<*pt++<<endl;  	//循环2 	for(int i=0; i<3; i++) 		cout<<arr[i]<<endl; 	 }  执行代码之后，可以发现 循环1 和 循环2 的结果是一样的

user: user-3
content: 最好举个例子，自己写个程序试试，结合实践是最好的～
user-0 提问: 求大神解答

回复:
user: user-1
content: /********************************************************************* 	Description: 快速排序 	Language: C 	IDE: Visual Studio 2019 	Author: wowpH 	Date: 2019-11-12 18:43:34 	From: https://bbs.csdn.net/topics/395029118 *********************************************************************/ #include <stdio.h> #include <stdlib.h>  // 数据，起始下标，结束下标 void quick_sort(int src[], int low, int high); int partition(int src[], int low, int high);  int main(void) { 	int size; 	printf("输入待排序的数据个数："); 	scanf_s("%d", &size); 	if (size <= 0) { 		printf("至少需要1个数据！\n"); 		exit(-1); 	} 	int* arr = (int*)malloc(size * sizeof(int));// 头文件stdlib.h 	if (NULL == arr) { 		printf("动态申请内存失败！请减少数据的个数！\n"); 		exit(-1); 	} 	printf("输入待排序的数据：\n"); 	for (int i = 0; i < size; ++i) { 		scanf_s("%d", &arr[i]); 	} 	quick_sort(arr, 0, size - 1); 	printf("升序排序后的数据：\n"); 	for (int i = 0; i < size; ++i) { 		printf("%d", arr[i]); 		putchar(i == size - 1 ? '\n' : ' '); 	} 	free(arr); 	return 0; } void quick_sort(int src[], int low, int high) { 	if (low < high) { 		int pivotloc = partition(src, low, high); 		quick_sort(src, 0, pivotloc - 1); 		quick_sort(src, pivotloc + 1, high); 	} } int partition(int src[], int low, int high) { 	int pivot_key = src[low]; 	while (low < high) { 		while (low < high && src[high] >= pivot_key) { 			--high; 		} 		src[low] = src[high]; 		while (low < high && src[low] <= pivot_key) { 			++low; 		} 		src[high] = src[low]; 	} 	src[low] = pivot_key; 	return low; } /********************************************************************* 输入待排序的数据个数：8 输入待排序的数据： 49 38 65 97 76 13 27 49 升序排序后的数据： 13 27 38 49 49 65 76 97 请按任意键继续. . . *********************************************************************/

user: user-2
content: 快速排序算法，可以看一下