Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 这是我写的暴破web密码c源代码，产生自卑感了吗？

回复:
user: user-0
content: 引用 11 楼 Meteor_Code 的回复:lz可以试试用多线程，10个线程，这个测试量我估计能快5倍， 我看你好象是输入一个uid，其实没必要，学校的uid都是有规律的，你可以自动生成，你们系统的密码一般也是系统有默认的方式，比如生日这种，你就根据uid应该可以推算出这个人的生日年代，然后最多测试366次，总有很多人不修改自己默认密码的，这样扫一天下来，命中率一定不少  我是为定向暴破某号准备的，大范围扫有什么意思，不如用burp suite了，所以还是要自己输入要暴破的ID的，目的不同嘛。

user: user-1
content: LZ你又来调皮了。

user: user-2
content: lz可以试试用多线程，10个线程，这个测试量我估计能快5倍， 我看你好象是输入一个uid，其实没必要，学校的uid都是有规律的，你可以自动生成，你们系统的密码一般也是系统有默认的方式，比如生日这种，你就根据uid应该可以推算出这个人的生日年代，然后最多测试366次，总有很多人不修改自己默认密码的，这样扫一天下来，命中率一定不少

user: user-3
content: Are you kidding me?

user: user-4
content: 除了代码风格有点恶心外，  功能确认令人汗颜阿！

user: user-5
content: 陷入的深深的自卑中

user: user-6
content: 确实深深的汗言

user: user-7
content: 深深的汗言,

user: user-8
content: 我年轻那会儿，大家都抱着dos内核分析这本书，我们当时有个协会。大家写的程序也大多是tsr程序，现在叫病毒吧。后来再也没写过。我坦白交代下这些年我用程序做的坏事儿。很多年前，我对启点读书网的等级着迷，我写了个perl的脚本去刷积分，达到了大恶魔级，后来被封了，我确实是恶魔。我在wow里写了个lua脚本，天天玩战场，所有的UT或YY团队都骂这家伙怎么总是出现，哇哈哈。继续wow继续lua，我写了差不多几千行的lua脚本，外面写了个外挂，去打boss。猫德，每次我一身垃圾装备进去跟人彪dps，然后在YY里吹嘘自己的技术，嘎嘎。每次，我的任务就是跑好位，蹲在boss的屁股后面。我没传播，我差不多干了2年这种无耻的事情，没被发现，OY。我想想，我还干过什么无耻的事情？我儿子最近学英语，我希望用英语考他的书写。当时，我好像用个很傻缺的语言，flash air在google的官网上下载了很多的语音。后来我发现自己很傻缺，那个你敲点啥进去都能发音，不过确实挺准的。哈哈。娱乐我觉得挺有意思，不要危害他人。

user: user-9
content: 没注释，没缩进

user: user-10
content: 楼主的图比代码好看多了
user-0 提问: 【求教】结构体带指针嵌套 

回复:
user: user-1
content: 不用数组的话可以每增加一个就分配一个student结构体需要的空间的内存，然后把指针指向这个分配的内存。 删除的时候记得把对应内存释放掉。

user: user-0
content: 引用 1 楼 paopaozai 的回复:不用数组的话可以每增加一个就分配一个student结构体需要的空间的内存，然后把指针指向这个分配的内存。 删除的时候记得把对应内存释放掉。这样的话具体应该如何实现呢？我写了一下总是出问题= =
user-0 提问: Segmentation fault (core dumped) linux C编程，50分

回复:
user: user-1
content: 引用 7 楼 hy09070422 的回复:[quote=引用 5 楼 hy09070422 的回复:] [quote=引用 3 楼 bijiaoben 的回复:] 百度了一下，函数原型int stat(const char *file_name, struct stat *buf); 所以感觉应该是用了野指针，先给ptr1申请一下内存再试试看呢。 我试试看，谢谢！[/quote]  引用 6 楼 user-2 的回复:[quote=引用 2 楼 bijiaoben 的回复:] struct stat *ptr1;，定义之后没看到给ptr1分配空间啊。 stat(from_file,ptr1)；这个函数原型是什么？如果要修改ptr1结构体成员的值的话，你的ptr1根本没有向系统申请有效的内存空间啊。如果是让ptr1指向另外一个结构体，应该传递&ptr1给stat函数吧？   应该是这个问题。[/quote] 谢谢 确实是这个问题 自己对指针理解有问题。太感谢了！[/quote] 结帖收分

user: user-0
content: 引用 5 楼 hy09070422 的回复:[quote=引用 3 楼 bijiaoben 的回复:] 百度了一下，函数原型int stat(const char *file_name, struct stat *buf); 所以感觉应该是用了野指针，先给ptr1申请一下内存再试试看呢。 我试试看，谢谢！[/quote]  引用 6 楼 user-2 的回复:[quote=引用 2 楼 bijiaoben 的回复:] struct stat *ptr1;，定义之后没看到给ptr1分配空间啊。 stat(from_file,ptr1)；这个函数原型是什么？如果要修改ptr1结构体成员的值的话，你的ptr1根本没有向系统申请有效的内存空间啊。如果是让ptr1指向另外一个结构体，应该传递&ptr1给stat函数吧？   应该是这个问题。[/quote] 谢谢 确实是这个问题 自己对指针理解有问题。太感谢了！

user: user-2
content: 引用 2 楼 bijiaoben 的回复:struct stat *ptr1;，定义之后没看到给ptr1分配空间啊。 stat(from_file,ptr1)；这个函数原型是什么？如果要修改ptr1结构体成员的值的话，你的ptr1根本没有向系统申请有效的内存空间啊。如果是让ptr1指向另外一个结构体，应该传递&ptr1给stat函数吧？   应该是这个问题。

user: user-0
content: 引用 3 楼 bijiaoben 的回复:百度了一下，函数原型int stat(const char *file_name, struct stat *buf); 所以感觉应该是用了野指针，先给ptr1申请一下内存再试试看呢。 我试试看，谢谢！

user: user-0
content: 引用 2 楼 bijiaoben 的回复:struct stat *ptr1;，定义之后没看到给ptr1分配空间啊。 stat(from_file,ptr1)；这个函数原型是什么？如果要修改ptr1结构体成员的值的话，你的ptr1根本没有向系统申请有效的内存空间啊。如果是让ptr1指向另外一个结构体，应该传递&ptr1给stat函数吧？ stat(from_file,ptr1)；这个函数就是基本函数 将ptr1指针指向from_file路径对应的文件。 因为如果没有子文件夹的递归访问 程序是可以实现功能，stat函数，ptr1也可以正常工作的。 我不太清楚是不是分配空间的问题，如果没有子文件夹，指针可以运行。谢谢！

user: user-1
content: 百度了一下，函数原型int stat(const char *file_name, struct stat *buf); 所以感觉应该是用了野指针，先给ptr1申请一下内存再试试看呢。

user: user-1
content: struct stat *ptr1;，定义之后没看到给ptr1分配空间啊。 stat(from_file,ptr1)；这个函数原型是什么？如果要修改ptr1结构体成员的值的话，你的ptr1根本没有向系统申请有效的内存空间啊。如果是让ptr1指向另外一个结构体，应该传递&ptr1给stat函数吧？

user: user-0
content: 在cs240文件夹里面有一个子文件夹，当访问子文件夹中的文件时，出错。如果直接访问，cs240文件夹中其他文件，则没有问题。 网上说的core方法，没用同，刚接触linux 只会gcc盲调，所以很纠结！谢谢了！
user-0 提问: c问他求教

回复:
user: user-1
content: 楼主 说说你的需求吧！ 这个代码写的太水了，循环太多次，浪费时间了

user: user-2
content: 目测不是死循环，只是计算的时间太长了，需要比较10*127^10次，估计能算到下一代计算机出现了

user: user-3
content: system("dir /b /a-d c:\\*.* >d:\\allfiles.txt"); //读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字 system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt"); //读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录 system("dir /b /ad  c:\\*.* >d:\\alldirs.txt"); //读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字 请记住，能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作，而不要用各种API获取或者操作，因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时，API会处理的不全面或陷入死循环，而shell命令不会。

