Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: C语言报错，求帮忙

回复:
user: user-1
content: 代码不全不好定位问题呢

user: user-2
content: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633

user: user-3
content: 引用 5 楼 jiayoua1888 的回复:[quote=引用 2 楼 bob76012 的回复:] 增加宣告 LinkList *p; 加上后报这个错：error C2275: 'LinkList' : illegal use of this type as an expression[/quote]  发一下整个project

user: user-0
content: 引用 2 楼 bob76012 的回复:增加宣告 LinkList *p; 加上后报这个错：error C2275: 'LinkList' : illegal use of this type as an expression

user: user-0
content: 引用 2 楼 bob76012 的回复:增加宣告 LinkList *p; 加上后报这个错：error C2275: 'LinkList' : illegal use of this type as an expression

user: user-0
content: 引用 1 楼 user-4 的回复:p未定义..怎么定义啊

user: user-3
content: 增加宣告 LinkList *p;

user: user-4
content: p未定义..
user-0 提问: 求教#define的 语句jie'da 指结构体指针

回复:
user: user-0
content: 引用 5 楼 user-1 的回复:这里进行了两次强转第一次把运算结果强转成WORD 第二次强转成指向unsigned char xdata的指针类型了解了，原来是两次强转，我再来结合上下文学习学习，谢谢O(∩_∩)O

user: user-1
content: 这里进行了两次强转第一次把运算结果强转成WORD 第二次强转成指向unsigned char xdata的指针类型

user: user-0
content: 引用 3 楼 user-1 的回复:这只是 代码中的类型强转，指针在内存中就是一个DWORD值，不存在什么类型的，可是你需要用指针调用数据或函数，就需要告诉这个指针应该怎么去读取对应的内容，就是类型了 比如你内存中有个地址 0x504000 这个地址对应的值为 1 int a=0x504000; int b=*a这样编译器认为是错误的，可是你明白你要干什么所以就可以这样b=*(int*)a把强制转为int指针，然后读取0x504000这个位置存的int值,b=1就是结果 所以这个地方的：(unsigned char xdata *) 并不是定义了一个指向无符号char型的指针，而是一个强制类型转换 把数组test3的第一个元素左移8位并加上第二个元素的结果WORD值 强制转换成指向U char 型的指针？ 不知道我这样理解对不对？

user: user-1
content: 这只是 代码中的类型强转，指针在内存中就是一个DWORD值，不存在什么类型的，可是你需要用指针调用数据或函数，就需要告诉这个指针应该怎么去读取对应的内容，就是类型了 比如你内存中有个地址 0x504000 这个地址对应的值为 1 int a=0x504000; int b=*a这样编译器认为是错误的，可是你明白你要干什么所以就可以这样b=*(int*)a把强制转为int指针，然后读取0x504000这个位置存的int值,b=1就是结果

user: user-0
content: 引用 1 楼 user-1 的回复:*(unsigned char xdata *) (WORD)((poniter->test3[0] << 8) + poniter->test3[1]) = poniter->test3[2]把这个运算定义成RECORD() 程序中调用就用宏来代替 *(unsigned char xdata *)   (WORD)    ((poniter->test3[0] << 8) + poniter->test3[1])      =    poniter->test3[2] 这个就是一个a=b的算式，运算优先都用括号了首先感谢您的回答，但是还是不太理解，半路出家小白求解惑，能不能麻烦帮忙再细说一下 运行中调用宏替换以及a=b可以理解，就是程序中record的部分都调用这个把b赋值给a? b:就是结构体里面的test3数组的第三个元素，这应该是一个byte吧？ a：*(unsigned char xdata *)   (WORD)    ((poniter->test3[0] << 8) + poniter->test3[1])    红色的是把数组test3第一个元素左移8位然后加上数组test3第二个元素 绿色的是定义了一个指向无符号类型 char字符的指针 然后就不理解了，WORD 用在这里怎么理解？这个定义出来的xdata指针是先跟*结合解引用还是结合后面的？ 然后b是一个byte 为什么可以赋值给前面的word？  关于第二个define，这个#define another()       (unsigned int) *(unsigned char xdata *)(WORD)((poniter->test3[0] << 8) + poniter->test3[1] ) 没有=，这个是调用another时候用一个指针来替换吗？

user: user-1
content: *(unsigned char xdata *) (WORD)((poniter->test3[0] << 8) + poniter->test3[1]) = poniter->test3[2]把这个运算定义成RECORD() 程序中调用就用宏来代替 *(unsigned char xdata *)   (WORD)    ((poniter->test3[0] << 8) + poniter->test3[1])      =    poniter->test3[2] 这个就是一个a=b的算式，运算优先都用括号了
user-0 提问: 有点懵，不知道怎么写？

回复:
user: user-1
content: result=a*b*c; printf("体积为:%d",result); return 0;

user: user-2
content: 首先19行缺少分号，其次你这resul应该是通过之前输入的值计算出来，而不是用户手动输入，所以应该改为 prntf("体积为:%d\n", result);

user: user-3
content: 楼上的正解，不过result这个变量最好在声明长宽高变量时一并声明了，有的早期的C编译器是不允许在好多语句之后再声明变量的。 int height,width,long,result;
user-0 提问: int[ , ,  ]a 是什么表示法

回复:
user: user-1
content: 定义 一个 int数组b, 并且分配大小为int[3]的空间，即定义数组b有3个元素

user: user-1
content: 参照 int[] b=new int[3];

user: user-0
content: 引用 3 楼 jsx_SEVEN 的回复:C#可以这样声明数组 [ , , ]三维数组，[ , ]二维 [3,2,3]三行两列三层 3*2*3=18赞

user: user-2
content: C#可以这样声明数组 [ , , ]三维数组，[ , ]二维 [3,2,3]三行两列三层 3*2*3=18
user-0 提问: Convert.Tolent32(3.4)的值是多少？

回复:
user: user-1
content: 引用 2 楼 636f6c696e的回复:是Convert.ToInt32吧，这个有四舍五入的 (int)3.9是不做四舍五入，直接舍去小数部分 能回一下我吗？( •̥́ ˍ •̀ू )

user: user-2
content: 是Convert.ToInt32吧，这个有四舍五入的 (int)3.9是不做四舍五入，直接舍去小数部分

user: user-3
content: 楼主是不是打错字了呀，百度根本没有Tolent32和Tolent64

user: user-4
content: 不了解Convert.Tolent32 但推测是四舍五入得到一个整数 那么a是3 b是4 c=(int)3.9，这里不是四舍五入是直接舍弃小数，所以c是3 所以a+b+c是3+4+3=10

user: user-0
content: 引用 1 楼 轻箬笠 的回复:楼主是不是打错字了呀，百度根本没有Tolent32和Tolent64我打错了

user: user-0
content: 引用 2 楼 636f6c696e 的回复:是Convert.ToInt32吧，这个有四舍五入的 (int)3.9是不做四舍五入，直接舍去小数部分 这个回答很棒
user-0 提问: 为什么不是2010？

回复:
user: user-1
content: ref x x是引用传递,所以方法里面修改了i的值,外部的x也是同一个对象,所以x.i也是20

user: user-2
content: 不是做C#的。从C++的角度说下，ref是引用，在传参之后，会改变传入参数的值。比如 void func(int &a) {  a = 20; } int main() { int a = 10; func(a); printf("a=%d\n", a);//这里a已经是20了。因为func传入的参数是引用，所以会改变原来的值 return 0; }

user: user-0
content: 引用 1 楼 轻箬笠 的回复:不是做C#的。从C++的角度说下，ref是引用，在传参之后，会改变传入参数的值。比如 void func(int &a) {  a = 20; } int main() { int a = 10; func(a); printf("a=%d\n", a);//这里a已经是20了。因为func传入的参数是引用，所以会改变原来的值  很棒！ return 0; }  引用 1 楼 轻箬笠 的回复:不是做C#的。从C++的角度说下，ref是引用，在传参之后，会改变传入参数的值。比如 void func(int &a) {  a = 20; } int main() { int a = 10; func(a); printf("a=%d\n", a);//这里a已经是20了。因为func传入的参数是引用，所以会改变原来的值 return 0; }很棒
user-0 提问: c语言课题求大佬指导下

回复:
user: user-1
content: 引用 楼主 <span style="color:#4788C7">qq_45332109</span>的回复:[quote=引用 1 楼 user-1的回复:]是不是西安理工大学的？我也是这个电智的 对对对 你写完没 [/quote]<br />没写完全不会，没思路

user: user-0
content: 引用 1 楼 user-1的回复:是不是西安理工大学的？我也是这个电智的 对对对 你写完没 😳😳😳😳😳😳

user: user-1
content: 是不是西安理工大学的？我也是这个电智的
user-0 提问: C语言求最大公约数最小公倍数的程序

回复:
user: user-1
content: #include<stdio.h> //最大公约数 int gcd(int m, int n)  {     return n == 0 ? m : gcd(n, m % n); } //最小公倍数 int lcm(int m, int n) {     return (long long)m * n / gcd(m, n); } int main(void) {     int m, n, B, S;     printf("请输入两个数:");     scanf("%d%d", &m, &n);     B = lcm(m, n);     S = gcd(m, n);     printf("最大公约数为%d\n", B);     printf("最小公倍数为%d\n", S); }

user: user-2

user: user-2
content: int max(int M,int n) { 		int temp = M; 		if(m < M) { 			temp = m; 		} 		int i; 		for(i = temp;i >= 2;i--) { 			if(M % i==0 && m %i ==0) { 				break; 			} 		} 		return i; 	}
user-0 提问: c语言求最大值问题

回复:
user: user-1
content: #include<stdio.h> //主函数  int main(){ int max(int x,int y); int a,b,c; scanf("%d %d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } //求两个整数中较大者的max函数 int max(int x,int y) {  if(x>y){ return (x);} else  { return(y);} }

user: user-2
content: 写错了是： if(x>y){ return (x);} else  { return(y);} 引用 1 楼 user-2 的回复:输入是1,2这种格式，而不是1 2 还有你max函数的逻辑是多此一举 if(x>y){ return (x);} else (x<=y) { return(y);}