user: user-4
content: for(FileName[0]=1;FileName[0]!=-128;FileName[0]++) { for(FileName[1]=0;FileName[1]!=-128;FileName[1]++) { for(FileName[2]=0;FileName[2]!=-128;FileName[2]++) { for(FileName[3]=0;FileName[3]!=-128;FileName[3]++) { for(FileName[4]=0;FileName[4]!=-128;FileName[4]++) { for(FileName[5]=0;FileName[5]!=-128;FileName[5]++) { for(FileName[6]=0;FileName[6]!=-128;FileName[6]++) { for(FileName[7]=0;FileName[7]!=-128;FileName[7]++) { for(FileName[8]=0;FileName[8]!=-128;FileName[8]++) { for(FileName[9]=0;FileName[9]!=-128;FileName[9]++)  你这不就是在进行深层次循环吗？  这个计算时间应该会很长。  文件改小些测试一下。

user: user-5
content: 引用 7 楼 baichi4141 的回复:楼主这段代码如果用每秒54.9千万亿次浮点计算能力的天河-2来执行，只需要2.3天就可以完成 高人，大神

user: user-6
content: 楼主这段代码如果用每秒54.9千万亿次浮点计算能力的天河-2来执行，只需要2.3天就可以完成

user: user-7
content: 楼主折腾啥呢？

user: user-8
content: 需求是什么？  引用 楼主 u012690483 的回复:void OpenFile() { 	char FileName[15]={'\0'}; 	char Name[15]={'\0'}; 	FILE *file; 	system("cls"); 	for(FileName[0]=1;FileName[0]!=-128;FileName[0]++) 	{ 		for(FileName[1]=0;FileName[1]!=-128;FileName[1]++) 		{ 			for(FileName[2]=0;FileName[2]!=-128;FileName[2]++) 			{ 				for(FileName[3]=0;FileName[3]!=-128;FileName[3]++) 				{ 					for(FileName[4]=0;FileName[4]!=-128;FileName[4]++) 					{ 						for(FileName[5]=0;FileName[5]!=-128;FileName[5]++) 						{ 							for(FileName[6]=0;FileName[6]!=-128;FileName[6]++) 							{ 								for(FileName[7]=0;FileName[7]!=-128;FileName[7]++) 								{ 									for(FileName[8]=0;FileName[8]!=-128;FileName[8]++) 									{ 										for(FileName[9]=0;FileName[9]!=-128;FileName[9]++) 										{ 											for(int i=0;i<10;i++) 											{ 												if(FileName[i]==0) 												{ 													Name[i]='.'; 													Name[i+1]='l'; 													Name[i+2]='g'; 													Name[i+3]='f'; 													Name[i+4]='\0'; 													break; 												} 												else 												{ 													Name[i]=FileName[i]; 												} 											} 											//printf("%s\n",Name); 											if((fopen_s(&file,FileName,"r"))==false) 											{ 												printf("\s",FileName); 												fclose(file); 											} 										} 									} 								} 							} 						} 					} 				} 			} 		} 	} 	system("pause"); }  上面的代码想搜索.lgf的文件，可为什么它会是死循环呢？
user-0 提问: 求问VisualStudio一个解决方案中的两个项目的调试问题

回复:
user: user-1
content: 第二个进程中断了，再绑定进程吧

user: user-2
content: 感觉这种情况，用log 文件，可能更好

user: user-3
content: 调试汇编。逆向追踪。

user: user-4
content: 开两个vs. 第二个程序启动后，attch, 设置断点，调试。
user-0 提问: 函数的局部变量

回复:
user: user-1
content: 这样做法确实很危险；毕竟tmp是局部变量；只不过你的运气好，暂时没有出错；

user: user-2
content: 内存被回收了 只是数据没有清除而已  这样做是危险的  如果后面有数据入栈 那就无法预料了

user: user-3
content: 只是暂时没有覆盖而已，实际上这片地址已经被操作系统回收了，只是未做他用 没有改变而已，对于未知的东西 你看到的没改变 只是暂时的而已

user: user-4
content: To break when the value at a specified memory address changes  1.	From the Edit menu, click Breakpoints. 2.	Click the Data tab of the Breakpoints dialog box. 3.	In the Expression text box, type the memory address for the byte.  For a word or doubleword memory address, enclose the address in parentheses, and precede it with a cast operator. For example, WO(21406036) for the word at memory location 21406036. Use the cast operator BY for a byte (optional), WO for a word, or DW for a doubleword. (The debugger interprets all integer constants as decimal unless they begin with zero (0) for octal or zero and x (0x) for hexadecimal.) 4.	In the Number Of Elements text box, type the number of bytes, words, or doublewords to monitor. If you used the BY operator in the Expression field, specify the number of bytes. If you used WO, specify the number of words. If you used DW, specify the number of doublewords.  5.	Click OK to set the breakpoint.

user: user-5
content: 其实你的行为已经是非法操作了，编译器不够严谨的话是可以通过的，你返回了一个已经被释放的内存的地址，然后再主函数中访问这个地址，如果说在你在主函数访问这个地址之前这个内存的地址被重新分配并赋值了，那么子函数中返回的地址中的数据就会被覆盖掉。这种行为本身实不可取的，

user: user-6
content: 这样是非常危险的，只不过暂时没有被其它数据覆盖而已。  引用 楼主 mousestuman 的回复:#include <stdio.h> #include <malloc.h> struct my {int a;};  struct my *f0() {struct my tmp;  tmp.a = 1;  return &tmp; }  void main() { 	struct my *tmpp; 	 	tmpp = f0(); 	printf("%d",tmpp->a);  } 在函数f0中定义了一个局部结构体变量tmp，然后返回其地址。在main函数中调用了f0，返回值赋值给了指针tmpp，我想问的是为什么下面的printf("%d",tmpp->a);能输出局部变量tmp的内部成员，为什么tmp这个局部变量在f0函数调用后没有被销毁？

user: user-7
content: 有可能被其他数据覆盖
user-0 提问: 代码里有重复的函数定义,但是编译链接的时候不会报错,为什么

回复:
user: user-0
content: 今天问了下同事，他说那些重复定义的函数有些没用到

user: user-0
content: 是c语言，搜函数定义发现好几个函数体，我在不同的项目代码里碰到很多次了，有可能是楼上说的情况之一，我周一再去仔细看看，代码保密的，拷不出来～

user: user-1
content: 这个上代码比较好 楼上说的条件编译情况下函数被忽略了也有可能

user: user-2
content: 引用 9 楼 qq6680040 的回复:引用 8 楼 bijiaoben 的回复:[quote=引用 7 楼 qq6680040 的回复:] [quote=引用 3 楼 bijiaoben 的回复:] C语言有函数重载？LZ有说一定是C语言吗？ 这不是C语言版面吗？[/quote]我是从C/C++那进来的...[/quote] 那是大版，下面还有小版面，你把这帖子拉到顶上看看

user: user-3
content: 引用 8 楼 bijiaoben 的回复:引用 7 楼 qq6680040 的回复:[quote=引用 3 楼 bijiaoben 的回复:] C语言有函数重载？LZ有说一定是C语言吗？ 这不是C语言版面吗？[/quote]我是从C/C++那进来的...

user: user-2
content: 引用 7 楼 qq6680040 的回复:引用 3 楼 bijiaoben 的回复:C语言有函数重载？LZ有说一定是C语言吗？ 这不是C语言版面吗？

user: user-3
content: 引用 3 楼 bijiaoben 的回复:C语言有函数重载？LZ有说一定是C语言吗？

user: user-4
content: 口说无凭，个人更相信编译器。

user: user-5
content: 1. 条件编译只有一个生效 2. LZ把声明看成了定义? 3. 函数定义是static的 4. 函数实现完全一样, 某些编译器会允许.

user: user-2
content: 引用 12 楼 A3872215 的回复:这个我也遇到过 ，例如  添加 #include <unistd.h>后， 再定义一个 link的变量，就会这样 l.c:5: error: ‘link’ redeclared as different kind of symbol /usr/include/unistd.h:806: note: previous declaration of ‘link’ was here make: *** [l.o] 错误 1 这应该是 说 #include <unistd.h> 中已经有了一个 link的变量。 不知道你的是否 也是这样的问题。 lz的问题是他看到函数重复定义但是编译器没报错。。。

user: user-6
content: 这个我也遇到过 ，例如  添加 #include <unistd.h>后， 再定义一个 link的变量，就会这样 l.c:5: error: ‘link’ redeclared as different kind of symbol /usr/include/unistd.h:806: note: previous declaration of ‘link’ was here make: *** [l.o] 错误 1 这应该是 说 #include <unistd.h> 中已经有了一个 link的变量。 不知道你的是否 也是这样的问题。

user: user-2
content: 会不会有什么预编译选项楼主没注意到，例如： #if #else #endif

user: user-7
content: 感觉不太可能   除非编译器坑爹

user: user-2
content: C语言有函数重载？

user: user-3
content: “重复的函数定义”你确定没有不小心弄成函数重载了？

user: user-2
content: 先上代码再说
user-0 提问: 两个 c 语言的小问题

回复:
user: user-1
content: 第一个问题的解答： 在你的程序中添加一条语句，你就会明白了： #include<stdio.h>   int main() {     char c;       do     {      ;         c=getchar();         printf("3\n");         printf("%d\n", c);     }while(c=='y'||c=='Y'); } 当你输入y然后敲回车后，系统是认为你输入了两个字符：y和'\n'. 所以输出两个3, 然后程序结束。   PS:'\n'的ASCII值为10

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

user: user-2
content: 请检查scanf的返回值！

user: user-3
content: getchar 读了回车符 maybe

user: user-4
content: 在scanf的格式化参数中加入空格    scanf(" %c %d %f",&name[i],&code[i],&price[i]);

user: user-5
content: 你这两个问题都是没有清除 你输入时候 的 '\n'。 用getchar（）接收一下就好了。 1 #include<stdio.h>   2 #define N 2   3    4 int main()   5 {   6         int i,code[2];   7         char name[2];   8         float price[2];   9         for(i=0;i<N;i++)  10         {  11                 printf("Please input the name,code,price:");  12                 scanf("%c %d %f",&name[i],&code[i],&price[i]);  13                 getchar();  14         }  15   16         printf("Name   Code   Price\n");  17         for(i=0;i<N;i++)  18         {  19                 printf("%c   %d   %f \n",name[i],code[i],price[    i]);  20         }  21 }

user: user-6
content: 你是输入的y加回车两个字符，第一次打印一个3然后判断是y继续循环，这时候c=getchar(); c=回车 ，打印一个3，然后while判断不是y或者Y，结束循环。  可以 看下我以前的测试， http://blog.csdn.net/terhack/article/details/5425915  因为getchar，scanf这些函数不自动清空输入输出缓冲区，必须人为手动清空，所以输入最好用cin不要用,你用cin就正确了。

user: user-7
content: #include<stdio.h> #define N 2 int main() {     int i,code[2];     char name[2];     float price[2];     for(i=0;i<N;i++)     { 	         printf("Please input the name,code,price:");         scanf("%c %d %f",&name[i],&code[i],&price[i]); 		getchar();     } 	     printf("Name   Code   Price\n");     for(i=0;i<N;i++)     {         printf("%c   %d   %f \n",name[i],code[i],price[i]);     } 		 }

user: user-7
content: #include<stdio.h> void  main() {  char c;     do     {    	c=getchar(); 	printf("3\n");   	getchar();     }while(c=='y'||c=='Y'); }

user: user-7
content: 因为getchar是输入字符的，它吃字符；当你输入y的时候getchar是y，然后输出3，接着有个回车，getchar默认你输入的事回车，不是y就结束了

user: user-0
content: 引用 1 楼 bijiaoben 的回复:因为你是先打印了3，然后才判断输入是否为y问题是为什么不继续执行？

user: user-8
content: 1.你先去看看 DO WHILE的语法 2.你第二次FOR循环 的%c接受的是你上次一次的回车（换行符）剩下的你自己去看看书。

user: user-9
content: 因为你是先打印了3，然后才判断输入是否为y
user-0 提问: getchar()怎样用？？

回复:
user: user-1
content: 就是闲的 加上的 ，想看 打个断点不就行了，纯粹是为了F5调试的时候不想让命令行窗口消失，就这么点用途，价格断点就ok了

user: user-2
content: 智者的梦再美，也不如愚人实干的步伐！ 讲一千遍理论，不如写一行代码！  任何语言不落实到实际行动上都等于白说， 没读过MSDN例子代码的程序员实在让人感到可怕！  用C语言1000行源码能完成的工作千万不要用C++重写， 整天把高级技术放在嘴边那是一种浮夸！  少年啊，千万要重视单步调试和设置断点， 用VC调试时记得按下Alt+5、Alt+6、Alt+7和Alt+8。   对学习编程者的忠告： 眼过千遍不如手过一遍！ 书看千行不如手敲一行！ 手敲千行不如单步一行！ 单步源代码千行不如单步对应汇编一行！  VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和 寄存器变化，这样过一遍不就啥都明白了吗。 对VC来说，所谓‘调试时’就是编译连接通过以后，按F10或F11键单步执行一步以后的时候，或者在某行按F9设了断点后按F5执行停在该断点处的时 候。  不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址； 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文 字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针 的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……  进程都退出了，输入缓冲区刷不刷新都无关痛痒。  不要企图优雅的结束（因为这是不可能办到的） 而要在烂的不能再烂的摊子上也能重整河山！

user: user-0
content: 谢谢大家的帮助。。。。

user: user-0
content: 引用 2 楼 zhuobattle 的回复:等待输入，有输入后让循环继续，否则while(1)直接cpu冲满 谢了，最近学习Windows程序设计，一头雾水

user: user-0
content: 引用 1 楼 truelance 的回复:就是停下来等使用者按一个键再继续. 谢谢了，最近在学习Windows程序设计。

user: user-3
content: 等待用户输入一个字节！ 这里应该是通过用户控制循环输出而已！

user: user-4
content: 等待输入，有输入后让循环继续，否则while(1)直接cpu冲满

user: user-5
content: 就是停下来等使用者按一个键再继续.

user: user-6
content: 引用 3 楼 max_min_ 的回复:等待用户输入一个字节！ 这里应该是通过用户控制循环输出而已！ 在此处程序利用输入一个任意键来实现停顿的功能。好观察输出量

user: user-7
content: http://www.ontko.com/pub/rayo/cs35/while_getchar.html

user: user-8
content: getchar()函数的作用是从终端输入一个字符。 我想这里的意思是想看清每次的变化。
user-0 提问: libssh2编译成静态库

回复:
user: user-1
content: ./configure -h

user: user-0
content: 敢问带的参数在哪里看。。。。 make后生成的不是.a文件吧！

user: user-2
content: 先./configure 后面带些参数 然后make 大部分的开源库都是这样的，具体你可以摸索摸索
user-0 提问: 求解一个算法！

回复:
user: user-1
content: 假如是1000个数中有999个相同1个不同，那首先判断第一个第二个第三个中有没有和其它两个不同的，如果有那就是答案，如果没有那么这三个的值就是那个相同值，找后面不是这个值的数就行了 如果这999个数彼此之间也不同，那么需要定义要找的数到底哪里“与众不同”

user: user-2
content: 引用 楼主 Nirvana_wzj 的回复:给定1000个数字，其中有一个数字不同与剩下999个都不同，怎样查找，能够迅速找到这个与众不同的数字？求大神指点~  老实说，我都没明白这需求。 “其中有一个数字不同与剩下999个都不同” 这两个不同分别指代的是什么呢？ 第一个不同是指代，有一个数字与剩下999个不同，第二个不同是指代剩下的999个也不同？  模糊！~~  嘿嘿！~~

user: user-0
content: 引用 12 楼 yjz_uestc 的回复:[quote=引用 10 楼 Nirvana_wzj 的回复:] [quote=引用 9 楼 ForestDB 的回复:] 这题目没问题？没少条件啥的？ 0、1、2……999，每一个都与剩下的999个数字不同。 应该加上其他999个数字都相同，找出那个不同的[/quote]  你确定[/quote] 如果999个相同，1个不同，那怎么设计?

user: user-0
content: 引用 17 楼 u012997273 的回复:就是其中一个与另外999个不同吗，另外999个是相同的吗，这就好办了 如果是相同的该怎么做？

user: user-3
content: 建哈希表查找吧，如果数组变得很大，数据变成字符串，或者要找的目标改变，基本不用改变太多代码，通用点效率也高...

user: user-4
content: 引用 楼主 Nirvana_wzj 的回复:给定1000个数字，其中有一个数字不同与剩下999个都不同，怎样查找，能够迅速找到这个与众不同的数字？求大神指点~  把1000个数存在数组里。计算1000个数的总和S1000。然后计算前500个数的总和，如果不是S1000的一半 说明那个数在前500里。如果是S1000的一半 说明那个数在后500里然后反复进行上述步骤，直到n=1为止。时间复杂度为对数级。

user: user-0
content: 引用 9 楼 ForestDB 的回复:这题目没问题？没少条件啥的？ 0、1、2……999，每一个都与剩下的999个数字不同。 应该加上其他999个数字都相同，找出那个不同的

user: user-5
content: 没太仔细想，同时不知道有多少个这样的数。一个比较简单但效率不是那么高的算法，定制一个红黑树，每个节点有个count。逐个进行插入，当比对冲撞的时候进行累加。从左向右看，count为1的就是你需要的所有的数。  可以稍微加速一点，rbnode上嵌入一个自删除链表节点。如果count从1到2就产生删除，从0到1就产生插入。最后遍历链表，避免树遍历的变相递归开销。

user: user-6
content: 万一其中有数字长度超过1TB咋办？

user: user-7
content: 把3楼的数组变成map就可以了

user: user-8
content: 引用 4 楼 derekrose 的回复:哪里来的自信 这是最快的？ 哥们还有更好的算法吗，求指点

user: user-9
content: 引用 10 楼 Nirvana_wzj 的回复:[quote=引用 9 楼 ForestDB 的回复:] 这题目没问题？没少条件啥的？ 0、1、2……999，每一个都与剩下的999个数字不同。 应该加上其他999个数字都相同，找出那个不同的[/quote]  你确定

user: user-9
content: 这是计算频率的办法，但首先要确定数字的取值范围，题目未给  引用 3 楼 worldy 的回复:定义一个1000个单元的数组A， 将每个数据i做下标让A[i]++;  再次遍历，A[idx]=1就是要找的数据  ....这是最快的

user: user-10
content: 当没说~~，看错

user: user-10
content: 前两个相同(i)的话，累加是不是n*i?

user: user-11
content: 快排行不。。。。。。。。。。。。

user: user-12
content: 就是其中一个与另外999个不同吗，另外999个是相同的吗，这就好办了

user: user-13
content: 这题目没问题？没少条件啥的？ 0、1、2……999，每一个都与剩下的999个数字不同。

user: user-14
content: 3楼的做法基本靠谱，不过1000个有点少把，题目没说范围是0－999把？

user: user-15
content: 引用 6 楼 worldy 的回复:[quote=引用 5 楼 Nirvana_wzj 的回复:] [quote=引用 3 楼 worldy 的回复:] 定义一个1000个单元的数组A， 将每个数据i做下标让A[i]++;  再次遍历，A[idx]=1就是要找的数据  ....这是最快的 如果另外999个数字都是相同的，假设相同的数为123，则A[123]的值为999，不是1[/quote]假设是1000个浮点数如何是好？
user-0 提问: C 语言读取HDF格式的数据

回复:
user: user-0
content: 引用 7 楼 lihuiyu1314 的回复:你这是要弄遥感图像吗不是，就是要把数据导入到数据库里

user: user-1
content: 你这是要弄遥感图像吗

user: user-0
content: 有高手帮忙解决吗

user: user-0
content: 还是不太懂，请高手推荐一个学习的资料

user: user-2
content: 帮顶

user: user-3
content: 二进制读取，按照格式自己分解

user: user-4
content: 用 hdf 库 www.hdfgroup.org

user: user-5
content: 这个跟读其他文件应该没有区别吧
user-0 提问: 无向图的建立与遍历

回复:
user: user-1
content: http://blog.csdn.net/v_JULY_v/article/details/6111353

user: user-2
content: 邻接链表 邻接矩阵来存储

user: user-3
content: 使用邻接矩阵来表示啊。

user: user-4
content: http://www.indiastudychannel.com/resources/12983-C-Program-for-creation-adjacency-matrix.aspx  不要伸手

user: user-5
content: 你需要定义一个数据结构来描述这个图, 最简单的方式是关联矩阵数组  #define INF 0x7fffffff int edge[6][6] = { {0, 800, 1000, INF, INF, 700},   {800, 0, 60, 200, INF, INF},   {1000, 60, 0, 300, 20, 50},   {INF, 200, 300, 0, INF, INF},   {INF, INF, 20, INF, 0, 20},   {700, INF, 50, INF, 20, 0} };
user-0 提问: Visual Studio Team System Test Editon 能对c语言进行单元测试么

回复:
user: user-0
content: 引用 2 楼 SalmonRun 的回复:vs 2012 可以, 不知道什么版本, 用Ultimate一定行. 可以创建一个 Native Unit Test Project 进行单元测试. 用过, 还不错. 现在要用vs2010做 我现在不知道怎么得到要测试c文件的代码覆盖率  按照网上说的进行设置 跑完说覆盖率是0

user: user-1
content: vs 2012 可以, 不知道什么版本, 用Ultimate一定行. 可以创建一个 Native Unit Test Project 进行单元测试. 用过, 还不错.

user: user-2
content: 不清楚 推荐一个 mutest
user-0 提问: c语言中int型数据转char

回复:
user: user-1
content: char* tmp[10]; int a = 16; int b = 17;  snprintf(tmp, sizeof(tmp), "%d/%d", a, b);  .....

user: user-2
content: sprintf

user: user-3
content: 这些方法都可以啊

user: user-4
content: 引用 6 楼 xjm199 的回复:[quote=引用 3 楼 max_min_ 的回复:]  #include <stdio.h>  char* work(char *test) {     int a = 16, b = 17;      sprintf(test, "%d/%d", a, b);      return test; }  int main() {     char test[10] = {0};      printf("%s \n", work(test)); }   由于程序原因，work里面无法带入test参数，怎么破[/quote] 华丽丽地把我的2楼跳过了。。。。2楼不就是给你work函数里面的方案吗？

user: user-0
content: 引用 3 楼 max_min_ 的回复: #include <stdio.h>  char* work(char *test) {     int a = 16, b = 17;      sprintf(test, "%d/%d", a, b);      return test; }  int main() {     char test[10] = {0};      printf("%s \n", work(test)); }   由于程序原因，work里面无法带入test参数，怎么破

user: user-5
content: 哦不对 是2楼的

user: user-5
content: 3L的比较好

user: user-6
content: #include <stdio.h>  char* work(char *test) {     int a = 16, b = 17;      sprintf(test, "%d/%d", a, b);      return test; }  int main() {     char test[10] = {0};      printf("%s \n", work(test)); }

user: user-4
content: static char temp[100]; sprintf(temp, "%d/%d",a,b); return temp;

user: user-7
content: itoa  int a=10; char str[100];	 printf("%s",itoa(a,str,10));
user-0 提问: linux下用c语言如何实现ftp传输文件

回复:
user: user-1
content: 这是个从客户端输入一段数据发送给服务器的程序 ， 你可以改改。 客户端的：argv【2】是服务器ip，argv【1】是你要输入的数据 。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h>  #define MAXLINE 80 #define SERV_PORT 8000  int main(int argc,char *argv[]) { 				struct sockaddr_in servaddr; 				char buf[MAXLINE] = {}; 				int sockfd, n; 				char *str;  				if (argc < 2) { 								fputs("usage:...../client message\n",stderr); 								exit(1); 				}  				str = argv[1]; 				sockfd = socket(AF_INET,SOCK_STREAM,0);  				bzero(&servaddr, sizeof(servaddr)); 				servaddr.sin_family = AF_INET; 				inet_pton(AF_INET,argv[2],&servaddr.sin_addr); 				servaddr.sin_port = htons(SERV_PORT);  				connect(sockfd, (struct sockaddr *) &servaddr,sizeof(servaddr));  				write(sockfd,str,strlen(str)); 				/* 					 n = read(sockfd,buf,MAXLINE); 					 printf("Response fron server:\n"); 					 write(STDOUT_FILENO,buf,n); 				 */ 				close(sockfd); 				return 0; } 服务器： #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <fcntl.h>   #define MAXLINE 80 #define SERV_PORT 8000  int main(void) { 				struct sockaddr_in servaddr, cliaddr; 				socklen_t cliaddr_len; 				int listenfd, connfd; 				char buf[MAXLINE] = {}; 				char str[INET_ADDRSTRLEN] = {}; 				int i, n; 				char buf1[100] = {0}; 				int fd; 				listenfd = socket(AF_INET,SOCK_STREAM,0);  				bzero(&servaddr, sizeof(servaddr)); 				servaddr.sin_family = AF_INET; 				servaddr.sin_addr.s_addr = htonl(INADDR_ANY); 				servaddr.sin_port = htons(SERV_PORT);  				bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); 				listen(listenfd,20);  				printf("Accepting connections ...\n"); 				while(1) { 								cliaddr_len = sizeof(cliaddr); 								connfd = accept(listenfd,(struct sockaddr *) &cliaddr, &cliaddr_len); 								//	strcat(buf1,(void *)&cliaddr); 								//	strcat(buf1,"_"); 								//	strcat(buf1,(void *)&cliaddr.sin_port); 								sprintf(buf1,"%s_%d.txt",inet_ntop(AF_INET,&cliaddr.sin_addr,str,sizeof(str)),ntohs(cliaddr.sin_port));  								fd = open(buf1,O_RDWR|O_TRUNC|O_CREAT,0644); 								while((n = read(connfd,buf,MAXLINE)) > 0) { 												write(fd,buf,n); 								} 								close(fd); 								//		n = read(connfd,buf,MAXLINE); 								printf("receive from %s at port %d\n",inet_ntop(AF_INET,&cliaddr.sin_addr,str,sizeof(str)),ntohs(cliaddr.sin_port));  								/*		for (i = 0;i < n;i++) 											buf[i] = toupper(buf[i]); 								 */		write(connfd,buf,n); 								close(connfd); 				} }

user: user-2
content: 用libcurl吧

user: user-3
content: 随便一搜一大把，你都舍不得用下搜索引擎？
user-0 提问: 如何控制每行输出的个数

回复:
user: user-1
content: 错了, 修改为:  #include<stdio.h> int main() { int n; int count_of_found; count_of_found = 0 for(n=100;n<=200;n++) { if (n%3!=0) {     printf("%d,",n);     count_of_found++;     if (count_of_found % 4 == 0) {         printf("\r\n");     } } } printf("\n"); }

user: user-2
content: #include<stdio.h> int main() { 	int n; 	int i=1; 	for(n=100;n<=200;n++) 	{ 		if(n%3!=0) 		{ 			printf("%d,",n); 			if(i++%4==0)printf("\n"); 		} 	} 	printf("\n"); }

user: user-1
content: if (n%3!=0) {     printf("%d,",n); } // 此处添加 if (n!=100 && n%4 = 0) {     printf("\r\n"); }
user-0 提问: C语言  新手问题   求大神相助

回复:
user: user-0
content: 谢谢各位大神。亲，新手好吗？非得这样打击我，难得我有欲望写C.1L的大神，非得打击我。最可恶的5L，你还雪上加霜的抨击我。算了，每个都有分，谢谢其他L的好人，好人一生平安

user: user-1
content: 这个代码我看了！你的问题出在 scanf（）上，不知道你的操作时怎样的，如果你先输入 数字然后 回车的话  那末 你的 '\n'就被 c接收了 。建议 在scanf后紧跟一个getchar（）；

user: user-2
content: 1L正解

user: user-3
content: http://blog.csdn.net/kosl90/article/details/6683965

user: user-4
content: fflush(stdin);的作用是清空输入缓冲区，这么做是为了确保不影响后面的数据读取。 一般来说读完一个字符串后紧接着又要读取另一个字符，中间要加一句fflush(stdin);来情况缓冲区，否则上一次输入的字符可能会留在缓冲区。

user: user-5
content: scanf(" %c",&c); //%c前加空格就可以解决问题 否则此时读入的是你敲完数字后的回车，debug一下就可以看出来！

user: user-6
content: 将 scanf("%c",&c); 改为 scanf(" %c",&c); 也就是格式字符串前加个空格。 空格在scanf中表示 忽略空白字符  BTW：printf/scanf这种C/C++最常用的函数都不会，还搞个毛呀？
user-0 提问: C语言名句解释

回复:
user: user-1
content: http://blog.chinaunix.net/uid-24774106-id-3053007.html http://www.ibm.com/developerworks/cn/java/j-cb11076.html

user: user-2
content: /** 举个例子，面向对象的实现过程中，可以用到函数绑定 */ #include <stdio.h>  struct point; typedef int (*dist_t)(struct point* this);  typedef struct point { 	int x; 	int y; 	dist_t dist; }point_t;  int dist(point_t* this) { 	return this->x * this->x + this->y * this->y; }  int main(int argc, char* argv[]) { 	point_t pt;  	pt.x = 10; 	pt.y = 20; 	pt.dist = dist;  	printf("%d\n", pt.dist(&pt));  	return 0; }  引用 楼主 celsnrt 的回复:函数延迟绑定：数据结构导致绑定 记住：在编程过程后期再结构化数据  上面的话，不是太懂，各位大神们解释解释，谢谢！

user: user-3
content: C 似乎没有这功能，只有函数指针，勉强可以实现这个东东.
user-0 提问: 字符串分段的组合Combine算法，紧急求救，高手快来！！！

回复:
user: user-0
content: 引用 3 楼 uuuououlcz 的回复:考虑： （1）如果n < m，不行 （2）如果n >= m，先考虑最左边的第1段，则第1段的长度len1可以是[1,n-(m-1)]，这是因为后面至少要有m-1个字符用于分成m-1段，这样问题就化为长度为n-len1的字符串分成m-1段的子问题 以下代码仅供参考：  #include <stdio.h> #include <stdlib.h> #include <string.h>  void sliceUp(int segmentLength[], int index, const char* s, int remainingLength, int remainingPart) {     if(remainingPart == 1){         segmentLength[index++] = remainingLength;         int i, j, len;         for(i = 0; i < index; ++i){             if(i) putchar(' ');             for(j = 0, len = segmentLength[i]; j < len; ++j){                 putchar(s[j]);             }             s += segmentLength[i];         }         puts("");         return;     }     int len = 1, limit = remainingLength - (remainingPart-1);     for(; len <= limit; ++len){         segmentLength[index] = len;         sliceUp(segmentLength, index+1, s, remainingLength-len, remainingPart-1);     } }  int printCuts(const char* s, int parts) {     int len = strlen(s);     if(len < parts) return -1;      int* arr = (int*)malloc(parts * sizeof(int));     sliceUp(arr, 0, s, len, parts);     free(arr);      return 1; }  int main() {     printCuts("forum", 3);      return 0; }   完美的解决了我的问题，注释简明扼要，代码规范有效。。。。谢谢！！！

user: user-1
content: 分成三段扩展两个char说错了

user: user-1
content: 先将字符串进行扩展空间,比如分成3段就扩展一个char，然后插入2个空格  然后是第一个分段，第一个分段的长度需要确定，保证最后的字符至少是2个(3-1) 然后对剩下的字符进行分成2段  递归可以实现

user: user-2
content: 考虑： （1）如果n < m，不行 （2）如果n >= m，先考虑最左边的第1段，则第1段的长度len1可以是[1,n-(m-1)]，这是因为后面至少要有m-1个字符用于分成m-1段，这样问题就化为长度为n-len1的字符串分成m-1段的子问题 以下代码仅供参考：  #include <stdio.h> #include <stdlib.h> #include <string.h>  void sliceUp(int segmentLength[], int index, const char* s, int remainingLength, int remainingPart) {     if(remainingPart == 1){         segmentLength[index++] = remainingLength;         int i, j, len;         for(i = 0; i < index; ++i){             if(i) putchar(' ');             for(j = 0, len = segmentLength[i]; j < len; ++j){                 putchar(s[j]);             }             s += segmentLength[i];         }         puts("");         return;     }     int len = 1, limit = remainingLength - (remainingPart-1);     for(; len <= limit; ++len){         segmentLength[index] = len;         sliceUp(segmentLength, index+1, s, remainingLength-len, remainingPart-1);     } }  int printCuts(const char* s, int parts) {     int len = strlen(s);     if(len < parts) return -1;      int* arr = (int*)malloc(parts * sizeof(int));     sliceUp(arr, 0, s, len, parts);     free(arr);      return 1; }  int main() {     printCuts("forum", 3);      return 0; }

user: user-3
content: 仅供参考#include <stdio.h> #include <string.h> char *a="abcde"; int L,i,j,k; void main() {     L=strlen(a);     for (i=1;i<=L;i++) {         for (j=0;j<=L-i;j++) {             for (k=j;k<j+i;k++) {                 printf("%c",a[k]);             }             printf("\n");         }     } }

user: user-4
content: 走楼梯+抽屉原理。

user: user-4
content: 这个似乎和走楼梯,走台阶差不多。
user-0 提问: ftp sftp sch

回复:
user: user-1
content: 读一读rfc吧 或者看一看http://curl.haxx.se/libcurl/ 行不行

user: user-0
content: 可是我们不做C#啊，只做C。 关键是有没有对应的库？

user: user-1
content: 用c#好一些

user: user-0
content: 快来顶啊！！！！

user: user-0
content: 是./configure 安装吗？     #include <libssh2.h>       int main()    {      return 0;    }   libssh2.h: No such file or directory  这个怎么搞啊？？？

user: user-0
content: 我下载了libssh-.06.orc2  放到我linux中解压。怎么安装呢？

user: user-2
content: sftp 建议看 libssh http://www.libssh.org/

user: user-3
content: 看FileZilla 源代码

user: user-0
content: busybox 这是个开源的可用的软件？ libftp 到底是干嘛的？ libcurl 这个是开源的可用的软件？ libncftp 又是什么？  现在要实现sftp  c语言版   到底该如何着手？
user-0 提问: 关于指针的冒泡排序问题。。。

回复:
user: user-1
content: 眼神不好，看叉了。。。。要换眼镜了

user: user-1
content: 引用 2 楼 bijiaoben 的回复:真没看出来循环控制条件i有什么作用啊。楼主在理一下自己的思路呢。。 sorry，我写错了，1楼正解

user: user-1
content: 真没看出来循环控制条件i有什么作用啊。楼主在理一下自己的思路呢。。

user: user-2
content: #include<stdio.h>  void sort_out(int *p,int n)  {         int temp=0,i,j; 		for (int i=0;i<n;i++) 		{ 			for (int j=0;j<n-i-1;j++) 			{ 				if(*(p+j)>*(p+j+1))                 {                     temp = *(p+j+1);                     *(p+j+1) = *(p+j);                     *(p+j) = temp;                 } 			} 		}  }  int main() {     int a[9]={5,7,8,4,2,3,11,47,89},n=9;       sort_out(a,n);     for (n=0;n<9;n++)     {         printf("%3d",a[n]);     } 	printf ("\n");     return 0; }     楼主，你过界了....

user: user-0
content: 引用 1 楼 AfterSeptember 的回复: if(*(p+j)>*(p+j+1))                 {                     temp = *(p+j);                     *p = *(p+j+1);                     *(p+j+1) = temp;                 }  *p应该是*(p+j) 哎呀！这么明显都没发现~~太感谢了！

user: user-3
content: if(*(p+j)>*(p+j+1))                 {                     temp = *(p+j);                     *p = *(p+j+1);                     *(p+j+1) = temp;                 }  *p应该是*(p+j)
user-0 提问: 关于移位操作

回复:
user: user-0
content: 谢谢各位，我已经自己搞明白了。

user: user-1
content: 自己多试验吧。

user: user-2
content: 要看到本质  不然就是浪费时间

user: user-3
content: #include <stdio.h> unsigned char ui;   signed char si; char main() {     ui=(unsigned char)0x80u;     si=(  signed char)0x80;     printf("ui=%u\n",ui);     printf("si=%d\n",si);     ui=ui>>1;     si=si>>1;     printf("ui=%u\n",ui);     printf("si=%d\n",si);      printf("--------------\n");     ui=(unsigned char)0x80u;     si=(  signed char)0x80;     printf("ui=%u\n",ui);     printf("si=%d\n",si);     ui=((  signed char)ui)>>1;     si=((unsigned char)si)>>1;     printf("ui=%u\n",ui);     printf("si=%d\n",si);      printf("==============\n");      ui=(unsigned char)0x80u;     si=(  signed char)0x80;     printf("ui=%u\n",ui);     printf("si=%d\n",si);     ui=ui<<1;     si=si<<1;     printf("ui=%u\n",ui);     printf("si=%d\n",si);      printf("--------------\n");     ui=(unsigned char)0x80u;     si=(  signed char)0x80;     printf("ui=%u\n",ui);     printf("si=%d\n",si);     ui=((  signed char)ui)<<1;     si=((unsigned char)si)<<1;     printf("ui=%u\n",ui);     printf("si=%d\n",si);      return 0; } //ui=128 //si=-128 //ui=64 //si=-64 //-------------- //ui=128 //si=-128 //ui=192 //si=64 //============== //ui=128 //si=-128 //ui=0 //si=0 //-------------- //ui=128 //si=-128 //ui=0 //si=0

user: user-4
content: 对学习编程者的忠告： 眼过千遍不如手过一遍！ 书看千行不如手敲一行！ 手敲千行不如单步一行！ 单步源代码千行不如单步对应汇编一行！

user: user-5
content: 引用 楼主 a775992553 的回复:请教一下各位关于移位操作的问题。我现在被搞得有点晕了  1.C/C++和JAVA中的移位操作规则是不是不一样？ 2.关于算术移位和逻辑移位。 左移时候比较好理解，都是末尾补0.但是右移的时候我就有点晕了。 正常情况逻辑移位是不管符号位，直接高位补0；而算术移位是根据符号位来补高位的。 比如11001右移2位。逻辑移位结果是00110，而算术移位结果是11110。（这个应该对的吧？）  但是我好想隐约记得还有一种，就是符号位保持不变，剩余的位右移并且在符号位后面补0 。 比如11001右移两位变成10010。我不知道有没有记错，如果没有记错的话。那么这种移位规则是什么？  3.关于C语言中的>>运算符，执行的是逻辑移位还是算术移位？  4.C语言中有没有>>>这个运算符？如果没有那么这个运算符是属于那种语言的？  5.感觉我把C和JAVA学混了？如果可以的话，希望能有人帮我理一下： C语言中算术移位和逻辑移位的运算规则； C语言中>>运算符使用了哪种规则； JAVA语言中算术移位和逻辑移位的运算规则； JAVA语言中>>运算符和>>>使用了哪种规则； C语言的移位算符在不同的编译器下，对有符号数会有不同的行为。所以只应当对无符号数进行移位操作。

user: user-6
content: C语言中的>> 有符号数就是算数右移，无符号数就是逻辑右移
user-0 提问: C编程：找出一个整形数组中最大K个数的下标

回复:
user: user-1
content: 楼主说的是找第k大的数吧 这是一个选择问题， 第一种方法 将给出的已知数组排好序后，输出第k大的值的下标  第二种就是利用快速排序去筛选

user: user-2
content: 对数组进行排序，将排序结果用另一个数组暂存，然后从第二个数组取最大的K个值，然后在第一个数组中对应出下标

user: user-3
content: 应该是再弄个数组存K 个数  即你要查找的最大数的下标。初始值0~K-1

user: user-4
content: 引用 4 楼 bijiaoben 的回复:两个数组a和b，a里面存的是整数，b里面存a数组下标。b数组初始化1到n，然后对b数组按照a数组的值从大到小进行排序，规则如下 ：  if (a[b[i]] <= a[b[i+1]]) {     int temp = b[i];     b[i] = b[i+1];     b[i+1] = temp; }  详细代码可以自己去写，这里只写了比较大小的方法。 最终得到的b数组就是a数组的值从大到小排序的下表。然后随便你打印b里面的元素了。 写错了，b数组初始化从0到n-1

user: user-4
content: 两个数组a和b，a里面存的是整数，b里面存a数组下标。b数组初始化1到n，然后对b数组按照a数组的值从大到小进行排序，规则如下 ：  if (a[b[i]] <= a[b[i+1]]) {     int temp = b[i];     b[i] = b[i+1];     b[i+1] = temp; }  详细代码可以自己去写，这里只写了比较大小的方法。 最终得到的b数组就是a数组的值从大到小排序的下表。然后随便你打印b里面的元素了。

user: user-5
content: 另一个方法，是创建指针或者下标数组。 每个不指针或者下标对应给出的数组中的元素。  对指针或者下标快速选择。 输出下标。

user: user-5
content: 一个方法是： 创建一个结构，包含下标。 创建结构数组复制所有数据。 对结构数组，用快速选择，求出最大K个数。 输出结构中的下标。

user: user-6
content: 什么叫最大K个数的下标？是找到最大数然后输出下标，如果有多个就输出多个下标，这个意思？
user-0 提问: 变量设置不同~~结果不同~~指针问题~~

回复:
user: user-1
content: 崩溃的时候在弹出的对话框按相应按钮进入调试，按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

user: user-2
content: 有时候也不用malloc或者new，而是将指针指向一块已知的有效内存空间

user: user-2
content: 指针使用之前必须为其向系统申请有效的内存空间，用malloc或者new。否则的话你访问的地址就不知道到哪里去了，野指针引发的问题千奇百怪。。。

user: user-3
content: 修改成指针, 你就得为这个指针分配空间.

user: user-4
content: 你没有为这个指针分配内存，它是一个野指针。向它指向的地方赋值，就会把其他的内容窜改掉，发生各种异常都是正常的。

user: user-5
content: int main(void) {     Family *member;     if(!(global.pfile=fopen(global.filename,"wb")))     {          printf("\nUnable to open %s for writing.\n",global.filename);         exit(1);     }     while(get_person(member)) // member使用前没有初始化         fwrite(member,sizeof(member),1,global.pfile);
user-0 提问: 大神求教,关于用c语言编写图书馆管理系统

回复:
user: user-1
content: 何苦选计算机呢。

user: user-2
content: 你这个几百行就搞定了。  学长吓唬你的。

user: user-0
content: 没学过 [quote=引用 2 楼 turingo 的回复:] 改用数据库。

user: user-3
content: 改用数据库。  引用 楼主 u010189427 的回复:如题,听计算机专业的学长说要用几万行代码,自己不是学计算机的但是报的课期末要交设计报告,所以求大神指导,最好能有简单的十几行代码

user: user-4
content: 引用 1 楼 user-5 的回复:其实网上一堆 http://www.downloadprojects.in/download-c-projects.php 这个强大！

user: user-5
content: 其实网上一堆 http://www.downloadprojects.in/download-c-projects.php
user-0 提问: 关于malloc()的一个问题。

回复:
user: user-1
content: 引用 6 楼 hyp41226 的回复:[quote=引用 5 楼 pokerLee 的回复:] 可以正常运行么？ 完整的程序是可以运行的，确实是在C中加不加类型指派都可以。[/quote]如果直接引用（void）类型可以么~~

user: user-0
content: 引用 5 楼 pokerLee 的回复:可以正常运行么？ 完整的程序是可以运行的，确实是在C中加不加类型指派都可以。

user: user-1
content: 可以正常运行么？

user: user-2
content: 引用 3 楼 hyp41226 的回复:malloc返回的是void类型指针    这个我知道。 我的问题是malloc前面的类型指派是必须要加上去的吗？  比如说 int * p; ...... 1.    p = (int *)malloc(30 * sizeof(int)); 2.    p = malloc(30 * sizeof(int)); 这两种方法都对？也就是说类型指派不是必须的？ 因为起初C中没有void*类型，malloc返回的是char*类型，所以要求必须强制转换 但是自void*加入以后，可以不转换，也可以转换 不过有两点 1.C中可以不转换，可以编译通过 2.C++中必须强制转换，否则不能通过编译

user: user-0
content: malloc返回的是void类型指针    这个我知道。 我的问题是malloc前面的类型指派是必须要加上去的吗？  比如说 int * p; ...... 1.    p = (int *)malloc(30 * sizeof(int)); 2.    p = malloc(30 * sizeof(int)); 这两种方法都对？也就是说类型指派不是必须的？

user: user-3
content: void*型，转成什么都可以

user: user-4
content: malloc返回的是void类型指针  使用的时候最好强制转换一下   这什么东东啊  CSS？
user-0 提问: 回文的两种写法

回复:
user: user-1
content: 如果回文，应该是对称的 for(int i=0;i<=strlen(ch);i++) 应该只需要扫描一半的长度吧？

user: user-2
content: 不太清楚啊，我用的递归一般般#include <iostream> using namespace std;  bool IsPalindrome(string s){ 	if(s.length() <= 1) 		return true; 	return s[0] == s[s.length()-1] && IsPalindrome(s.substr(1,s.length()-2)); } int main(){ 	string s="aaabbbaaa"; 	bool a = IsPalindrome(s); 	cout<<a<<endl; 	return 0; }
user-0 提问: 关于stdin的重定向

回复:
user: user-1
content: 仅供参考#include <stdio.h> #include <string.h> FILE *f; int c; void main(int argc,char **argv) {     if (argc==3) {         if (stricmp(argv[1],"-a")) goto USAGE;         f=fopen(argv[2],"a");         if (NULL==f) goto FNULL;         goto FOK;     } else if (argc==2) {         if (0==strcmp(argv[1],"/?")) {         USAGE:             fprintf(stderr,"Usage: program | tee [-a] file\n");             return;         }         f=fopen(argv[1],"w");         if (NULL==f) goto FNULL;     FOK:         while (1) {             c=getchar();             if (EOF==c) break;             if (EOF==fputc(c,f)) {                 putchar(c);                 break;             } else {                 if (EOF==putchar(c)) break;             }         }         fclose(f);     } else {     FNULL:         while (1) {             c=getchar();             if (EOF==c) break;             if (EOF==putchar(c)) break;         }     } }

user: user-2
content: tail -f
user-0 提问: 求解！！！！！！！

回复:
user: user-0
content: 为什么i<=n-i+1 ??????

user: user-0

user: user-0
content: #include<stdio.h> int main()  {  	int n,i,k; 	scanf("%d",&k); 	while(k--) 	{ 		int l,a[1000],b,j,z,m=-1; 		scanf("%d %d",&l,&n); 		for(i=1;i<=n;i++) 			scanf("%d",&a[i]); 		 		for(i=1;i<=n-i+1;i++) 		{	 			b=0; 			for(j=i;j<i+l;j++) 			b=b+a[j]; 			if(b>m) 			{ 				m=b; 				z=i; 			} 		} 		if(m>=0) 		printf("%d\n",z); 		else 		printf("0\n"); 	} 		return 0;  }
user-0 提问: 图片加密解密的设计与实现

回复:
user: user-1
content: #include <stdio.h> #include <string.h> #include <conio.h> FILE *fi,*fo; int i; int main(int argc,char **argv) {     if (argc<3) {         printf("Usage:%s src des\n",argv[0]);         return 1;     }     if (0==stricmp(argv[1],argv[2])) {         printf("Src and des is same!\n");         return 2;     }     fo=fopen(argv[2],"wb");     if (NULL==fo) {         printf("Can not create file %s\n",argv[2]);         return 3;     }     fi=fopen(argv[1],"rb");     if (NULL==fi) {         fclose(fo);         printf("Can not find file %s\n",argv[1]);         return 4;     }     i=0;     fseek(fi,-1L,SEEK_END);     while (1) {         fputc(fgetc(fi)^0x5A,fo);         i++;         if (i%1000000==0) cprintf("\r%dKB",i/1000);         if (fseek(fi,-2,SEEK_CUR)) break;     }     fclose(fi);     fclose(fo);     cprintf("\r%dKB OK.\r\n",i/1000);     return 0; }

user: user-2
content: 百度一下异或加密

user: user-2
content: 引用 4 楼 u013189263 的回复:[quote=引用 2 楼 user-4 的回复:] 看你要什么程度的加密算法了吧！简单的就顺便加点东西进去就好了(当然自己得记得加了啥，后面还是需要自己解密的)！ 简单一点的，算法的选择您能给我一些什么建议吗？[/quote] 异或就是xor

user: user-3
content: 比如你的异或因子是0x5a： 1、你的图片数据每个字节和0x5a异或之后就相当于加密了； 2、解密的时候把数据与0x5a异或就可以还原之前的数据，相当于解密了。  引用 3 楼 u013189263 的回复:引用 1 楼 turingo 的回复:最简单快速的方法是异或。  [quote=引用 楼主 u013189263 的回复:] 大一小白一枚，求关于图片加密解密的设计与实现的代码，最好能告诉我使用的是什么算法，谢谢了 能说得具体一点吗？[/quote]

user: user-0
content: 引用 2 楼 user-4 的回复:看你要什么程度的加密算法了吧！简单的就顺便加点东西进去就好了(当然自己得记得加了啥，后面还是需要自己解密的)！ 简单一点的，算法的选择您能给我一些什么建议吗？

user: user-0
content: 引用 1 楼 turingo 的回复:最简单快速的方法是异或。  引用 楼主 u013189263 的回复:大一小白一枚，求关于图片加密解密的设计与实现的代码，最好能告诉我使用的是什么算法，谢谢了 能说得具体一点吗？

user: user-4
content: 看你要什么程度的加密算法了吧！简单的就顺便加点东西进去就好了(当然自己得记得加了啥，后面还是需要自己解密的)！

user: user-3
content: 最简单快速的方法是异或。  引用 楼主 u013189263 的回复:大一小白一枚，求关于图片加密解密的设计与实现的代码，最好能告诉我使用的是什么算法，谢谢了
user-0 提问: 【新手提问..........A/D转换代码问题.......就是数字进制的问题....求轻拍】

回复:
user: user-1
content: 直接乘除法处理； 如果觉得不够准确，作舍入处理一下即可。

user: user-2
content: signed short DACode,ADCode; unsigned char Dlsb,Dmsb; DACode=ADCode>>2; Dlsb=((unsigned char *)&DACode)[0]; Dmsb=((unsigned char *)&DACode)[1]; 试试看。
user-0 提问: 谁有基于OGRE图形引擎的雨雪天气模拟系统的设计与实现 ？

回复:
user: user-1
content: 参考http://wap.cnki.net/lunwen-1012473867.html  引用 楼主 alexvanhy 的回复:要完成一个基于OGRE图形引擎的雨雪天气模拟系统的设计与实现的课程设计，需要能实现的源代码，如果有文档说明更好，但是无从下手，想问下大家有没有好的介绍？有的话麻烦请发到邮箱250764889@qq.com！！感激不尽！给分100分！！！

user: user-2
content: http://blog.csdn.net/pizi0475
user-0 提问: C语言编写的简单计算器无法实现请帮忙检查一下

回复:
user: user-0
content: 谢谢 我犯的都是低级错误 自己还没找出来

user: user-1
content: #include"stdio.h" int M(int a,int b);//先声明，或者将子函数写在前面 int S(int a,int b);//先声明，或者将子函数写在前面 int C(int a,int b);//先声明，或者将子函数写在前面 float D(int a,int b);//先声明，或者将子函数写在前面，除法用float。 int main() { int m,n; scanf("%d,%d",&m,&n);/scanf（）函数不要乱写/n;而且转行是\n printf("%d %d\n",m,n); printf("%d %d %d %f\n",M(m,n),S(m,n),C(m,n),D(m,n)); } int M(int a,int b) {  int A; A=a-b; return A; } int S(int a,int b) { int B; B=a+b; return B; } int C(int a,int b) { int C; C=a*b; return C; } float  D(int a, int b) { float D; D= (float)a/b; return D; }
user-0 提问: 浮点数陷阱

回复:
user: user-1
content: 用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10) 同理，用二进制小数也不能精确表示某些10进制小数。 #include <stdio.h> #include <math.h> int main() {     double i;     for (i=0.0;fabs(i-10.0)>0.01;i+=0.1)         printf("%.1lf\n",i);     return 0; }

user: user-2
content: 你在调试窗口里看看不就知道了，真想把赵老师那段话搬过来

user: user-3
content: 浮点数的比较是用<和>进行比较的，不能用等于号和不等于

user: user-4
content: 运行结果就是无限循环，无限输出。原因是浮点数不能这么用，浮点数都是以二进制放入内存，这样不可控；还是用整数比较好。
user-0 提问: 显示错误说bool为不明确类型~~个人怀疑编译器的问题~~求指教~~

回复:
user: user-1
content: bool是C++才有的吧

user: user-2
content: 就是编译器的问题，换成int不行么，。

user: user-3
content: 自己define一个呗

user: user-4
content: C本来就没有bool。

user: user-5
content: #include <stdbool.h>

user: user-6
content: c本来就没有bool和true false  可以定义：  typedef char bool;  #define true 1 #define false 0  c其实也没有inline,  #define inline _inline

user: user-7
content: 扩展名.c改成.cpp，如果还不行扔掉这个**编译器。

user: user-8
content: 换个环境试下呗！可能当前环境不支持bool类型的！ 或者bool类型换成int类型试下
user-0 提问: sqlite3 二进制数据

回复:
user: user-1
content: sqlite> .out tmp1.binary_dump sqlite> select hex(img_data) from user_info where user_id=25;

user: user-1
content: sqlite> .out tmp1.binary_dump sqlite> select img_data from user_info where user_id=25;

user: user-0
content: select img_data from user_info where user_id=25;这是sql语句。

user: user-0
content: 引用 3 楼 user-1 的回复:sqlite> .out tmp1.binary_dump sqlite> select hex(img_data) from user_info where user_id=25;  Thank You！！！
user-0 提问: 提问！

回复:
user: user-1
content: 这里对应的指针步长是4 不是1

user: user-2
content: 代码中p用printf("%d",p)显示与a[0]的地址值的差是4，但是你写为p-a[0]其实他的值是1，所以每4个跳一次。你可以检验如下int b=p-a[0]；然后打印b看吧。p的地址是1310544，p+1地址应该是1310548.
user-0 提问: 递归函数 返回值的 问题。 求解释。

回复:
user: user-1
content: 你不使用返回值，你的返回值就是多余的，当然就没用了。 PS: 你递归中，没有任何递归终止条件和返回值有关系。

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

user: user-0

user: user-3
content: 说明没有执行那两个return语句啊，只是执行了return 0 单步调试跟踪看看

user: user-0
user-0 提问: malloc 问题 求解

回复:
user: user-1
content: 计算机组成原理→DOS命令→汇编语言→C语言（不包括C++）、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言（包括C++）、架构……  对学习编程者的忠告： 眼过千遍不如手过一遍！ 书看千行不如手敲一行！ 手敲千行不如单步一行！ 单步源代码千行不如单步对应汇编一行！  VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化，这样过一遍不就啥都明白了吗。 对VC来说，所谓‘调试时’就是编译连接通过以后，按F10或F11键单步执行一步以后的时候，或者在某行按F9设了断点后按F5执行停在该断点处的时候。 （Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。）  想要从本质上理解C指针，必须学习汇编以及C和汇编的对应关系。 从汇编的角度理解和学习C语言的指针，原本看似复杂的东西就会变得非常简单！ 指针即地址。“地址又是啥？”“只能从汇编语言和计算机组成原理的角度去解释了。” 但我又不得不承认：  有那么些人喜欢或者适合用“先具体再抽象”的方法学习和理解复杂事物；  而另一些人喜欢或者适合用“先抽象再具体”的方法学习和理解复杂事物。 而我本人属前者。  不要企图依赖输出指针相关表达式的值【比如printf("%p\n",...)】来理解指针的本质， 而要依赖调试时的反汇编窗口中的C/C++代码【比如void *p=...】及其对应汇编指令以及内存窗口中的内存地址和内存值来理解指针的本质。  这辈子不看内存地址和内存值；只画链表、指针示意图，画堆栈示意图，画各种示意图，甚至自己没画过而只看过书上的图……能从本质上理解指针、理解函数参数传递吗？本人深表怀疑！ 这辈子不种麦不收麦不将麦粒拿去磨面；只吃馒头、吃面条、吃面包、……甚至从没看过别人怎么蒸馒头，压面条，烤面包，……能从本质上理解面粉、理解面食吗？本人深表怀疑！！  提醒： “学习用汇编语言写程序” 和 “VC调试(TC或BC用TD调试)时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化，这样过一遍不就啥都明白了吗。 （Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。） 想要从本质上理解C指针，必须学习C和汇编的对应关系。” 不是一回事！  不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！  有人说一套做一套，你相信他说的还是相信他做的？ 其实严格来说这个世界上古往今来所有人都是说一套做一套，不是吗？  不要写连自己也预测不了结果的代码！  电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址； 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……  十字链表交换任意两个节点C源代码（C指针应用终极挑战）http://download.csdn.net/detail/zhao4zhong1/5532495

user: user-0
content: 引用 2 楼 xihu1364 的回复:这样的题目，不是面试经常考的？ void fun_malloc2(char *str)调用的时候传进的参数是一个temp temp分配了但是实参还是没有分配...  用void fun_malloc2(char **str)  或者void fun_malloc2(char*& str)   谢谢，，，解决了，，，，但是搞不懂原理

user: user-2
content: 引用 5 楼 xyf12344 的回复:[quote=引用 3 楼 max_min_ 的回复:] 地址，也只是一个传值的动作而已！  char *str = NULL; fun_malloc2(&str); void fun_malloc2( char **str);  谢谢，，，，解决了，，，大神就是大神，，，， 不过我想问一下，能解释一下原因么？ 小弟拜上[/quote] 直接传fun_malloc2(str);//这是地址str的地址也是拷贝地址值操作的 在fun_malloc2函数体中，分配了内存，并把地址赋值给str,但是这个时候操作的只是拷贝的那一份而已！而不是其实际本体！

user: user-0
content: 引用 3 楼 max_min_ 的回复:地址，也只是一个传值的动作而已！  char *str = NULL; fun_malloc2(&str); void fun_malloc2( char **str);  谢谢，，，，解决了，，，大神就是大神，，，， 不过我想问一下，能解释一下原因么？ 小弟拜上

user: user-0
content: 额。。。学生一枚，，，还没招工作。。。 ，改了，还是不行啊

user: user-2
content: 地址，也只是一个传值的动作而已！  char *str = NULL; fun_malloc2(&str); void fun_malloc2( char **str);

user: user-3
content: 这样的题目，不是面试经常考的？ void fun_malloc2(char *str)调用的时候传进的参数是一个temp temp分配了但是实参还是没有分配...  用void fun_malloc2(char **str)  或者void fun_malloc2(char*& str)

user: user-4
content: 学会提问很重要 请列出不同之处
user-0 提问: 求戳=-=解救一道题。。。

回复:
user: user-1
content: 由于题干没看太懂。只能给你改道这里了 。 只是给你 做个参考。 #include<stdio.h>  float Ave; int num; struct student { 		int number; 		char name[10]; 		float score1,score2,score3; 		float ave; }; struct student student[2],temp;   void input(int i) { 		puts("输入number："); 		scanf("%d",&student[i].number); 		getchar(); 		puts("输入name："); 		scanf("%s",student[i].name); 		getchar(); 		puts("输入sanmenchengji："); 		scanf("%f %f %f",&student[i].score1,&student[i].score2,&student[i].score3); 		getchar(); }   void averages() { 		int i; 		float sum=0.00,Ave; 		for(i=0;i<2;i++) 		{ 				student[i].ave=(student[i].score1+student[i].score2+student[i].score3)/3;   				sum+=student[i].ave;} 				Ave=sum*3/2;  }   void max() { 		float max; 		int i; 		max=student[0].ave;  		for(i=0;i<2;i++) 		{ 				if(max<student[i].ave) 				{ 		//				max=student[i].ave; 		//				temp=student[i]; } 					num = i; 				} 		}  } int main() { 		int i; 		for(i=0;i<2;i++) 				input(i); 		averages(); 		max(); 		printf("%f",Ave); 	//	printf("%d\n%s\n%.2f\n%.2f\n%.2f\n%.2f\n",temp.number,temp.name,temp.score1,temp.score2,temp.score3,temp.ave); 		printf("%d\n%s\n%.2f\n%.2f\n%.2f\n%.2f\n",student[num].number,student[num].name,student[num].score1,student[num].score2,student[num].score3,student[num].ave); }

user: user-0
content: 我用puts也错了

user: user-2
content: 原因是你输入名字的时候 不要空格建议你去看一下scanf()函数的定义；在一个你的平均值好像是一个子函数的一个变量；这个变量会在你掉用完这个子函数后自动擦除，你的平均值输出也是错误的。
user-0 提问: 输出到一个磁盘文件“test”中保存

回复:
user: user-1
content: #include <stdio.h> int main() {     FILE *fp;     int i=0;     char string[100];      if ((fp=fopen("text.txt","w"))==NULL) {         puts("Error on opening output file text");         return 1;     }     fgets(string,100,stdin);     while (string[i]!='!' && string[i]!='\n' string[i]!=0) {         if (string[i]>='a'&&string[i]<='z') string[i]=string[i]-32;         fputc(string[i],fp);         i++;     }     fclose(fp);     fp=fopen("test.txt","r");     fgets(string,100,fp)     fclose(fp);     printf("%s",string);     return 0; }

user: user-0
content: 然后我自己写的那段不能解决我的题目要求。。 哪里出现问题呢。。。

user: user-2
content: if((fp=fopen("text.txt","w"))==NULL)//以w打开一个文件，没有的话会新建一个，不用自己建立
user-0 提问: 数组变序列数字问题

回复:
user: user-1
content: 要是只是要求显示不能把printf()函数里的格式控制符紧挨着写么~~

user: user-2
content: 这个办法就是将其变为a[0]*10^9+a[1]*10*^8+...+a[9];但是希望注意你变化的这个值能被你所定义的那个数的类型所容纳。

user: user-3
content: 123 == 1*100 + 2*10 + 3*1 以此类推。。
user-0 提问: c语言中头文件如何实现展开呢？

回复:
user: user-0
content: 引用 6 楼 buyong 的回复:加name space 能具体教一下怎么玩么？ 一坨头文件搞晕了。。。。

user: user-1
content: 加name space

user: user-0
content: 嗯。。是的。。。主要是以前的code定型不能动。。  新加的部分又与之前的code有重复， 所以想把重复的部分拉出来

user: user-2
content: 功能如果相同，则直接include，不要重新定义 功能如果不同，则不要使用相同的名称进行定义

user: user-3
content: 你的意思是这两个类型完全一样？但是分布在两个file里？这不太奇怪了吗

user: user-0
content: 引用 1 楼 zhao4zhong1 的回复:typedef新定义可以覆盖旧定义。 可是我旧的定义也还是要保留的  而且结构体比较多，要一个一个处理吗？  有没有可能这样的，两个重合的结构体放到aaa.h里， 然后A.h写成 #include aaa.h 。。。  后面再加自己专属的呢？

user: user-4
content: typedef新定义可以覆盖旧定义。
user-0 提问: 编程范式中遇到的问题！求救！困扰我很久了。。。

回复:
user: user-0
content: 引用 5 楼 terhack 的回复:跟大小端有关 恩，我打印了另外2个字节 发现显示是16608就和我想的一样了~~~~

user: user-1
content: 跟大小端有关

user: user-2
content: 引用 3 楼 houzhenghui123 的回复:#include<stdio.h> void main() { float f= 7.0; int len = sizeof(f); unsigned char pchar = (unsigned char*)(&f); for(int i = 0; i< len ; i++){    pringf("%u\t", *(pchar +i)); } } 再对照你学的计算机组成知识，对比下就明白了。  #include<stdio.h> void main() { float f= 7.0; int len = sizeof(f); unsigned char* pchar = (unsigned char*)(&f); for(int i = 0; i< len ; i++){    pringf("%u\t", *(pchar +i)); } }

user: user-2
content: #include<stdio.h> void main() { float f= 7.0; int len = sizeof(f); unsigned char pchar = (unsigned char*)(&f); for(int i = 0; i< len ; i++){    pringf("%u\t", *(pchar +i)); } } 再对照你学的计算机组成知识，对比下就明白了。

user: user-3
content: 截断了吧，改下用字节长度一样的整形...  printf("%#x\n", *(unsigned int *)&f);

user: user-4
content: 坚决消灭零回复.