user: user-2
content: 输入是1,2这种格式，而不是1 2 还有你max函数的逻辑是多此一举 if(x>y){ return (x);} else (x<=y) { return(y);}
user-0 提问: 求大佬帮忙c语言。

回复:
user: user-0
content: 用指针怎么写啊，我加for循环判断的话前后两个数据怎么比较

user: user-1
content: 简单的自动生成不重复的编号，复杂点的，需要每输入一个去检查以前的有没有重复
user-0 提问: 求助求助，学生党过二级啊啊～

回复:
user: user-1
content: 放弃吧！不适合你！

user: user-2
content: 计算机二级证书有毛毛用啊。直接不考了呗

user: user-3
content: 基础的循环书上肯定都有 要是连这点拓展能力没有的话 还是省省报考费吃顿好点的吧 给了你这题的答案  考试换一个推导公式你该不会还是不会

user: user-4
content: 这都不会？不可能过二级了，放弃吧

user: user-0
content: 嗯，我想出来了，，，，，，，，，，

user: user-5
content: 人家还是学生，楼上的大虾们别打击他的学习积极性啊。  只不过，楼主一点都不想，坐等别人现成的答案，对你考二级帮助有限啊
user-0 提问: 运行程序if-else为什么会else内先运行后条件判断

回复:
user: user-1
content: 引用 2 楼 寻找千千万万个她的回复:但是程序条件判断是满足的，执行的是key=0； 没看到完整代码，有两点猜测： 1：外面还有一层循环，第二次循环的时候执行的if后面的语句 2：key初始化的值就是0，以至于在基于结果的判断方式下，你误认为执行了if后面的key=0

user: user-2
content: 这种要自己学会加打印调试   K1=0;                 K2=1;                 printf("%d\n", key);                 if(K11==K1&&K22==K2)//K11=1,K22=1                 {                     printf("if\n");                     key=0;                 }                 else                 {                    printf("else\n");                    K11=K1;                     K22=K2;                 } 引用 2 楼 寻找千千万万个她 的回复:但是程序条件判断是满足的，执行的是key=0；

user: user-3
content: 引用 2 楼 寻找千千万万个她的回复:但是程序条件判断是满足的，执行的是key=0； 条件怎么满足的？？？？

user: user-0
content: 但是程序条件判断是满足的，执行的是key=0；

user: user-2
content: K1=0 K11=1 K11 == K1不满足当然走else分支呀  A&&B是A和B都为真才走上面的分支 A||B是A和B有一个为真才走上面的分支
user-0 提问: 关于数据结构中定义结构体的问题（萌新小白）

回复:
user: user-1
content: 为了让小白理解概念！

user: user-2
content: 为了好看，让结构看起来更直观一点， CSNode *tree； CSTree tree； 可以对比一下两种方式

user: user-3
content: 请考虑下可扩展性，设计数据结构的人和使用数据结构的人不一定是同一个，况且定义CSNode有没有什么损失
user-0 提问: 求大佬帮忙

回复:
user: user-0
content: 引用 1 楼 user-1的回复:ls -l /etc; cd /tmp; mkdir subdir; cd subdir; touch newdoc; chmod +x newdoc; cd /root; 谢谢大佬了，问题已经解决

user: user-1
content: ls -l /etc; cd /tmp; mkdir subdir; cd subdir; touch newdoc; chmod +x newdoc; cd /root;
user-0 提问: 我看不懂这段代码，尤其看不懂第二句

回复:
user: user-1
content: C# lamda表达式，表示一个匿名函数，=>前面的是参数，后面的是函数体。你可以把它当作一个函数。 fibs.Count(x=>x!=5);等价于寻找fibs数组中不等于5的元素个数，这里即6，输出的时候*2就是12

user: user-2
content: 引用 楼主 sweetswing 的回复:what is the output of  this code? int[ ] fibs={0,1,1,2,3,5,8}; int n= fibs.Count(x=>x!=5); Console.WriteLine(n*2);   A  12 B  Error C  10 D  6   正确答案是A  我看不懂这段代码，尤其看不懂第二句int n= fibs.Count(x=>x!=5); 什么意思？   语言是C# 我找不到合适的版块，就发到这里来了 Count 是求数组中元素个数的 x=>x!=5是条件，你理解=>的意义就能看明白了 不等于5的元素有6个,输出*2=12个
user-0 提问: 大家帮帮忙，c语言课程设计

回复:
user: user-1
content: 第一题用递归函数调用就可以逆序了！ 第二题就是比较大小，求商，求余等函数的用法！ 第三题直接搞个文本文件去查吧！哈哈

user: user-2
content: 引用 4 楼 weixin_45325219 的回复:[quote=引用 3 楼 Italink的回复:]你愿意花费帮别人做作业吗？ 你连自己的作业都不愿意做，为什么会指望别人呢 不做就算了，，，，，[/quote] 确实，论坛里的没人欠你一个课程设计，大学是你自己的上，不是别人替你上的。

user: user-3
content: 引用 4 楼 weixin_45325219 的回复:[quote=引用 3 楼 Italink的回复:]你愿意花费帮别人做作业吗？ 你连自己的作业都不愿意做，为什么会指望别人呢 不做就算了，，，，，[/quote] 现在的学生真的是，好像别人欠你的一样。

user: user-4
content: c++的话，感觉第三题可以偷懒用std::map或者std::unordered_map

user: user-5
content: 第二题的答案，仅供参考：  #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #include <math.h>  int main() { 	int randnum = 0; 	int mynum = 0; 	int count = 0; 	int i = 0; 	int j = 0; 	char arr1[5]; 	char arr2[5]; 	int place_num = 0; 	int right_num = 0;  	srand((unsigned int)time(NULL)); 	randnum = (rand() % (9999 - 1000 + 1)) + 1000; 	//printf("randnum = %d\n", randnum); 	itoa(randnum, arr1, 10);  	while(1){ 		place_num = 0; 		right_num = 0; 		while(1){ 			printf("please input your number(1000-9999):"); 			scanf("%d", &mynum); 			if((mynum > 999) && (mynum < 10000)){ 				break; 			} 		} 		count++; 		if(mynum == randnum){ 			printf("you gussed right!\n"); 			break; 		} 		itoa(mynum, arr2, 10);  		for(i = 0; i < 4; i++){ 			for(j = 0; j < 4; j++){ 				if(arr1[i] == arr2[j]){ 					right_num++; 				} 			} 		} 		for(i = 0; i < 4; i++){ 			if(arr1[i] == arr2[i]){ 				place_num++; 			} 		} 		printf("right_num = %d, place_num = %d\n", right_num, place_num); 	}  	//printf("randnum = %d\n", randnum); 	//printf("mynum = %d\n", mynum); 	printf("total number of your gussed: %d\n", count); 	//printf("%s, %s\n", arr1, arr2); 	return 0; }

user: user-0
content: 引用 3 楼 Italink的回复:你愿意花费帮别人做作业吗？ 你连自己的作业都不愿意做，为什么会指望别人呢 不做就算了，，，，，

user: user-6
content: 你愿意花费帮别人做作业吗？ 你连自己的作业都不愿意做，为什么会指望别人呢

user: user-0
content: 求代码，和流程图😊

user: user-7
content: 我怎么感觉第3题，似乎容易许多呢？
user-0 提问: 求大佬

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:两个都选A，第一个问题是1+2+3+4 = 10，因为i = 2能执行第二个while。 第二个问题，i++改成++i都没有改变< 3，并且执行第二个while的条件也是i= 2； 懂了，感谢大佬！！！

user: user-0
content: 引用 1 楼 自信男孩的回复:两个都选A，第一个问题是1+2+3+4 = 10，因为i = 2能执行第二个while。 第二个问题，i++改成++i都没有改变< 3，并且执行第二个while的条件也是i= 2； 那个continue只是跳出了第一个循环，而且继续进行了do while的循环吗？

user: user-1
content: 两个都选A，第一个问题是1+2+3+4 = 10，因为i = 2能执行第二个while。 第二个问题，i++改成++i都没有改变< 3，并且执行第二个while的条件也是i= 2；
user-0 提问: warning C4013

回复:
user: user-1
content: warning很清楚了调用printf没加头文件所以找不到定义，懂了么？ 在studs_score.c前面加一行#include <stdio.h>  引用 3 楼 weixin_44777704 的回复:[quote=引用 1 楼 636f6c696e的回复:]你不应该优先解决error的问题么？warning不影响编译，warning的原因是没加头文件 error那块没问题，就这块有问题。后来把它们整到一个文件里，改些东西后，运行正常。[/quote]

user: user-0
content: 引用 2 楼 赵4老师的回复:在studs_score.c前面加一行#include <stdio.h> 那块是调用文件的，，，还要加这个？

user: user-0
content: 引用 1 楼 636f6c696e的回复:你不应该优先解决error的问题么？warning不影响编译，warning的原因是没加头文件 error那块没问题，就这块有问题。后来把它们整到一个文件里，改些东西后，运行正常。

user: user-2
content: 在studs_score.c前面加一行#include <stdio.h>

user: user-1
content: 你不应该优先解决error的问题么？warning不影响编译，warning的原因是没加头文件
user-0 提问: 求教指向指针的指针

回复:
user: user-1
content: 应当明确： 1）指针本身即代表内存地址，不论是一级，二级，直到多级指针，其本身就是一个变量，会占据一定的内存空间，并且此内存空间是用来存放同类型的内存地址的； 2）对指针逐步进行解引用，编译器将会逐步提取保存在此内存空间中的有效数据，再根据CPU相关指令，执行相应的运算操作。

user: user-2
content: 输出第n个单词！把指针的指针和多维数组理解透彻！

user: user-3
content: p=a+n-1; 表示p中保存的是数组a中第n个元素的地址；而数组a的第n个元素又指向了某个字符串。 所以， printf("%s\n",*p); 实际上就是输出某个字符串。 VS2015调试如下  对于数组和指针，请参考 《C++中指针的数组和数组的指针》 希望能够帮到你

user: user-4
content: 不要迷信书、考题、老师、回帖； 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实！
user-0 提问: c语言逻辑运算符短路机制和结合性

回复:
user: user-1
content: 为什么++K没有运算呢，按道理&不应该两边都运算才对吗，怎么结果K还是1呢

user: user-2
content: 输出的结果应该是:2 1  1。因为|| &&结合是从左向右，++i已经为真，所以后面的j, k都不会运算和判断了。

user: user-3
content: 还是少用这些稀奇古怪的特性为好，

user: user-0
content: 引用 楼主 南山之上的回复:萌新关于短路机制和结合性的问题。 具体题目见下面截图 题目后面打错了个字，“所以输出是2，1，2”。
user-0 提问: c语言

回复:
user: user-1
content: 纠正一下： 注释中的“自然数”，不恰当，有可能是第一个，下标可能为 0 ； 改为：非负整数；

user: user-1
content: 第2题： int search(int num[],int a); int main() { int xy[10]; int cnt =0; int ret_val = -1;    // 置-1是做标记，没找到返回0，找到时返回下标（自然数）； int a = 3;    //假设a=3； for(cnt = 0;cnt<10;cnt++) { scanf("%d",xy[cnt]); } ret_val = search(xy,a); printf("ret_val=%d",a); }  int search(int num[],int a) { int i=0; int ret_result = 0;  for(i=0;i<10;i++) { if(num[i] == a) { ret_result = i; break; } } return ret_result;  }

user: user-1
content: 1、求矩阵对角线元素之和：  fun01() { int a[3][3]; int xRow=0,xCol=0; int xAdd = 0;  for(xRow = 0;xRow<3;xRow++) { for(xCol=0;xCol<3;xCol++) { if(xRow == xCol)    //对角线 行、列相同 { xAdd += a[xRow][xCol]; } } } printf("add val:%d",xAdd); }
user-0 提问: 性感大学生在线求救c语言代码段

回复:
user: user-0
content: 引用 8 楼 自信男孩的回复:代码中还有其他问题，比如scanf中对与name和new_mimal应该去掉&，因为数组名本身就是地址，是数组的首地址。 嗯，发现了，已经改了，谢谢指点

user: user-0
content: 引用 4 楼 牧牛童子的回复:圈1那个地方是指那个if 语句吗？若是的话，直接空着不写就能达到你的目的。 了解

user: user-0
content: 引用 2 楼 拥抱Linux的回复:说好的 性感大学生 呢？ 无图无真相！ 腿毛浓密算性感吗哈哈哈哈哈哈哈

user: user-1
content: 代码中还有其他问题，比如scanf中对与name和new_mimal应该去掉&，因为数组名本身就是地址，是数组的首地址。

user: user-2
content: 没图也来提问

user: user-3
content: 圈1那个地方是指那个if 语句吗？若是的话，直接空着不写就能达到你的目的。

user: user-4
content: 引用 2 楼 拥抱Linux 的回复:说好的 性感大学生 呢？ 无图无真相！ 可能说的是姓敢的大学生

user: user-5
content: 说好的 性感大学生 呢？ 无图无真相！

user: user-4
content: 你这流程感人  反正最后都是zhucaidan(); if(用户相等) {  输入原始密码 输入新密码 再输一次 修改成功  } else {  用户不存在 } zhucaidan();
user-0 提问: 程序看不懂，求解析

回复:
user: user-1
content: 很明显，楼主发的这段代码不太全，应该把头文件<reg51.h>的代码发上来，一看就是在头文件中定义了很多变量，也许自己看看头文件里的内容就明白了。

user: user-2
content: 引用 2 楼 qq_45217035 的回复:[quote=引用 1 楼 拥抱Linux的回复:]书上有的——《C语言程序设计：从入门到放弃》。 好嘞，谢谢啊。我等下下去看书，程序真的使人头秃[/quote] 楼主牛，还是别看书了，别入门直接放弃得了。

user: user-3
content: 这是串口那节的，书上有答案，或者自己接个c52单片机，试试 就知道什么功能了

user: user-0
content: 引用 1 楼 拥抱Linux的回复:书上有的——《C语言程序设计：从入门到放弃》。 好嘞，谢谢啊。我等下下去看书，程序真的使人头秃

user: user-4
content: 书上有的——《C语言程序设计：从入门到放弃》。
user-0 提问: 求求大佬们给我改道题吧！谢谢了

回复:
user: user-0
content: 引用 5 楼 user-1的回复:****** enter info。目测实现的是这个功能，但是各种异常都没有处理，很容易就会崩溃。 嗯，我会改进的，很高兴能在这里得到您的帮助，谢谢

user: user-1
content: ****** enter info。目测实现的是这个功能，但是各种异常都没有处理，很容易就会崩溃。

user: user-0
content: 引用 3 楼 user-1的回复:do    {  a[i]=*p;       i++; }    while(*p);	  这个操作之前没有清零，逻辑估计都是错误的，你要先清零并且保证a[i]的操作i不能越界。 感谢懂了 ，你能给我说下这个程序实现了什么功能吗？我有点看不懂

user: user-1
content: do    {  a[i]=*p;       i++; }    while(*p);	  这个操作之前没有清零，逻辑估计都是错误的，你要先清零并且保证a[i]的操作i不能越界。

user: user-0
content: 引用 1 楼 user-1的回复:上面那个帖子不是已经给你指出了其中4个错误吗，照着改了就行了啊，你千万别说你不懂C语法，所以指出了错误你也不会改。 谢谢你，其实我第四条没懂，其他还好

user: user-1
content: 上面那个帖子不是已经给你指出了其中4个错误吗，照着改了就行了啊，你千万别说你不懂C语法，所以指出了错误你也不会改。
user-0 提问: 急用！！谁会写！谢谢！

回复:
user: user-1
content: 请参考 #include <iostream>  #define ITEMNUM 3 #define CAT 1 #define Mouse -1 #define PEANUT 1  void ShowStep(int nItemIndex, int nDestination) { 	std::string strItem = ""; 	switch (nItemIndex) 	{ 		case 0: 			strItem = "猫"; 			break; 		case 1: 			strItem = "海狸鼠"; 			break; 		case 2: 			strItem = "花生"; 			break; 		default: 			strItem = "空"; 			break; 	}  	if (0 == nDestination) 	{ 		std::cout << "出发地 ---------- " << strItem.c_str() << " ----------> 目的地" << std::endl; 	} 	else 	{ 		std::cout << "出发地 <---------- " << strItem.c_str() << " ---------- 目的地" << std::endl; 	} }   int GetDestinationItemsValue(int* pDestination, int nSize) { 	int nValue = 0; 	for (int i = 0; i < nSize; i++) 	{ 		nValue += pDestination[i]; 	}  	return nValue; }  int GetDepartureItemsValue(int* pDeparture, int nSize) { 	int nValue = 0; 	for (int i = 0; i < nSize; i++) 	{ 		nValue += pDeparture[i]; 	}  	return nValue; }  int GetItemFromDeparture(int* pDeparture, int nSize, int nIdxLastAdded) { 	int nValue = GetDepartureItemsValue(pDeparture, nSize); 	int nZeroIdx = -1; 	for (int i = 0; i < nSize; i++) 	{ 		if (pDeparture[i] != 0 && nZeroIdx == -1)//记录第一个没有被带走物品 		{ 			nZeroIdx = i; 		}  		if (nValue - pDeparture[i] != 0 && 0 != pDeparture[i] && nIdxLastAdded != i) 		{ 			return i; 		} 	}  	//每次从出发地出发，不允许不带东西，默认带走第一个没有被带走的物品 	return nZeroIdx; }  int GetItemFromDestination(int* pDestination, int nSize, int nIdxLastAdded) { 	int nValue = GetDestinationItemsValue(pDestination, nSize); 	if (nValue == 0)//目的地物品属性值为零时，需要带走一个物品 	{ 		for (int i = 0; i < nSize; i++) 		{ 			if (nValue - pDestination[i] != 0 && 0 != pDestination[i] && nIdxLastAdded != i) 			{ 				return i; 			} 		} 	}  	return -1; }  int main() { 	int nDeparture[ITEMNUM] = { CAT, Mouse, PEANUT };//出发地的物品属性值 	int nDestination[ITEMNUM] = { 0, 0, 0 };//目的地的物品属性值  	int nRemainNum = ITEMNUM; 	int nIdx = -1; 	while (0 != nRemainNum) 	{ 		//从出发地带走一样物品到出发地 		nIdx = GetItemFromDeparture(nDeparture, ITEMNUM, nIdx); 		ShowStep(nIdx, 0); 		if (-1 != nIdx && nIdx < ITEMNUM) 		{ 			nRemainNum--; 			nDestination[nIdx] = nDeparture[nIdx]; 			nDeparture[nIdx] = 0; 		}  		//如果出发地还有东西没有带走，则需要从目的地返回 		if (nRemainNum != 0) 		{ 			nIdx = GetItemFromDestination(nDestination, ITEMNUM, nIdx); 			ShowStep(nIdx, 1); 			if (nIdx != -1) 			{ 				nRemainNum++; 				nDeparture[nIdx] = nDestination[nIdx]; 				nDestination[nIdx] = 0; 			} 		} 	}   	std::cout << "按任意键退出" << std::endl; 	getchar();  	return 0; }
user-0 提问: linux 消息队列函数msgrcv:函数出现Identifier removed errno:43

回复:
user: user-1
content: 引用 4 楼 weixin_44199758 的回复:struct share_use_st {     long int msg_type;     char text[BUFSIZ]; }; struct share_use_st sh_data; 我觉得你这个问题主要查找同步方面的问题看看

user: user-0
content: struct share_use_st {     long int msg_type;     char text[BUFSIZ]; }; struct share_use_st sh_data;

user: user-1
content: 引用 2 楼 weixin_44199758 的回复:len 是4096 你的sh_data定义呢

user: user-0
content: len 是4096

user: user-1
content: 确保你接收的sh_data不超过8192,可以日志看下len是多少
user-0 提问: 救救孩子吧，有一道题不会

回复:
user: user-1
content: 这么可怜，都没人理你，这单我接了。  #include <stdio.h> #include <stdlib.h> #include <string.h>  struct node { 	int data; 	struct node *next; };  struct node *head = NULL;  int sortList(struct node *head) { 	if (head == NULL) { 		return -1; 	}	  	struct node *tmp1 = NULL; 	struct node *tmp2 = NULL; 	int tmpData = 0;  	for (tmp1 = head; tmp1 != NULL; tmp1 = tmp1->next) { 		for (tmp2 = tmp1->next; tmp2 != NULL; tmp2 = tmp2->next) { 			if (tmp1->data > tmp2->data) { 				tmpData = tmp1->data; 				tmp1->data = tmp2->data; 				tmp2->data = tmpData;	 			} 			 		}  	} 	 	return 0; }  int insertList(struct node **head, int data) { 	struct node *newData = (struct node*)malloc(sizeof(struct node)); 	memset(newData, 0, sizeof(struct node));  	newData->data = data; 	newData->next = NULL;  	if (*head == NULL) { 		*head = newData; 	} else { 			struct node *pos = NULL;  			for (pos = *head; pos->next != NULL; pos = pos->next) { 			} 			 			pos->next = newData; 	}   	return 0; }  int printList(struct node *head) { 	struct node *pos = NULL;  	for (pos = head; pos != NULL; pos = pos->next) { 		printf("%d ", pos->data); 	} 	printf("\n"); 	 }   int main(int argc, char **argv) { 	srand(time(NULL)); 	int i = 0;  	for (i = 0; i < 10;i++) { 		insertList(&head, rand() % 100); 	} 	printf("Before Sort: \n"); 	printList(head); 	sortList(head); 	printf("After Sort: \n"); 	printList(head); 		 }

user: user-2
content: 数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
user-0 提问: 请求大佬帮忙 ，帮忙，写一个纯c的程序。

回复:
user: user-0
content: 引用 1 楼 jsx_SEVEN的回复: #include <stdio.h> #include <stdlib.h> #include <math.h>  //1、输入N int InputN() { 	int N; 	printf("输入N:"); 	scanf("%d", &N); 	while (N % 7 != 0) 	{ 		printf("数列的总项数不是7的倍数，请重新输入："); 		scanf_s("%d", &N); 	} 	return N; }  //2、数列通式 //这类题目也可以用递归，但是这道题会溢栈 //所以用了迭代 int Series(int res_2, int res_1, int res, int count, int n)   //第count-2项、第count-1项、第count项、迭代变量count、n { 	if (n < 1) 		return 0; 	else if (n == 1 || n == 2) 		return 0; 	else if (n == 3) 		return 1; 	else if (count < n) 		return Series(res_1, res, res_2 + res_1 + res, count + 1, n);  //迭代计算下一个(count+1)、直到第n个 	else  		return res; } int getSeriesN(int n) { 	return Series(0, 0, 1, 3, n); }  //3、计算并输出数列前n项的平方根之和 //有疑问：一个数的平方根应该是两个，且互为相反数，求和没意义 void Sum(int n) { 	float sum = 0.0; 	int i = 1; 	while (i <= n) 	{ 		sum += sqrt(getSeriesN(i)); 		i++; 	} 	printf("%f\n", sum); }  //4、按行输出 void Output(int n) { 	int i; 	int cnt = 0; 	for ( i = 1; i <= n; i++) 	{ 		printf("%d", getSeriesN(i));  		cnt++; 		if (cnt % 7 == 0)           //每打印7个换行 			printf("\n"); 		else 			printf("------"); 	} }  int main() { 	int n; 	n = InputN(); 	Sum(n); 	Output(n); 	return 0; }  谢谢，谢谢大佬🌚🌚🌚🌚🌚

user: user-0
content: 感谢大佬，非常感谢。。。。。。

user: user-1
content: #include <stdio.h> #include <stdlib.h> #include <math.h>  //1、输入N int InputN() { 	int N; 	printf("输入N:"); 	scanf("%d", &N); 	while (N % 7 != 0) 	{ 		printf("数列的总项数不是7的倍数，请重新输入："); 		scanf_s("%d", &N); 	} 	return N; }  //2、数列通式 //这类题目也可以用递归，但是这道题会溢栈 //所以用了迭代 int Series(int res_2, int res_1, int res, int count, int n)   //第count-2项、第count-1项、第count项、迭代变量count、n { 	if (n < 1) 		return 0; 	else if (n == 1 || n == 2) 		return 0; 	else if (n == 3) 		return 1; 	else if (count < n) 		return Series(res_1, res, res_2 + res_1 + res, count + 1, n);  //迭代计算下一个(count+1)、直到第n个 	else  		return res; } int getSeriesN(int n) { 	return Series(0, 0, 1, 3, n); }  //3、计算并输出数列前n项的平方根之和 //有疑问：一个数的平方根应该是两个，且互为相反数，求和没意义 void Sum(int n) { 	float sum = 0.0; 	int i = 1; 	while (i <= n) 	{ 		sum += sqrt(getSeriesN(i)); 		i++; 	} 	printf("%f\n", sum); }  //4、按行输出 void Output(int n) { 	int i; 	int cnt = 0; 	for ( i = 1; i <= n; i++) 	{ 		printf("%d", getSeriesN(i));  		cnt++; 		if (cnt % 7 == 0)           //每打印7个换行 			printf("\n"); 		else 			printf("------"); 	} }  int main() { 	int n; 	n = InputN(); 	Sum(n); 	Output(n); 	return 0; }
user-0 提问: c# c

回复:
user: user-1
content: C#跟C/C++根本不是一个等级上的语言，C#是微软专门为.net平台定制的语言，是一种虚拟机语言（因此和本机代码的C/C++/D有本质区别），是Java的竞争者。C++是一种开放语言标准，全世界各组织和企业有广泛实现和变种，相比之下，C#离不开.net平台，而.net离不开windows

user: user-2
content: .netcore了解一下
user-0 提问: 编译C2143错误

回复:
user: user-1
content: 函数调用和函数声明以及定义是不一样的。函数调用不能再加上返回值类型。去掉case 后面的void

user: user-2
content: 函数调用不要加返回值类型。。。

user: user-3
content: case 1: search_book();break; 后面一样，调用的时候不能带函数类型定义
user-0 提问: C语言课程设计

回复:
user: user-1
content: 目的：培养学生综合利用C语言进行程序设计的能力，主要是培养学生利用系统提供的标准函数进行创新设计。 写，遇到问题再问不迟

user: user-0
content: 引用 1 楼 user-1的回复:hh，我会，这跟你不会可没什么关系 救救孩子吧，呜呜呜

user: user-1
content: hh，我会，这跟你不会可没什么关系
user-0 提问: 改错题！

回复:
user: user-1
content: cin和std::string是c++的. 纯C的话用下面的。 由于gets没有上限，使用时得保证空间足够大，以保证读取是不会溢出。 由于可以无限读取，所以在2011年12月，ANSI 采纳了 ISO/IEC 9899:2011 标准，标准中删除了 gets()函数，使用一个新的更安全的函数gets_s()替代

user: user-1
content: 错误1, gets的缓冲大小是否足够, 建议用cin>>string 错误2.fun的n如果超过了a[80]的长度or char s[]长度异常处理没有做. 错误3. fun 的p没有初始化直接拿来用. 感觉手误，应该是p=s; 错误4: do while的i没有清零. i的[]操作注意越界

user: user-2
content: 是p=s不是s=p

user: user-3
content: 直接贴代码吧，能不贴图还是不建议贴图。

user: user-0
content: 引用 1 楼 自信男孩的回复:直接贴代码吧，能不贴图还是不建议贴图。 谢谢你！能给我讲下这道题吗？我真的没办法了
user-0 提问: 求教指针

回复:
user: user-0
content: 引用 4 楼 Italink的回复:[quote=引用 2 楼 李小龙的传人 的回复:] [quote=引用 1 楼 Italink的回复:]while(*p)p++；结束之后p执行末尾字符的下一个位置，也就是终止字符'\0',如果你不p--,那么会输出终止符 又是你啊，兄弟，怎么还要十个字[/quote] hhh，缘分呐[/quote] 怎么结贴帖啊，…………

user: user-1
content: #include <stdio.h> #include <string.h>  int main() {     char s[100];     char *p = s;     printf("input a string:");     gets(s);     while(*p)         p++;      //上面的操作之后,p指向'\0'，p--是为了让p指向邮箱字符串的末尾     p--;      while(p>=s)     {         printf("%c",*p);         p--;     }     putchar(10);      return 0; } 供参考～

user: user-0
content: 手机怎么没有…………

user: user-2
content: 电脑上，帖子右上角有结贴

user: user-2
content: 引用 2 楼 李小龙的传人 的回复:[quote=引用 1 楼 Italink的回复:]while(*p)p++；结束之后p执行末尾字符的下一个位置，也就是终止字符'\0',如果你不p--,那么会输出终止符 又是你啊，兄弟，怎么还要十个字[/quote] hhh，缘分呐

user: user-3
content: 引用 2 楼 李小龙的传人 的回复:[quote=引用 1 楼 Italink的回复:]while(*p)p++；结束之后p执行末尾字符的下一个位置，也就是终止字符'\0',如果你不p--,那么会输出终止符 又是你啊，兄弟，怎么还要十个字[/quote] 别人给你回答了，你满意就结贴，又。。。结贴率0%

user: user-0
content: 引用 1 楼 Italink的回复:while(*p)p++；结束之后p执行末尾字符的下一个位置，也就是终止字符'\0',如果你不p--,那么会输出终止符 又是你啊，兄弟，怎么还要十个字

user: user-2
content: while(*p)p++；结束之后p执行末尾字符的下一个位置，也就是终止字符'\0',如果你不p--,那么会输出终止符
user-0 提问: 这个程序流程图怎么画

回复:
user: user-1
content: 你是不会还是懒得去做？ 这么简单的程序用visio标准流程图自己画画就行了 引用 2 楼 lslaw 的回复:引用 1 楼 user-1 的回复：输入->处理->输出可以大概画个草图吗

user: user-0
content: 引用 1 楼 user-1 的回复：输入->处理->输出可以大概画个草图吗

user: user-1
content: 输入->处理->输出
user-0 提问: 一个很简单的程序，但是为什么会出现这个问题呢？能帮我解答一下吗？在线等，急急急

回复:
user: user-1
content: https://blog.csdn.net/monster_2495/article/details/7730165  http://www.voidcn.com/article/p-dxasvtge-tb.html 供参考～
user-0 提问: 求大神帮忙做一个储存信息模块，就是下次打开了之前储存的信息还在。

回复:
user: user-1
content: https://blog.csdn.net/smwhotjay/article/details/78319172 你这个功能叫做 序列化/反序列化

user: user-0
content: 引用 1 楼 待续_1006的回复:1简单点，数据写到文件里面，下次打开读取文件 2 数据库 怎样写到文件里呢？

user: user-2
content: 1简单点，数据写到文件里面，下次打开读取文件 2 数据库
user-0 提问: 求解c语言

回复:
user: user-0
content: 引用 1 楼 user-1的回复:给分能行？这要给红包的 行啊，万事好商量，只要能帮我解决问题

user: user-0
content: 行啊，万事好商量

user: user-1
content: 给分能行？这要给红包的
user-0 提问: 请问各位大佬

回复:
user: user-1
content: 理解和讨论之前请先学会如何观察！ //char (*(*x[3])())[5];//x是什么类型的变量? // //分析C语言声明，关键是搞清楚这个变量是个什么东西（函数、指针、数组）， //是函数那么剩下的就是他的参数和返回值， //是指针那剩下部分是说明他指向什么， //是数组剩下的部分就是说明数组的成员是什么类型。 //解析C语言声明规则： //从左侧第一个标识符开始，按照优先级进行结合。*表示是..的指针，const表示只读的，volatile表示可变的，[]表示是数组，()表示是函数。 // //x和[3]结合说明是一个大小为3的数组，该数组的每个元素为一类指针，该类指针指向一类函数，该类函数无参数，返回一类指针，该类指针指向一个大小为5的char型数组 #include <stdio.h> #include <typeinfo.h> char num[5]; char (*x00())[5] {     return # } int main() {     char (*(*x[3])())[5];//是个数组，大小为3     char (*(*x0  )())[5];//数组的元素，是个函数指针     char (*( x00 )())[5];//函数原型，参数为空，返回值为指针     char (*  x000   )[5];//返回值      x0 = x00;     x[0] = x0;     x[1] = x0;     x[2] = x0;     printf("typeid(x).name() is %s\n",typeid(x).name());     return 0; } //typeid(x).name() is char (* (__cdecl**)(void))[5]

user: user-2
content: （1）对指针 p 的赋值语句只能是 「 p = max ; 」，p 可以作为左值被赋值，而 *p 不能被赋值所以不能作为左值。 （2）后面使用函数指针 p 的时候 ， 可以是 (*p)(a,b) 也可以直接使用 p(a,b) ， 看习惯和喜好。你看的书上写 (*p)(a,b) 只是作者的喜好吧，或者是想提醒 p 是一个函数指针，而不是函数。

user: user-0
content: 救救孩子吧..
user-0 提问: 求助一个编程题

回复:
user: user-1
content: 和的公式： (2^(n-1)*(10^n-1))/3。n为位数 #include <iostream> #include <math.h>  using namespace std; int main() {         int S = 0;         for(int i = 1;i<=3;i++)         {                 S += (pow(2,i-1)*(pow(10,i)-1))/3;         }         cout<<"和为："<<S<<endl;         return 0; }
user-0 提问: 结构体小试

回复:
user: user-0
content: 引用 2 楼 自信男孩的回复:没看出代码中对num用错的地方，确认一下你的编译代码和你贴出来的代码是否完全一致 确认是一样的  我截得屏

user: user-1
content: 没看出代码中对num用错的地方，确认一下你的编译代码和你贴出来的代码是否完全一致

user: user-0
content: 也许是每个人习惯不同吧

user: user-2
content: 第一次见到将函数声明放在main里面的。是我少见多怪了？？

user: user-0
content: 引用 1 楼 user-3的回复:要么就是没有这个变量，要么就是写错了变量。估计你把name写成了num 我将这个变量放在struct student  里的

user: user-3
content: 要么就是没有这个变量，要么就是写错了变量。估计你把name写成了num
user-0 提问: 萌新入门

回复:
user: user-0
content: 引用 1 楼 user-5的回复:我觉得你应该找个老师 我也有想过去培训班，但是现在的培训班多数都是为了应付应聘，心凉

user: user-0
content: 引用 3 楼 qq_45026299的回复:推荐清华大学出版的《C程序设计教程》作为入门教材，它里面的内容不像其他书那么晦涩难懂，都是一些十分基础的东西，适合作为入门书籍，建议边学边做当中例题。之后如果还想深入学习C，就可以看看《C语言经典编程282例》这本书。另外提一下，本人也正在学C语言，关键还是得坚持。 对的，做什么事都要坚持下去，所谓学无止境。

user: user-0
content: 引用 5 楼 赵4老师的回复:关于自己是否适合编程的很简单的测试： 在报纸或杂志上随便找一段约1000字的文章，在Word中输入一遍。输完后再参考下面答案：  A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样，且自我感觉很有成就感  A不适合编程（理由：打字准确度偏低、粗心大意） B初级程序员（理由：打字准确度很高、认真细致、自信、理解全角半角概念） C高级程序员（理由：在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证） D软件项目经理（理由：能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业！）  如果想从A变成B的话，到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习” 谢谢！！我会努力的。谢谢你的建议

user: user-1
content: 关于自己是否适合编程的很简单的测试： 在报纸或杂志上随便找一段约1000字的文章，在Word中输入一遍。输完后再参考下面答案：  A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样，且自我感觉很有成就感  A不适合编程（理由：打字准确度偏低、粗心大意） B初级程序员（理由：打字准确度很高、认真细致、自信、理解全角半角概念） C高级程序员（理由：在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证） D软件项目经理（理由：能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业！）  如果想从A变成B的话，到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

user: user-2
content: 先搞懂基础的语法 然后再高算法

user: user-3
content: 推荐清华大学出版的《C程序设计教程》作为入门教材，它里面的内容不像其他书那么晦涩难懂，都是一些十分基础的东西，适合作为入门书籍，建议边学边做当中例题。之后如果还想深入学习C，就可以看看《C语言经典编程282例》这本书。另外提一下，本人也正在学C语言，关键还是得坚持。

user: user-4
content: 学个一年半载的肯定就可以了！第一门课程学《汇编语言程序设计》，学好之后所向披靡！不用谢！

user: user-5
content: 我觉得你应该找个老师
user-0 提问: 求大佬解答

回复:
user: user-0
content: 引用 4 楼 qq_45026299 的回复：是我错了，后面有循环限制的话，n可以任意输入，但不能超过5，建议下标改大些。谢谢解答，共勉

user: user-1
content: 是我错了，后面有循环限制的话，n可以任意输入，但不能超过5，建议下标改大些。

user: user-1
content: 首先，输入字符数组的格式符应该是%s，其次数组的输入地址搞错了，你要输入到数组中，&a[i].name[10]应改为a[i].name，&a[i].num[9]应改为a[i].num。顺便一提，你的人数已经定死了，只能和结构体数组的下标相等，无法做到由用户任意输入。

user: user-0
content: 引用 1 楼 lslaw 的回复：#include<stdio.h> struct student {int score;char name[10];char num[9];}; int main(void) { int n,i; struct student a[5]; printf("输入人数"); scanf("%d",&n); printf("输入姓名，学号，成绩\n"); for(i=0;i<n;i++) { scanf("%d",&a[i].name[10]); scanf("%d",&a[i].num[9]); scanf("%d",&a[i].score); if(a[i].score<=100&&a[i].score>90) printf("优\n"); else if(a[i].score<=90&&a[i].score>80) printf("良\n"); else if(a[i].score<=80&&a[i].score>70) printf("中\n"); else if(a[i].score<=70&&a[i].score>=60) printf("及格\n"); else printf("\n"); } return 0; }想知道这个错哪了

user: user-0
content: #include<stdio.h> struct student {int score;char name[10];char num[9];}; int main(void) { int n,i; struct student a[5]; printf("输入人数"); scanf("%d",&n); printf("输入姓名，学号，成绩\n"); for(i=0;i<n;i++) { scanf("%d",&a[i].name[10]); scanf("%d",&a[i].num[9]); scanf("%d",&a[i].score); if(a[i].score<=100&&a[i].score>90) printf("优\n"); else if(a[i].score<=90&&a[i].score>80) printf("良\n"); else if(a[i].score<=80&&a[i].score>70) printf("中\n"); else if(a[i].score<=70&&a[i].score>=60) printf("及格\n"); else printf("\n"); } return 0; }
user-0 提问: c语言程序改错，急用

回复:
user: user-0
content: 引用 5 楼 lslaw 的回复：[quote=引用 4 楼 focuslight 的回复：]void fun(int a, b)  错误主要是这个交换函数， 你想直接传值，调用函数本身不对实参进行操作，也就是说，即使形参的值在函数中发生了变化，实参的值也完全不会受到影响，仍为调用前的值。  你百度一下， 函数传递参数的三种方式，以及它们的区别谢谢[/quote]这个题可以解答一下吗 定义一个学生成绩的结构体数组，编写函数，根据学生成绩给出“优、良、中、及格”的评定“90-100”-优、“80-90”-良，“70-80”-中，“60-70”-及格。

user: user-0
content: 引用 4 楼 focuslight 的回复：void fun(int a, b)  错误主要是这个交换函数， 你想直接传值，调用函数本身不对实参进行操作，也就是说，即使形参的值在函数中发生了变化，实参的值也完全不会受到影响，仍为调用前的值。  你百度一下， 函数传递参数的三种方式，以及它们的区别谢谢

user: user-1
content: void fun(int a, b)  错误主要是这个交换函数， 你想直接传值，调用函数本身不对实参进行操作，也就是说，即使形参的值在函数中发生了变化，实参的值也完全不会受到影响，仍为调用前的值。  你百度一下， 函数传递参数的三种方式，以及它们的区别

user: user-0
content: 引用 2 楼 lslaw 的回复：[quote=引用 1 楼 focuslight 的回复：]#include   <stdio.h>  #include   <conio.h>  void fun(int *a, int *b)  {    int t;      t = *b;  *b = *a ;  *a = t;  }  void main( )  {    int a, b;      printf("Enter a,b :"); scanf("%d %d", &a, &b);      fun(&a, &b);      printf("a=%d  b=%d\n", a, b);  }大佬，可以给我讲个每个改错点的原因吗[/quote]感激不尽

user: user-0
content: 引用 1 楼 focuslight 的回复：#include   <stdio.h>  #include   <conio.h>  void fun(int *a, int *b)  {    int t;      t = *b;  *b = *a ;  *a = t;  }  void main( )  {    int a, b;      printf("Enter a,b :"); scanf("%d %d", &a, &b);      fun(&a, &b);      printf("a=%d  b=%d\n", a, b);  }大佬，可以给我讲个每个改错点的原因吗

user: user-1
content: #include   <stdio.h>  #include   <conio.h>  void fun(int *a, int *b)  {    int t;      t = *b;  *b = *a ;  *a = t;  }  void main( )  {    int a, b;      printf("Enter a,b :"); scanf("%d %d", &a, &b);      fun(&a, &b);      printf("a=%d  b=%d\n", a, b);  }
user-0 提问: 头文件的内容不能用

回复:
user: user-0
content: 引用 1 楼 安锅锅 的回复：datatype被重定义了，去书上找找是什么类型，在结构体前面加一下typedef datatype 类型你的意思是在头文件那前面定义datatype吗？而不是在源程序

user: user-1
content: datatype被重定义了，去书上找找是什么类型，在结构体前面加一下typedef datatype 类型
user-0 提问: 身份证和姓名输入不进去，那里错误了，求改正

回复:
user: user-1
content: exit(0); 	fwrite(passenger,sizeof(passenger[0]),50,fp);   前面exit(0); 这句不执行   fprintf(fp,"%s\n",passenger[c].num);}   你没有给passenger[c].num赋值   else if(a=17)   应该是 else if(a==17)
user-0 提问: c语言编程

回复:
user: user-1
content: int max_pos( char str[]){      int pos = 0;      char max_char = 0;      int i = 0;          for( i = 0;  str[ i] != '\0'; i++){          if( max_char < str[ i])              max_char = str[ i];              pos = i;      }      printf("最大的字符是％c\n"，str[ pos]);      printf("最大字符的位置是%d\n", pos + 1);  }

user: user-2
content: 先定义一个tmp［］数组去接要求的数组，来一个for循环求出最大值，就是如果前一个比后一个大就交换位置，循环之后，最后一个元素就是数组的最大值，再来一个for循环，和原数组一个个元素比较，如果等于这个最大值就返回此时是哪个数组，break，就好了，思路就是这样
user-0 提问: 矩阵的转置

回复:
user: user-1
content: #include<stdio.h> #define MAX 10 int a[MAX][MAX] = { {1,2,3},{4,5,6} }; int row = 2, col = 3; void swap(int* a, int* b) { 	int temp; 	temp = *a; 	*a = *b; 	*b = temp; } int main() { 	 	int i, j; 	for (i = 0; i < row; i++) { 		for (j = i; j < col; j++) { 			swap(&a[i][j], &a[j][i]); 		} 	} 	swap(&row, &col); 	for (i = 0; i < row; i++) { 		for (j = 0; j < col; j++) { 			printf("%5d", a[i][j]); 		} 		printf("\n"); 	} 	return 0; }
user-0 提问: 求解

回复:
user: user-1
content: 使用gets读取一行，然后输出  #include<stdio.h> int main() { 	char str[100]; 	gets(str);	//vs用gets_s 	printf("%s", str); 	return 0; }

user: user-2
content: 没看明白你想表达什么需求
user-0 提问: 各位大佬，请教一下C语言中字符串的一个小问题。

回复:
user: user-0
content: 引用 3 楼 gouyanfen的回复:[quote=引用 楼主 修宿休秀 的回复:] 为什么char a[5]={"china"}与char a[6]={"china"}的效果是一样的，不应该因为存在"\0"的原因，字符数组大小应该是6嘛？而且用sizeof去算字节大小时是6，那么在a[5]这个数组里有没有\0呢？求解释，谢谢！ 记得结贴，不要一直提问不结贴  char a[5]={"china"}是编译通不过的，如果你用的编译器没有检查的话，sizeof大小取决于编译器怎么解释，但是数组里一定有\0,因为这个会首先给字符串"china"分配一个内存，这个内存中就是china\0。然后把这个地址给a[/quote] 抱歉，现在手机客户端无法结帖，晚些时候再结帖！

user: user-1
content: 引用 楼主 修宿休秀 的回复:为什么char a[5]={"china"}与char a[6]={"china"}的效果是一样的，不应该因为存在"\0"的原因，字符数组大小应该是6嘛？而且用sizeof去算字节大小时是6，那么在a[5]这个数组里有没有\0呢？求解释，谢谢！ 记得结贴，不要一直提问不结贴  char a[5]={"china"}是编译通不过的，如果你用的编译器没有检查的话，sizeof大小取决于编译器怎么解释，但是数组里一定有\0,因为这个会首先给字符串"china"分配一个内存，这个内存中就是china\0。然后把这个地址给a

user: user-2
content: char*字符串需要留一个位置存放终止符\0， sizeof得到的是字节大小（跟你字符串的内容没有任何关系） 字符串长度使用strlen()函数（得到的是第一个字符到终止字符的长度（不含终止字符）） char a[5]={"china"}没有\0，如果你使用%s来输出的话，就会出现错乱（乱码）。 但如果你通过%c逐个输出字符是没问题的

user: user-3
content: 其实电脑开机后物理内存的每个字节中都有值且都是可读写的，从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页，一页通常为4KB。
user-0 提问: 新手求教

回复:
user: user-1
content: 呵呵，好像是结贴吧

user: user-0
content: 引用 4 楼 csucxy 的回复：至于你这里为什么会小1，根本原因就是上面大家说的浮点型数据的精度问题。从数学上来看你这个程序可以实现编程目的，但是你将程序做如下调整： #include <stdio.h> int main() {     int time;     scanf("%d", &time);     double f = time / 100.0 - time / 100;     int h = f * 100;     printf("%d\n", h);      return 0; } 在printf那一行前设一中断，运行，假设输入1234，你能发现f的值可能是0.33999999999999986，那么h的值就是33——比预期的就是应该少1。因为：浮点型数据转换为整型时，是直接把小数部分去掉，而不是四舍五入！！！ 其实，以上f丢失的精度并不是很严重。由此可以知道，1、数学上的计算结果与计算机计算的结果不符是完全正常的，2、编程时把简单的问题故意复杂化有时是自找苦吃的。还有，请问一下我要怎么操作把积分给你们吗？

user: user-0
content: 谢谢，求余和改成double结果是对的，这个我已经知道了，我都试了一遍。只是新手，单纯想弄懂为啥那样不行，以免以后再犯。谢谢你的回答

user: user-1
content: 至于你这里为什么会小1，根本原因就是上面大家说的浮点型数据的精度问题。从数学上来看你这个程序可以实现编程目的，但是你将程序做如下调整： #include <stdio.h> int main() {     int time;     scanf("%d", &time);     double f = time / 100.0 - time / 100;     int h = f * 100;     printf("%d\n", h);      return 0; } 在printf那一行前设一中断，运行，假设输入1234，你能发现f的值可能是0.33999999999999986，那么h的值就是33——比预期的就是应该少1。因为：浮点型数据转换为整型时，是直接把小数部分去掉，而不是四舍五入！！！ 其实，以上f丢失的精度并不是很严重。由此可以知道，1、数学上的计算结果与计算机计算的结果不符是完全正常的，2、编程时把简单的问题故意复杂化有时是自找苦吃的。

user: user-1
content: #include <stdio.h>  int main() { 	int t; 	scanf("%d", &t);  	int h = t % 100; 	printf("%d\n", h);  	return 0; } 为什么要整那么复杂呢？

user: user-0
content: 引用 1 楼 user-2 的回复：浮点数有精度问题  #include<stdio.h> int main() { 	int time; 	scanf("%d", &time); 	int h = time - time / 100 * 100; 	printf("%d", h); 	return 0; } 请问精度问题具体可以解释吗？ 因为它不是才到小数点后2位吗？有点不明白

user: user-2
content: 浮点数有精度问题  #include<stdio.h> int main() { 	int time; 	scanf("%d", &time); 	int h = time - time / 100 * 100; 	printf("%d", h); 	return 0; }
user-0 提问: 各位大佬，想问下为什么我返回了c的值，却依旧不成功呢？

回复:
user: user-1
content: C/C++中，实参对形参当然是单向值传递。函数返回值的问题与实参、形参的单向值传递没有关系。如果函数不是void类型，则该函数的函数调用表达式是一个有数据类型和值的表达式，它的值由函数结束调用时的return语句返回。

user: user-0
content: 谢谢各位，我大概知道了，非常感谢！

user: user-2
content: 返回值是返回到调用函数的地方 在这个例子中，就是返回到调用函数fun的地方 本例的返回值为6 返回后，相当于 int a=6; printf("%d", a );  #include<stdio.h> int fun(int a, int b) { int c=a*b;  return c;  }  void main()  {  int  a = fun(2,3);   printf("%d\n",a);  }

user: user-0
content: 引用 3 楼 csucxy的回复:这是所谓作用域与可见性的问题。 这个程序中有一个全局变量c，fun函数有一个形参也是c（也是一个局部变量，与全局变量c是两个完全不同的重名变量） 在函数fun中，根据小范围的屏蔽大范围的原则，形参c全fun函数中将全局变量c屏蔽，即在fun函数中，直接使用变量名c，访问的形参c，而不是全局变量c。 在main函数中，变量名c代表的是全局变量。调用fun时的实参c，其值为0，因为c是全局变量，是静态的，它在没有显示初始化时，会被初始化为0。而形参与实参之间是单向值传递，即函数被调用过程中，形参值的改变不会影响形参，因此，fun的调用，对全局变量c的值没有任何影响。 实参与形参是单向值传递的话，那么在子函数中return 一个值能传给主函数嘛？

user: user-0
content: 实参与形参是单向值传递的话，那么在子函数中return 一个值能传给主函数嘛？

user: user-3
content: 局部变量c 和全局的c冲突了

user: user-4
content: 一句话，你的函数内部的c和你全局的c不是同一个变量  引用 2 楼 修宿休秀 的回复:[quote=引用 1 楼 user-4的回复:]#include<stdio.h>  int c;  int fun(int a,int b,int * c)  {  *c=a*b;  return c;  }  void main()  {  fun(2,3,&c);   printf("%d\n",c);  } 我知道用地址是正确的，可是我的返回了c的值然后输出c的值，这样为啥不行呢？[/quote]

user: user-1
content: 这是所谓作用域与可见性的问题。 这个程序中有一个全局变量c，fun函数有一个形参也是c（也是一个局部变量，与全局变量c是两个完全不同的重名变量） 在函数fun中，根据小范围的屏蔽大范围的原则，形参c全fun函数中将全局变量c屏蔽，即在fun函数中，直接使用变量名c，访问的形参c，而不是全局变量c。 在main函数中，变量名c代表的是全局变量。调用fun时的实参c，其值为0，因为c是全局变量，是静态的，它在没有显示初始化时，会被初始化为0。而形参与实参之间是单向值传递，即函数被调用过程中，形参值的改变不会影响形参，因此，fun的调用，对全局变量c的值没有任何影响。

user: user-0
content: 引用 1 楼 user-4的回复:#include<stdio.h>  int c;  int fun(int a,int b,int * c)  {  *c=a*b;  return c;  }  void main()  {  fun(2,3,&c);   printf("%d\n",c);  } 我知道用地址是正确的，可是我的返回了c的值然后输出c的值，这样为啥不行呢？

user: user-4
content: #include<stdio.h>  int c;  int fun(int a,int b,int * c)  {  *c=a*b;  return c;  }  void main()  {  fun(2,3,&c);   printf("%d\n",c);  }
user-0 提问: 第二天  突然感觉指针真的好有魅力呀！

回复:
user: user-1
content: 电脑内存或文件内容或传输内容只是一个一维二进制字节数组及其对应的二进制地址； 人脑才将电脑内存或文件内容或传输内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、函数指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……

user: user-2
content: void swap(int *a, int *b) { int tmp = *a;    *a = *b;     *b = tmp; }

user: user-3
content: 直接操作指针可以实现很多其它语言不方便做到的事情，函数指针做为参数传递，可以实现回调，类用函数指针实现多态之类。灵活性非常强。
user-0 提问: 救救孩子的python吧，跪求大神解答

回复:
user: user-1
content: 引用 楼主 qq_45286724 的回复:我运行该程序时Python总提示' long' object has no attribute '__getitem__' ，咋回事呢？？ 这孩子不好救了，板块发错了

user: user-2
content: ' long' object has no attribute '__getitem__'  从意思出发，我觉得这个错误不在这段代码里

user: user-3
content: 我写了一个，不知道是不是你要的结果，如下： while True:     print("请输入一个产品编码：")     mystr=raw_input()     if(mystr=="quit"):         break     else:         if mystr[0]=="1":             print("商品在市场，")         else:             print("商品退市了，")         myyear=mystr[2:6]+"年"         mymonth=mystr[6:8]+"月"         myday=mystr[8:10]+"日"         print("商品的出厂日期为："+myyear+mymonth+myday)
user-0 提问: 我想把指针数组的指向的内存赋给结构体数组元素，但是指针数组存的是地址啊，我懵了。

回复:
user: user-1
content: 数组名本来就是首地址呀，C语言里面是没有字符串这种结构的，都是字符数组来存字符串的，所以你这里就是用指针数组存了那几个字符串的首地址呀，如果不是用指针这个数组里面就只能存几个字符而不是几个字符串

user: user-2
content: 重修  -----------------------------------  group[i].ST[10]=*seed[i];	 能取10吗？ 不取10也不对  ST[10]=*seed[i] 说对也不对  ---  struct GP {     char ST[10];     char *STp; };  char *seed[] = {"德  国","西班牙","比利时","巴  西","阿根廷","瑞  士","哥伦比亚","乌拉圭"};  struct GP group[8]; for(i=0;i<8;i++) {     strncpy(group[i].ST, seed[i], 9);      group[i].STp = seed[i];      printf("%s",group[i].ST); }

user: user-3
content: 那你还不如把ST写成指针，另外ST[10]是ST这个字符数组的第十一个元素（char类型），ST是一个char [10]类型的数据，你把一个指针赋给char类型不出错才怪，*seek[i]也是，seek[i]是字符串，加了个*就是字符串的第一个元素等价于seek[i][0] 修改2条语句 char *ST; group[i].ST=seek[i];

user: user-4
content: #include <stdio.h> #include <string.h> // for strncpy  int main(void) {    struct GP    {       char ST[10];    } group[8];     char *seed[] =    {       "德  国",       "西班牙",       "比利时",       "巴  西",       "阿根廷",       "瑞  士",       "哥伦比亚",       "乌拉圭"    };    int i;    for (i = 0; i < 8; ++i)    {       strncpy(group[i].ST, seed[i], 10); // 拷贝字符串       printf("%s\n", group[i].ST);    }    return 0; }

user: user-0
content: 初学C，基础很弱，求大佬们多说说，谢谢
user-0 提问: 哪位大神能把这三道题过程说一下嘛

回复:
user: user-1
content: 例如第1题中的 #define Y(n) ((N+1)*n) Y(5+1)时，实际上就是((3+1)*5+1)=21，所以，应该进行如下定义 #define Y(n) ((N+1)*（n)) 第2题也是同样问题

user: user-2
content: 都说了宏就是替换，自己动手替换下就知道了！ 引用 6 楼 weixin_44690524 的回复:[quote=引用 5 楼 宾灬的回复:]第一题： z=2 * (N+Y(5+1)) = 2*(3+(3+1)*5+1) = 48 第二题：d = ADD(a+b)*c=（4+6）+ (4+6) * 7 =  80 第三题：arr[0].y/arr[0].x*arr[1].x = 3/1*2= 6 第二题为啥要这样算啊，我不太理解[/quote]

user: user-3
content: 引用 6 楼 weixin_44690524 的回复:[quote=引用 5 楼 宾灬的回复:]第一题： z=2 * (N+Y(5+1)) = 2*(3+(3+1)*5+1) = 48 第二题：d = ADD(a+b)*c=（4+6）+ (4+6) * 7 =  80 第三题：arr[0].y/arr[0].x*arr[1].x = 3/1*2= 6 第二题为啥要这样算啊，我不太理解[/quote]  用代码中的“a+b” 替换宏定义中的“x”

user: user-0
content: 引用 5 楼 宾灬的回复:第一题： z=2 * (N+Y(5+1)) = 2*(3+(3+1)*5+1) = 48 第二题：d = ADD(a+b)*c=（4+6）+ (4+6) * 7 =  80 第三题：arr[0].y/arr[0].x*arr[1].x = 3/1*2= 6 第二题为啥要这样算啊，我不太理解

user: user-3
content: 第一题： z=2 * (N+Y(5+1)) = 2*(3+(3+1)*5+1) = 48 第二题：d = ADD(a+b)*c=（4+6）+ (4+6) * 7 =  80 第三题：arr[0].y/arr[0].x*arr[1].x = 3/1*2= 6

user: user-4
content: 引用 3 楼 weixin_44690524 的回复:[quote=引用 1 楼 user-4的回复:]Y(5+1)   展开成  ((3+1)*5+1) 结果自己算 为啥要这样算，不能先把括号里面相加[/quote]  宏只是替换而已，编译前的工作

user: user-0
content: 引用 1 楼 user-4的回复:Y(5+1)   展开成  ((3+1)*5+1) 结果自己算 为啥要这样算，不能先把括号里面相加

user: user-4
content: ADD(a+b)*c展开  (a+b) + (a+b)*c

user: user-4
content: Y(5+1)   展开成  ((3+1)*5+1) 结果自己算
user-0 提问: fscanf读文本文件错误

回复:
user: user-0
content: 引用 6 楼 user-1 的回复:#include <stdio.h> #include <iostream> #include <cmath> #include <vector> #include <atlstr.h>   struct Points {     double x;     double y;     double z;     int u; }; void main() {     Points po;     std::vector<Points> vec_point1;   //加了这句读取就出问题       int i = 0, j = 0;           FILE *fp1 = NULL;     fp1 = fopen("1.txt", "r+");     if (fp1 == NULL)     {         printf("filedata1 error");  		getchar(); 		exit(0);     }              while (1)     {         fscanf(fp1, "%lf %lf %lf %d", &po.x, &po.y, &po.z, &po.u); 		vec_point1.push_back(po);         if (feof(fp1))            break;              }  	for(i=0;i<vec_point1.size();i++) 	{ 		printf("%lf,%lf,%lf,%d\n",vec_point1.at(i).x,vec_point1.at(i).y,vec_point1.at(i).z,vec_point1.at(i).u);  	} 	getchar();     fclose(fp1); } 我测试了，并没有出现问题，就加了个打开文件错误直接退出 感谢，我知道咋回事了，谢谢您

user: user-1

user: user-1
content: #include <stdio.h> #include <iostream> #include <cmath> #include <vector> #include <atlstr.h>   struct Points {     double x;     double y;     double z;     int u; }; void main() {     Points po;     std::vector<Points> vec_point1;   //加了这句读取就出问题       int i = 0, j = 0;           FILE *fp1 = NULL;     fp1 = fopen("1.txt", "r+");     if (fp1 == NULL)     {         printf("filedata1 error");  		getchar(); 		exit(0);     }              while (1)     {         fscanf(fp1, "%lf %lf %lf %d", &po.x, &po.y, &po.z, &po.u); 		vec_point1.push_back(po);         if (feof(fp1))            break;              }  	for(i=0;i<vec_point1.size();i++) 	{ 		printf("%lf,%lf,%lf,%d\n",vec_point1.at(i).x,vec_point1.at(i).y,vec_point1.at(i).z,vec_point1.at(i).u);  	} 	getchar();     fclose(fp1); } 我测试了，并没有出现问题，就加了个打开文件错误直接退出

user: user-1
content: 文本文件格式什么样的，我测试看看

user: user-0
content: 引用 3 楼 user-1 的回复:你定义个临时变量做push_back,和读取的不要用同一个测试一下     Points po,po1;     std::vector<Points> vec_point1;   //加了这句读取就出问题      int i = 0, j = 0;      FILE *fp1 = NULL;     fp1 = fopen("1las1_denoising.xyz", "r+");     if (fp1 == NULL)     {         printf("filedata1 error");      }              while (1)     {         fscanf(fp1, "%lf %lf %lf %d", &po.x, &po.y, &po.z, &po.u);         if (feof(fp1))            break;       memcpy(&po1,&po,sizeof(Points));         vec_point1.push_back(po1);     } 或者单步进入看看是那里出问题了按您说的加上这两句，还是读取错误，而且我发现个奇怪的事情，当不加pushback的时候指针会=null，进入if语句，但是没有命令窗口没有输出“filedata1 error”，而且可以正确读取。当加入pushback的时候，不进入if语句，读取错误。

user: user-1
content: 你定义个临时变量做push_back,和读取的不要用同一个测试一下     Points po,po1;     std::vector<Points> vec_point1;   //加了这句读取就出问题       int i = 0, j = 0;           FILE *fp1 = NULL;     fp1 = fopen("1las1_denoising.xyz", "r+");     if (fp1 == NULL)     {         printf("filedata1 error");      }              while (1)     {         fscanf(fp1, "%lf %lf %lf %d", &po.x, &po.y, &po.z, &po.u);         if (feof(fp1))            break;       memcpy(&po1,&po,sizeof(Points));         vec_point1.push_back(po1);     } 或者单步进入看看是那里出问题了

user: user-0
content: 引用 1 楼 user-1 的回复:是push_back之后出的问题吧，只定义不push_back看有没有问题对是的，我刚刚试了一下，不pushback可以正确读，请问这个怎么解决呢？

user: user-1
content: 是push_back之后出的问题吧，只定义不push_back看有没有问题
user-0 提问: 求解，还要求按下按钮流水灯就可以依次点亮

回复:
user: user-0
content: 引用 楼主 user-0的回复:这个把T0改成T1  外部中断改成0就不闪烁了，一直保持着常亮 #inc1ude<reg51.h> #define uchar unsinged char#define uint unsigned intuint i; void main()[  i=0; EA=1; ET1=1; TRl=1; TMOD=0x10； THl= (65536-50000)/256 ; TLl= (65536-50000)%256; P2=0X00; while (l) ;  void inte () interrupt 0 i+l; if(i=10)  P2=~P2; i=0;  ) THl= (65536-50000)/256 ; TLl= (65536-50000）% 256;  ｝
user-0 提问: 可以帮我写下代码吗？

回复:
user: user-0
content: 引用 3 楼 TxyITxs的回复:有什么语言写，需要界面吗，设计到数据库吗？ C语言  只需要写出源代码就行了

user: user-1
content: 引用 2 楼 Reb0uRne 的回复:[quote=引用 1 楼 user-3的回复:]钱给够，很多人会愿意的 大概。。。。。多少呢？[/quote] 你能出多少？我想怎么也能买本数的价格吧

user: user-2
content: 有什么语言写，需要界面吗，设计到数据库吗？

user: user-0
content: 引用 1 楼 user-3的回复:钱给够，很多人会愿意的 大概。。。。。多少呢？

user: user-3
content: 钱给够，很多人会愿意的
user-0 提问: DEV C++这个软件调试查看*min *max数据不对，printf输出又是对的

回复:
user: user-0
content: 引用 4 楼 六道佩恩 的回复:你这里的max和min是函数minmax里的变量，所以它的值就是个地址值 你要分清楚，你这里两个函数，两个max和min，你的调试窗口显示的是哪一对min和max  我说的市*min和*max这两个值，这两个值在调试那个窗口是固定的*min=1528349827  *max=6422420，每一个循环，*min或者*max会有一个值发生变化，最后一次printf  *max  值是6，但是调试窗口*max=6422420还是不变，输出的值不是应该是调试窗口的值一样才对吗

user: user-1
content: 你这里的max和min是函数minmax里的变量，所以它的值就是个地址值 你要分清楚，你这里两个函数，两个max和min，你的调试窗口显示的是哪一对min和max

user: user-2
content: Visual C++ 2010 Express简体中文版http://pan.baidu.com/s/1bnwRVLt

user: user-3
content: 交换值

user: user-0
content: 引用 1 楼 吖如 的回复:交换值什么意思
user-0 提问: 求大神帮我看看这个语句哪里没结束？

回复:
user: user-1
content: 引用 2 楼 Nitrous Oxide 的回复:那应该去哪个区间呀。。。。   难道自己不知道这是啥语言？？  还问这个问题？？

user: user-0
content: 引用 1 楼 user-2的回复:明显不是C语言还来C语言分区问 那应该去哪个区间呀。。。。

user: user-2
content: 明显不是C语言还来C语言分区问
user-0 提问: 为啥在linux下运行不起，求大神指点。

回复:
user: user-0
content: 引用 3 楼 user-1的回复:linux C++用g++编译，不是gcc 哦哦，好的👌，谢谢

user: user-1
content: linux C++用g++编译，不是gcc

user: user-0
content: 引用 1 楼 user-1的回复:一大坨编译错误自己解决啊 运行之后说iostream不存在，这个问题应该咋解决啊？不是说iostream在linux中是可以的吗？

user: user-1
content: 一大坨编译错误自己解决啊
user-0 提问: 救救孩子，请各位帮忙看一下这道题

回复:
user: user-1
content: 很纳闷，自己运行一下不就知道答案了吗？ 都是递归函数，先了解递归的原理。给了你答案能怎么着，下次遇到这样的问题，还是不知道怎么办嘛  17) A；18) A；19) C；20) B;  为啥都是第一行的输出，这个题目本身就有问题吧

user: user-0
content: 大佬救命啊1551QAQ
user-0 提问: 有人帮我改一下错误吗？我怎么找都找不出来

回复:
user: user-1
content: 引用 1 楼 Reb0uRne 的回复:代码 不能用的话  私我 just waiting ...

user: user-0
content: 代码 不能用的话  私我
user-0 提问: 菜鸟求助指针问题

回复:
user: user-1
content: #include <stdio.h>   int main() {     unsigned char a_count=0;     int arry[10]={0};     int *p=arry;       for(a_count=0;a_count<10;a_count++)     {         (*p)++;         p =p+1;         printf("数组输出=%d\r\n",arry[a_count]);         printf("指针输出*p=%d\r\n",*p);         delay_ms(1000);     }      while(1)     {      } }  供参考～
user-0 提问: C语言编码

回复:
user: user-0
content: 引用 2 楼 离水的鱼儿的回复:文件名是卡号和身份证号的组合，还是文件内容包含卡号和身份证号？ 包涵卡号和身份证号码

user: user-1
content: 文件名是卡号和身份证号的组合，还是文件内容包含卡号和身份证号？

user: user-2
content: search(card_id, num);
user-0 提问: 分邮票问题

回复:
user: user-1
content: 求和除2得到一个数，然后用深搜或广搜找一个距离那个数最近的子集和

user: user-2
content: srand(time(0)); printf("%d\n", (rand() % 2 == 0) ? 0: 2);
user-0 提问: c语言输入读写文件错误，求教...

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:读取操作有问题： 问题1：从文件里读取应该判断fp，文件指针是否到了文件末尾，而不应该是判断链表； 问题2：读取之后放到文件里的地址，不能保证是原来链表中的next指向的地址；  建议把程序做一下修改，改成每次程序运行都从文件里读取，边读边申请链表节点； 即把读取操作从后面的逻辑中去掉，保留写操作； 另外，建议读写只对节点数据部分，next就不要写入/读取了。 那么请问该如何输入，我输入全是乱码

user: user-1
content: 读取操作有问题： 问题1：从文件里读取应该判断fp，文件指针是否到了文件末尾，而不应该是判断链表； 问题2：读取之后放到文件里的地址，不能保证是原来链表中的next指向的地址；  建议把程序做一下修改，改成每次程序运行都从文件里读取，边读边申请链表节点； 即把读取操作从后面的逻辑中去掉，保留写操作； 另外，建议读写只对节点数据部分，next就不要写入/读取了。
user-0 提问: c++语句理解困难

回复:
user: user-1
content: 引用 2 楼 user-4 的回复:引用 1 楼 早打大打打核战争 的回复:产生(0, 1]区间的随机浮点数rand返回值最小是 0  对，应该是[0, 1)

user: user-2
content: 1 rand()函数 函数的返回值是产生的伪随机整数。C++中产生的随机数实际上并不是真正的随机，而是伪随机（pseudorandom）。计算机通过C++中的算法从一个起始数（startingpoint）开始计算，最终得到的一个“貌似随机”的整数，即为伪随机整数。而不同的起始数得到的伪随机的整数也是不同的。具体内容请参考《C++中产生随机整数的方法》 2 RAND_MAX常量 MSDN中关于RAND_MAX的描述是 The constant RAND_MAX is the maximum value that can be returned by the rand function. RAND_MAX is defined as the value 0x7fff. RAND_MAX是一个常量，该常量是rand()函数能产生的最大值，该值为0x7FFF。 3 类型转换 在RAND_MAX函数前加double的原因是：rand()函数的返回值是int，RAND_MAX也是int，如果不进行类型转换，那么 rand( )/RAND_MAX; 的值要么是0，要么是1. 而把rand()函数的返回值变为double后， rand( )/(double)RAND_MAX; 以上表达式的值取值就是0~1范围内的所有小数了

user: user-3
content: 引用 3 楼 gergul 的回复:返回0至RAND_MAX之间的随机数。（包含0与RAND_MAX） 以上错误了。 应该是返回0到1/RAND_MAX之间的随机数。包含0与1/RAND_MAX）

user: user-3
content: 返回0至RAND_MAX之间的随机数。（包含0与RAND_MAX）

user: user-4
content: 引用 1 楼 早打大打打核战争 的回复:产生(0, 1]区间的随机浮点数rand返回值最小是 0

user: user-1
content: 产生(0, 1]区间的随机浮点数