Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 这是那个银行单列排队的那个题，调试显示这个for循环有一次执行之后没有效果，明明执行了的。大佬给看看吧

回复:
user: user-1
content: SORRY，沒注意到。  不知道你説的沒效果是什麽意思？  有時候我也見過調試過程很詭異的，看起來像是IDE沒有準確定位。建議你可以在關鍵位置設置輸出進行觀察再試試看。  另外，樓上説的這個People的定義確實有問題，一般編譯器應該會報錯，起碼不是你預期的以輸入的N來定義數組，C不支持這樣的動態定義。

user: user-0
content: 引用 1 楼 老马何以识途的回复:哪個for循環？你這代碼裏很多個哦！ 那个for循环后边有注释

user: user-2
content: People People[N]; 这个代码有问题吧？首先，N不是常量，其次变量名域类型名相同。

user: user-1
content: 哪個for循環？你這代碼裏很多個哦！
user-0 提问: C语言程序设计

回复:
user: user-1
content: 这题挺弱智的，输入0050，反过来算0500，还是算05（也就是50反过来变成5还是变成500）？而且d0d1d2d3用数组多好，还可以用循环 不考虑特例，按题目设想来做 b=0; temp=a; if (temp>0) { //0反过来还是0。或者大于999保证4位数？ d0=temp%10; b=d0; temp /= 10; d1=temp%10; b = b*10+d1; temp /=10; d2=temp%10; b = b*10+d2; d3=temp%10; b = b*10+d3; }
user-0 提问: 编程计算分段函数？

回复:
user: user-1
content: 主要两个点，一个是if条件判断语句，一个是用预处理指令include导入math库，具体自己搜吧。这种简单语句在入门书籍肯定会有，先把自己的书浏览一遍，这类简单问题自己解决的好。

user: user-0
content: 引用 1 楼 observer_616的回复:简单的if条件判断，加一个else if就能判断三个了呗 好像很简单的样子

user: user-0
content: 引用 2 楼 user-2的回复:小白就多点想和多点练习 if（0<x && x < 1）{....} else if(3 <= x && x <= 4){....} else{.....} 控制结构 今天才上了一点

user: user-2
content: 小白就多点想和多点练习 if（0<x && x < 1）{....} else if(3 <= x && x <= 4){....} else{.....}

user: user-1
content: 简单的if条件判断，加一个else if就能判断三个了呗
user-0 提问: 来帮忙啊！! !

回复:
user: user-1
content: 看不清图片，没办法解决啊

user: user-0
content: 我的程序在一楼啊，就写在一楼

user: user-0
content: char a 20 scanfs %s a sizeof a printf %d/n a return  0 符号省略了，格式没问题
user-0 提问: C语言中现在还可以有这种程序吗？

回复:
user: user-0
content: 引用 5 楼 @风轻云淡_的回复:[quote=引用 3 楼 qq_44780839 的回复:] 谢谢你 那可以告诉我这个是什么意思嘛？ 此为逗号表达式，运算顺序自左向右，如4楼所述，整个表达式的值为最后一个表达式的值，运行完之后  m=3; n=4; x=4;  [/quote] 谢谢大佬指点呀，嘻嘻🌸

user: user-0
content: 引用 4 楼 qybao的回复:逗号表达式。整个表达式的值是最后一个表达式的值 谢谢大佬指点呀，嘻嘻🌸

user: user-1
content: 引用 3 楼 qq_44780839 的回复:谢谢你 那可以告诉我这个是什么意思嘛？ 此为逗号表达式，运算顺序自左向右，如4楼所述，整个表达式的值为最后一个表达式的值，运行完之后  m=3; n=4; x=4;

user: user-2
content: 逗号表达式。整个表达式的值是最后一个表达式的值

user: user-0
content: 引用 2 楼 早打大打打核战争的回复:不可以，n重定义了 int  m,n; int  x=(m=3,n=4);  可以 谢谢你😊 那可以告诉我这个是什么意思嘛？

user: user-3
content: 不可以，n重定义了 int  m,n; int  x=(m=3,n=4);  可以

user: user-4
content: 没见过，可以这样？
user-0 提问: 求大神帮忙

回复:
user: user-1
content: 引用 4 楼 weixin_44806212的回复:[quote=引用 1 楼 时夜的回复:]整理成一个函数放在里面不就好了，问题是啥？ 上面的程序后还有} } if (3==i) { printf("三次密码错误，退出登录\n")； return 0； }[/quote] 模糊到看不清啊……。。。。。

user: user-0
content: 引用 1 楼 时夜的回复:整理成一个函数放在里面不就好了，问题是啥？ 上面的程序后还有} } if (3==i) { printf("三次密码错误，退出登录\n")； return 0； }

user: user-0
content: 引用 1 楼 时夜的回复:整理成一个函数放在里面不就好了，问题是啥？ 要进行密码验证，三次错误就退出登录，

user: user-0
content: 引用 1 楼 时夜的回复:整理成一个函数放在里面不就好了，问题是啥？ 学生成绩管理系统的C语言程序设计，插进去，总是不对，

user: user-1
content: 整理成一个函数放在里面不就好了，问题是啥？
user-0 提问: 求助QAQ  C语言 数组去重排序（调用了库函数qsort）在一个样例上一直runtime error 

回复:
user: user-0
content: 引用 4 楼 user-1的回复:[quote=引用 3 楼 超超超超超级菜 的回复:] [quote=引用 2 楼 user-1的回复:]for(j=1;data[j]!='\0';j++) 没有确保结尾0 会出现垃圾值和0比较 数组跑飞越界 出错 对哦，，判断条件改成 j<=i 应该就可以了8[/quote]还有输入的错误[/quote] 好的好的谢谢了

user: user-1
content: 引用 3 楼 超超超超超级菜 的回复:[quote=引用 2 楼 user-1的回复:]for(j=1;data[j]!='\0';j++) 没有确保结尾0 会出现垃圾值和0比较 数组跑飞越界 出错 对哦，，判断条件改成 j<=i 应该就可以了8[/quote]还有输入的错误

user: user-0
content: 引用 2 楼 user-1的回复:for(j=1;data[j]!='\0';j++) 没有确保结尾0 会出现垃圾值和0比较 数组跑飞越界 出错 对哦，，判断条件改成 j<=i 应该就可以了8

user: user-1
content: for(j=1;data[j]!='\0';j++) 没有确保结尾0 会出现垃圾值和0比较 数组跑飞越界 出错

user: user-1
content: while(scanf("%c",&data[i])!=EOF) 输入整型用%d
user-0 提问: 急求，数据结构题(用c写)

回复:
user: user-0
content: 引用 1 楼 Slzde_sub的回复:50k分可以考虑，50分？ 实在不好意思，初来乍到，没什么分，我也明白它的难度，现在就是中间卡住了，希望征求一下大家有没有做过的经验，可以帮忙给个思路建议，

user: user-0
content: 👀👀实在不好意思，初来乍到，没什么分🙃🙃，我也明白它的难度，现在就是中间卡住了，希望征求一下大家有没有做过的经验，可以帮忙给个思路建议，😁😁😁
user-0 提问: 各位大佬有没有C语言实现Http get和post的封装好的方法啊【图片】

回复:
user: user-1
content: 引用 2 楼 程序猿Mars 的回复:[quote=引用 8 楼 WNs_ACE 的回复:] 如果是使用vs2017的话，我比较建议使用cpprestsdk咯，这个是微软写的一个开源网络库来的，cpprestsdk是面向对象的写法，如果使用libcurl也是可以的，libcurl的面向过程的写法，百度直接搜索libcurl就有了吧，我记得第一个就是了  想问下 我手写的HTTP GET 为啥HOST 不能写IP+端口 只能写域名呢？[/quote] 因为你不知道知道域名对应的公网IP，只有DNS解析才知道，所以一般访问公网的都是使用域名，而不是使用IP的原因，自己手写的话，也是可以，但是首先通过DNS解析出来IP，然后再通过socket来实现连接，然后再发送http协议的字符串过去给服务器，会麻烦很多而且自己写的话，比较容易出错，而且如果是https的话，还要调用OpenSSL，那就更麻烦了，所以建议还是使用开源类库

user: user-0
content: 引用 4 楼 smwhotjay 的回复: 我记得有几种选择啊。  想问下 我手写的HTTP GET 为啥HOST 不能写IP+端口 只能写域名呢？

user: user-0
content: 引用 8 楼 WNs_ACE 的回复:如果是使用vs2017的话，我比较建议使用cpprestsdk咯，这个是微软写的一个开源网络库来的，cpprestsdk是面向对象的写法，如果使用libcurl也是可以的，libcurl的面向过程的写法，百度直接搜索libcurl就有了吧，我记得第一个就是了  想问下 我手写的HTTP GET 为啥HOST 不能写IP+端口 只能写域名呢？

user: user-1
content: 如果是C语言的啊，就使用libcurl吧，这个又是跨平台的，如果是c++的话，可以考虑使用boost.asio或者微软的cpprestsdk，看情况和看需求咯，自己写的话，不太建议因为很花时间，而且写出来的效果和效率也没有这些类库好，建议直接是使用吧

user: user-2
content: 我记得有几种选择啊。

user: user-3
content: 你想自己實現還是找個sdk？

user: user-4
content: baidu WinInet

user: user-5
content: libcurl?

user: user-1
content: 如果是使用vs2017的话，我比较建议使用cpprestsdk咯，这个是微软写的一个开源网络库来的，cpprestsdk是面向对象的写法，如果使用libcurl也是可以的，libcurl的面向过程的写法，百度直接搜索libcurl就有了吧，我记得第一个就是了

user: user-0
content: 引用 5 楼 WNs_ACE 的回复:如果是C语言的啊，就使用libcurl吧，这个又是跨平台的，如果是c++的话，可以考虑使用boost.asio或者微软的cpprestsdk，看情况和看需求咯，自己写的话，不太建议因为很花时间，而且写出来的效果和效率也没有这些类库好，建议直接是使用吧  那如果是https的话 也可以用libcurl吗？这个libcurl在哪里下载呢....大神一般用什么写C语言啊？VS2017吗？

user: user-6
content: libcurl吧，网上有编译的方法，也有使用方法，很简单
user-0 提问: C语言新手求问，怎么才能输出更多位数有效的小数

回复:
user: user-1
content: 仅供参考：#include <stdio.h> long a=10000; long b; long c=2800; long d; long e; long f[2801]; long g; int main() {     for(;b-c;) f[b++]=a/5; //  while (1) { //      if (0==b-c) break; //      f[b]=a/5; //      b++; //  }      //f[0 - 2800] = 10000/5     for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)           for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); //  while (1) { //      d=0; //      g=c*2; //      if (0==g) break; //      b=c; //      while (1) { //          d+=f[b]*a; //          f[b]=d%--g; //          d/=g--; //          --b; //          if (0==b) break; //          d*=b; //      } //      c-=14; //      printf("%.4d",e+d/a); //      e=d%a; //  }  	return 0; }

user: user-2
content: 建议先了解下组成原理，搞清楚浮点数是怎么存储的 这种需求，只能是通过字符串来处理了 百度搜 “大数运算”可以参考下

user: user-0
content: 引用 2 楼 user-4的回复:如果你使用的是 C/C++语言的双精度数(double)，其有效数字仅16位，其后的数字毫无意义。 就是double型，只有16位有效小数

user: user-3
content: 一般来说，只能使用字符串，自己定义计算规则。

user: user-4
content: 如果你使用的是 C/C++语言的双精度数(double)，其有效数字仅16位，其后的数字毫无意义。

user: user-0
content: 看起来图片不清晰，这个APP有点问题啊。。。还不能删帖重发吗。。
user-0 提问: 新手问一个c语言问题

回复:
user: user-1
content: 运算优先级的问题 p->a 常用的用法 (*p).a 有点像脱裤子放屁，多此一举，但功能上和p->a一样 *p.a编译报错 request for member 'a' in something not a structure or union

user: user-2
content: p->a和(＊p).a功能一样，*p.a是先.所以报错。
user-0 提问: 求个思路

回复:
user: user-0
content: 嗯，准备先用matlab求一下通解，或者是把8x35的矩阵简化下来.

user: user-1
content: 《最优化方法》（高等教育出版社）第二章，“单纯形方法”。代码当年我用C++写过……不过不知道扔哪里去了。

user: user-2
content: 对于线性方程组，只有未知数和方程式个数一样多， 才能有确定解。你现在未知数比方程式个数多出如此多，怎么可能求解，就是枚举，神仙也给不出。  你必须首先在方程式方面下功夫，与程序语言无关。

user: user-0
content: 把范围扩大到-1到1上的话，和0到1的计算量相差6个数量级，好像不是一天能跑下来的..

user: user-0
content: 未知数范围是-6到6...本来以为全部未知数在0到1上可能会有解存在..穷举法跑了一遍，发现没有

user: user-0
content: 好像搞错了..方程都是线性的，非齐次方程，这样会不会有简单点的解法
user-0 提问: vc编译运行没问题，oj编译出问题，求帮忙

回复:
user: user-0
content: 求大佬帮忙看下

user: user-0
content: 引用 5 楼 Slzde_sub 的回复:  出错代码呢  总不可能只告诉你CE而不告诉你原因把谢谢大佬提示了我看错误信息 一直想着是不是指针出问题了，没去看错误信息，刚把struct结构体放到函数声明的前面就可以了 谢谢大佬们

user: user-0
content: 原本的输入我改了下，变得清晰了一点，还是有编译问题 #include <stdio.h> #include <stdlib.h>  void input(struct student *s,int n); void print(struct student *s,int n);  struct student { 	char number[25]; 	char name[25]; 	int score[3]; };  int main() { 	struct student *s; 	int n;  	scanf("%d",&n); 	s=(struct student*)malloc(n*sizeof(struct student));  	input(s,n); 	print(s,n); 	 }  void input(struct student *s,int n) { 	int i; 	for(i=0;i<n;i++) 	{ 		scanf("%s %s %d %d %d",s[i].number,s[i].name, 			&s[i].score[0],&s[i].score[1],&s[i].score[2]); 	} }   void print(struct student *s,int n) { 	int i; 	for(i=0;i<n;i++) 	{ 		printf("%s,%s,%d,%d,%d\n",s[i].number,s[i].name, 			s[i].score[0],s[i].score[1],s[i].score[2]); 	} }

user: user-0
content: 引用 5 楼 Slzde_sub 的回复:  出错代码呢  总不可能只告诉你CE而不告诉你原因把我的锅，忘了放  dotcpp上的提示： vc6的没问题：

user: user-0
content: 引用 3 楼 niiiloc 的回复:g++编译报错main函数必须返回int   我试了一下，不是这个问题

user: user-1
content: g++编译报错main函数必须返回int

user: user-0
content: vc编译没出问题，dotcpp上编译出错，  输入格式： 2 a100 clang 70 80 90 b200 dotcpp 90 85 75  输出格式： a100,clang,70,80,90 b200,dotcpp,90,85,75   求大佬帮忙看看哪里出问题了
user-0 提问: 用c语言写一段代码，是小写字母，输出是大写字母，如果输入其他字符，直接输出

回复:
user: user-1
content: 引用 6 楼 qq_44797241的回复:[quote=引用 5 楼 超超超超超级菜的回复:][quote=引用 2 楼 Q__ing的回复:]代码如下: #include<stdio.h> int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     if (a>='z'&&a<='a')  	printf("%c",a);     return 0; }  结果如下:   if (a>='z'&&a<='a')  这一句有问题，是永假的 应该改成  if (a>'z'||a<'a')   而且可以用一个 else 代替[/quote] 谢谢啦，我是大一的学生。刚接触c还望多多关照[/quote] 我也是😉加油加油😉

user: user-1
content: 引用 2 楼 Q__ing的回复:代码如下: #include<stdio.h> int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     if (a>='z'&&a<='a')  	printf("%c",a);     return 0; }  结果如下:   而且if(a<='z'&&a>='a')后的两个语句应该用{}括起来

user: user-0
content: 引用 5 楼 超超超超超级菜的回复:[quote=引用 2 楼 Q__ing的回复:]代码如下: #include<stdio.h> int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     if (a>='z'&&a<='a')  	printf("%c",a);     return 0; }  结果如下:   if (a>='z'&&a<='a')  这一句有问题，是永假的 应该改成  if (a>'z'||a<'a')   而且可以用一个 else 代替[/quote] 谢谢啦，我是大一的学生。刚接触c还望多多关照

user: user-1
content: 引用 2 楼 Q__ing的回复:代码如下: #include<stdio.h> int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     if (a>='z'&&a<='a')  	printf("%c",a);     return 0; }  结果如下:   if (a>='z'&&a<='a')  这一句有问题，是永假的 应该改成  if (a>'z'||a<'a')   而且可以用一个 else 代替

user: user-2
content: isupper()：判断是否是大写 islower()：判断是否是小写 toupper()：小写转换为大写 tolower()：大写转换为小写

user: user-3
content: 代码如下: #include<stdio.h> int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     if (a>='z'&&a<='a')  	printf("%c",a);     return 0; }  结果如下:

user: user-1
content: #include<stdio.h>  int main() {     char a;     scanf("%c",&a);     if(a<='z'&&a>='a')         a=a-'a'+'A';     printf("%c",a);     return 0; }
user-0 提问: C语言编译运行后 字符串输出的结果是白色方块是怎么回事呀

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

user: user-2
content: 你看看是不是内存溢出了

user: user-3
content: 每次都把0,1的值赋值给to[i]

user: user-3
content: 引用 5 楼 weixin_44417360 的回复:[quote=引用 1 楼 自信男孩 的回复:] 应该是字符串没有结束符'\0'。 建议查一下是否在有效字符串后加没加'\0'。  另外，也建议把代码发出来。  引用 2 楼 user-6 的回复:代码写错 就是这么回事   你这样问 别人只能这样答   引用 3 楼 潇潇-易水 的回复:大概是因为 数组什么的 的内存 没分配  即 没初始化吧  我找到问题了 是代码while((to[i]=from[i] !='\0'))这里打错了括号 应该是while((to[i]=from[i]） !='\0') 你们能告诉我么   为啥   我这里打错了 按照赋值运算 应该是直接结束 怎么会出现小方框呢？？[/quote] 那就是to数组里没有'\0'，所以出现这样的问题

user: user-4
content: 我也是

user: user-0
content: 引用 1 楼 自信男孩 的回复:应该是字符串没有结束符'\0'。 建议查一下是否在有效字符串后加没加'\0'。  另外，也建议把代码发出来。 引用 2 楼 user-6 的回复:代码写错 就是这么回事   你这样问 别人只能这样答 引用 3 楼 潇潇-易水 的回复:大概是因为 数组什么的 的内存 没分配  即 没初始化吧  我找到问题了 是代码while((to[i]=from[i] !='\0'))这里打错了括号 应该是while((to[i]=from[i]） !='\0') 你们能告诉我么   为啥   我这里打错了 按照赋值运算 应该是直接结束 怎么会出现小方框呢？？

user: user-0
content: 这是代码  #include<stdio.h> #define MAXLINE 1000 int getline(char line[],int maxline); void copy(char to[],char from[]); main() { 	int len; 	int max; 	char line[MAXLINE]; 	char longest[MAXLINE]; 	max=0; 	while((len=getline(line,MAXLINE))>0) 		if(len>max){ 			max=len; 			copy(longest,line); 		} 	if(max>0) 		printf("%s",longest); 	return 0; } int getline(char s[],int lim) { 	int c,i; 	for(i=0;i<lim-1 && (c=getchar()) != EOF && c!='\n';++i) 		s[i]=c; 	if(c=='\n'){ 		s[i]=c; 		++i; 	} 	s[i]='\0'; 	return i; } void copy(char to[],char from[]) { 	int i; 	i=0; 	while((to[i]=from[i] !='\0')) 		++i; }  引用 1 楼 自信男孩 的回复:应该是字符串没有结束符'\0'。 建议查一下是否在有效字符串后加没加'\0'。  另外，也建议把代码发出来。 引用 2 楼 user-6 的回复:代码写错 就是这么回事   你这样问 别人只能这样答 引用 3 楼 潇潇-易水 的回复:大概是因为 数组什么的 的内存 没分配  即 没初始化吧

user: user-5
content: 大概是因为 数组什么的 的内存 没分配  即 没初始化吧

user: user-6
content: 代码写错 就是这么回事   你这样问 别人只能这样答

user: user-3
content: 应该是字符串没有结束符'\0'。 建议查一下是否在有效字符串后加没加'\0'。  另外，也建议把代码发出来。
user-0 提问: 设有一下定义语句和输入语句:

回复:
user: user-1
content: scanf()停止从数据流中读取数据的时机：遇到空格时或者遇到不能转换指定格式的数据时。 所以，即使你输入“20A20B”，此时a1，a2，c1和c2的值依然是20，20，A和B。 VS2015测试  请参考《scanf()函数的用法》 希望能够帮到你

user: user-2
content: 在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; //自动跳过一个或多个空格或Tab字符或回车换行，读取下一个字符。
user-0 提问: c语言练习，将十进制转为八进制输出，遇到了难题。。。

回复:
user: user-1
content: #include<stdio.h> #include<stdlib.h>  int main(void) {     int YU[20]={0};     int i;     int n;     int x;     printf("enter a number:");     scanf("%d",&n);     for(i=0; n>0; n=n/8)         YU[i++] = n%8;     //i++;     printf("In octal,your number is:\n");     for(x = i-1; x >= 0; x--)         printf("%d",YU[x]);     putchar(10);     system("pause");     return 0; }  参考一下吧，注意得到8进制，输出时需要倒序输出。

user: user-2
content: 大括号没加，而且转换成八进制你要把数组里面的数据逆序。

user: user-3
content: 不熟悉就把大括号都加上去

user: user-0
content: 引用 1 楼 user-3的回复:不熟悉就把大括号都加上去 嗯嗯，明白了，谢谢提醒

user: user-0
content: 引用 2 楼 ⁽⁽◝( ˙ ꒳ ˙ )◜⁾⁾so wh的回复:大括号没加，而且转换成八进制你要把数组里面的数据逆序。 谢谢提醒qaq

user: user-0
content: 引用 3 楼 自信男孩的回复:#include<stdio.h> #include<stdlib.h>  int main(void) {     int YU[20]={0};     int i;     int n;     int x;     printf("enter a number:");     scanf("%d",&n);     for(i=0; n>0; n=n/8)         YU[i++] = n%8;     //i++;     printf("In octal,your number is:\n");     for(x = i-1; x >= 0; x--)         printf("%d",YU[x]);     putchar(10);     system("pause");     return 0; }  参考一下吧，注意得到8进制，输出时需要倒序输出。 蟹蟹大佬！
user-0 提问: 新生想请问一下“”ST a”是啥意思?

回复:
user: user-1
content: ST 就是那个结构体的别名。  ST a，就是定义了一个结构体变量。 一般这样定义： typedef struct _ST {   char s[10];     int t; } ST; ST 就是  _ST 的别名。
user-0 提问: C语言疑问

回复:
user: user-1
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。

user: user-2
content: 木有看到图，贴代码吧
user-0 提问: 求素数

回复:
user: user-1
content: Finding prime numbers - Kenneth Haugland  Different schemas for finding prime numbers explained with code http://www.codeproject.com/Articles/429694/Finding-prime-numbers

user: user-2
content: #include <iostream> using namespace std; int main(){int i=3; 	for(int i=3;i<=100;i++){ 		int sum=0; 		for(int j=2;j<=i;j++){ 			if(i%j==0){ 				sum++; 			} 		} 	   if(sum==1){ 	   	cout<<i<<endl; 	   } 	} 	return 0; }
user-0 提问: 定义结构体数组时中括号里面的数字最大可以填多少？堆栈溢出的问题

回复:
user: user-1
content: 不同操作系统不一样，一般超过1M的内存建议动态申请

user: user-2
content: 如果是局部变量数组，那么是在栈上申请的，栈上的空间是很少的，如果需要申请那么多，建议改成全局变量或在堆上申请你需要的空间，堆上申请和释放的接口函数：malloc/free

user: user-3
content: 默认1M 可以修改  建议大数据在堆上申请

user: user-4
content: 栈内存很小。如果你申请的对象很占内存，那么就new吧

user: user-5
content: 请把代码“扔”出来
user-0 提问: TCC源代码怎么不能下载呢？

回复:
user: user-0
content: 原来是CSDNZ的APP有问题，在浏览器里可以正常下载，搞了好久。

user: user-1
content: 引用 4 楼 weixin_44788335 的回复:[quote=引用 3 楼 儿童节的回复:][quote=引用 2 楼 weixin_44788335 的回复:] [quote=引用 1 楼 儿童节的回复:] 是这个吗？==> https://bellard.org/tcc/  下载页面 ==> http://download.savannah.gnu.org/releases/tinycc/  随便点了一个，可以下载的啊。 你试试。     我想用手机下载，没有反应，莫非用电脑就行？[/quote]  试一下就知道了啊！   手机浏览器也可以改成 电脑模式 浏览网页啊， 都试试就知道了。 [/quote] 在论坛APP里不能下载，在浏览器里才能下载[/quote]  这本身就是开源的，没必要从论坛里下载啊。从人家官网下载才最直接、最可信的呀！

user: user-0
content: 引用 3 楼 儿童节的回复:[quote=引用 2 楼 weixin_44788335 的回复:] [quote=引用 1 楼 儿童节的回复:] 是这个吗？==> https://bellard.org/tcc/  下载页面 ==> http://download.savannah.gnu.org/releases/tinycc/  随便点了一个，可以下载的啊。 你试试。     我想用手机下载，没有反应，莫非用电脑就行？[/quote]  试一下就知道了啊！   手机浏览器也可以改成 电脑模式 浏览网页啊， 都试试就知道了。 [/quote] 在论坛APP里不能下载，在浏览器里才能下载

user: user-1
content: 引用 2 楼 weixin_44788335 的回复:[quote=引用 1 楼 儿童节的回复:] 是这个吗？==> https://bellard.org/tcc/  下载页面 ==> http://download.savannah.gnu.org/releases/tinycc/  随便点了一个，可以下载的啊。 你试试。     我想用手机下载，没有反应，莫非用电脑就行？[/quote]  试一下就知道了啊！   手机浏览器也可以改成 电脑模式 浏览网页啊， 都试试就知道了。

user: user-0
content: 引用 1 楼 儿童节的回复:是这个吗？==> https://bellard.org/tcc/  下载页面 ==> http://download.savannah.gnu.org/releases/tinycc/  随便点了一个，可以下载的啊。 你试试。     我想用手机下载，没有反应，莫非用电脑就行？

user: user-1
content: 是这个吗？==> https://bellard.org/tcc/  下载页面 ==> http://download.savannah.gnu.org/releases/tinycc/  随便点了一个，可以下载的啊。 你试试。
user-0 提问: 求助:C语言中有字符到无字符的自动转换

回复:
user: user-1
content: 因为char类型转int是自动隐式提升的，char不会一下提升到unsigned int.  但是unsigned char也是提升到int类型，需要注意的是unsigned char的范围是0~255,但是char是-128~127，很明显197已经超过了127，所以是-59

user: user-2
content: 谁告诉你系统会默认做 有符号––>无符号转换的？ %d能够格式化输出负数，不会做转换。 %u只能输出正数，才会做转换。
user-0 提问: 二级c语言求教

回复:
user: user-1
content: 建议了解一下递归的原理，递归是不断的申请自身函数栈，直到条件不满足停止调用自身，最后2/10==0，停止递归。再根据栈的特性：先进后出。所以根据fun(256), n%10 == 6, -->fun(25), n %10 == 5, -->func(2) n %10 == 2， 然后输出就是2, 5, 6（倒序输出，后进先出）

user: user-2
content: 引用 3 楼 qq_44751630 的回复：[quote=引用 2 楼 qq_44751630的回复:][quote=引用 1 楼 sswang1314的回复:]递归实质就是先进先出的栈结构，所以256先求余得6，6先进所以最后出，最高位2最后进所以最先出，所以最后是256 谢谢，明白喽[/quote] 栈是后进先出[/quote]是的

user: user-3
content: 你可以在	putchar(n%10+'0');下面加上一串代码：printf(" %d\n",n);用于看它参数的变化，得到结果： 从图中可以看出最后的到的结果是256

user: user-0
content: 引用 2 楼 qq_44751630的回复:[quote=引用 1 楼 sswang1314的回复:]递归实质就是先进先出的栈结构，所以256先求余得6，6先进所以最后出，最高位2最后进所以最先出，所以最后是256 谢谢，明白喽[/quote] 栈是后进先出😄😄😄

user: user-0
content: 引用 1 楼 sswang1314的回复:递归实质就是先进先出的栈结构，所以256先求余得6，6先进所以最后出，最高位2最后进所以最先出，所以最后是256 谢谢，明白喽😊😊😊😊😊😊😊

user: user-2
content: 递归实质就是先进先出的栈结构，所以256先求余得6，6先进所以最后出，最高位2最后进所以最先出，所以最后是256
user-0 提问: 小白求助

回复:
user: user-1
content: 引用 1 楼 user-2 的回复:中文好像没有相对应的ascii码，英文的可以 #include<stdio.h> void main() { 	char a[30]; 	int t,sum=0,i; 	scanf("%s",a); 	for(i=0;a[i]!='\0';i++) 	{ 		t=a[i]; 		printf("第%d个ascii码值为%5d",i+1,t); 		sum=sum+t;  	} 	printf("\n"); 	printf("总和为%d",sum);  #include<stdio.h> void main() { 	char a[30]; 	int t,sum=0,i; 	scanf("%s",a); 	for(i=0;a[i]!='\0';i++) 	{ 		t=a[i]; 		printf("第%d个ascii码值为%5d",i+1,t); 		sum=sum+t;  	} 	printf("\n"); 	printf("总和为%d",sum);  } 中文也是有的，只不过不是一个字节表示

user: user-2
content: 中文好像没有相对应的ascii码，英文的可以 #include<stdio.h> void main() { 	char a[30]; 	int t,sum=0,i; 	scanf("%s",a); 	for(i=0;a[i]!='\0';i++) 	{ 		t=a[i]; 		printf("第%d个ascii码值为%5d",i+1,t); 		sum=sum+t;  	} 	printf("\n"); 	printf("总和为%d",sum);  #include<stdio.h> void main() { 	char a[30]; 	int t,sum=0,i; 	scanf("%s",a); 	for(i=0;a[i]!='\0';i++) 	{ 		t=a[i]; 		printf("第%d个ascii码值为%5d",i+1,t); 		sum=sum+t;  	} 	printf("\n"); 	printf("总和为%d",sum);  }
user-0 提问: 急！！一个逻辑问题求教

回复:
user: user-1
content: 无非是触发事件不对呗 一般按钮事件有三种，按下、弹出、点击。 从你的需求看你应该注册点击事件

user: user-0
content: 有没有大神啊

user: user-0
content: 有没有大神知道啊
user-0 提问: 三角形类型出

回复:
user: user-1
content: 楼主的问题不在问题本身，在学习的方法不清楚。  你这个小代码，编译通过以后，你现在进入的调试过程。不是输入什么输出什么的问题。调试的方法可以用两种，首先是在线调试系统，你可以加断点，查看变量实际是怎么变化的，调试系统熟练掌握是个快速和捷径。  如果有的系统，尤其是嵌入系统没有在线调试怎么办？增加调试代码，调试代码放到宏定义语句里面，正式输出代码的时候，通过宏定义屏蔽调试代码。  你这里最简单的增加printf，在scanf后面。 能明白吗？

user: user-2
content: 输入有问题，按照你的程序，输入的间隔应该是英文逗号，而你的输入没有逗号。可以通过printf输出你输入的内容，以判断scanf是否输入正确。  另外，注意浮点数比较相等的方式，建议从网上看一下

user: user-3
content: #include <stdio.h>                                         //引用头文件 #include <math.h>											//数学公式函数 main() { 	float a,b,c;											//定义三角形的三条边 	float s,area;											//定义三角形的周长和面积 	printf("请输入您想判断的三角形的三条边:");         	scanf("%f%f%f",&a,&b,&c);                              //输入三条边 												//第一步： 	if(a+b>c && a+c>b && b+c>a)								//判定三角形是否成立的条件 	{											//第二步：			 		s=(a+b+c)/2;										//计算三角形一半的周长 		area=sqrt(s*(s-a)*(s-b)*(s-c));						//计算三角形的面积公式：秦九昭公式（不知道得可以百度一波） 		printf("此三角形的面积为:%f\n",area); 												//第三步： 		if(a==b && a==c)									//先判断三角形是否为等边三角形 		{ 			printf("此三角形是等边三角形\n"); 		} 		else 			if(a==b ||a==c || b==c)                           //再判断三角形是否为等腰三角形 			{ 				printf("此三角形是等腰三角形\n"); 			} 			else 				if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)    //判断三角形是否为直角三角形 				{ 					printf("此三角形是直角三角形\n"); 				} 				else 				{ 					printf("此三角形为普通三角形\n");               //如果都不是则为普通三角形 				} 	} 	else 	{ 		printf("此三边构不成三角形!!!\n");                  //三边不能构成三角形 	} }   这种方法比较清晰，然后你的代码是输入scanf代码出了问题，改一下就好了。

user: user-4
content: 嗯， 看错了，下面的代码不是你贴的。 。。  总而言之，就是 「使用scanf()的时候，输入内容 一定 要 和 输入控制符 对比，确保一致。」。

user: user-4
content: 你截图的代码里，scanf()双引号下面的 输入控制符 和 下面贴图来的代码里 的 输入控制符， 不一样哦！截图里的多了两个逗号。  用你贴出来的代码，和你截图里的 输入，就没问题了。  使用scanf()的时候，输入内容 一定 要 和 输入控制符 对比，确保一致。坛子里好多这种同样原因的问题的提问了。

user: user-5
content: #include<stdio.h> #include<math.h> int main() { float a,b,c; printf("请输入三条边的长度：\n"); scanf("%f%f%f",&a,&b,&c); if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a) { if(a==b && b==c) { printf("等边三角形"); } else if(a==b || a==c || b==c) { printf("等腰三角形"); } else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a) { printf("直角三角形"); } else { printf("普通三角形"); } } else { printf("非三角形"); } return 0; }
user-0 提问: 设计一个大数运算，不能使用数组

回复:
user: user-1
content: string是不是数组？

user: user-2
content: 其实挺无聊的，不用数组就用链表呗，数组只是一种简便的存储方式罢了。

user: user-0
content: 引用 1 楼 user-3的回复:不用内置数组类型就用过malloc或者new呗 全部不用? 你该不会是还没学到数组吧? 没学数组就好好学 别好高骛远的 所以大佬您会吗

user: user-3
content: 不用内置数组类型就用过malloc或者new呗 全部不用? 你该不会是还没学到数组吧? 没学数组就好好学 别好高骛远的
user-0 提问: 复试机试  在vs能编译的  在oj就是不能通过   请大佬帮忙看看

回复:
user: user-1
content: 题目写的很清楚，输出是YES和NO，你非要输出小写

user: user-0
content: 引用 5 楼 niiiloc 的回复:题目写的很清楚，输出是YES和NO，你非要输出小写 对不起  老哥我错了

user: user-0
content: 引用 3 楼 自信男孩 的回复:if (s[i] >= 65 || s[i] <= 90) 这个||应该改成&&.因此，注意这两个运算符的作用  另外，数组下表是从0开始的，看你的for循环是从1开始的 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { 	int m,i,j, len,sum; 	char s[100]; 	scanf("%d", &m); 	for (j = 0; j< m; j++) 	{ 		sum=0; 		scanf("%s",s); 		len = strlen(s); 		if (len < 8 || len>16) 		{ 			printf("no\n"); 			continue; 		} 		for (i = 0; i <len; i++) 		{ 			if (s[i] >64 && s[i] < 91) 			{ 				sum++; 				break; 			} 		} 		for (i= 0; i < len; i++) 		{ 			if (s[i] >96 && s[i] < 123) 			{ 				sum++; 				break; 			} 		} 		for (i= 0; i < len; i++) 		{ 			if (s[i] == 33 || s[i] == 35 || s[i] == 36 || s[i] == 37 || s[i] == 94 || s[i] == 64 || s[i] == 126) 			{ 				sum++; 				break; 			} 		} 		for (i = 0; i < len; i++) 		{ 			if (s[i] > 47 && s[i] < 58) 			{ 				sum++; 				break; 			} 		} 		if (sum > 2) 			printf("yes\n"); 		else 			printf("no\n"); 	} 	system("pause"); 	return 0;  }  老哥  能帮我在看看么我改了还是错的鸭

user: user-2
content: if (s[i] >= 65 || s[i] <= 90) 这个||应该改成&&.因此，注意这两个运算符的作用  另外，数组下表是从0开始的，看你的for循环是从1开始的

user: user-2
content: scanf("%s", &s); 这句去掉&，因为数组名本身就是地址，数组名是数组的首地址。

user: user-0
content: 自己顶！！！！
user-0 提问: vscode提示launch program"don't exist

回复:
user: user-1
content: 推荐一篇文章供参考，《Elementary OS 0.4.1 Loki配置vscode调试C程序》： https://www.jianshu.com/p/b46fe3663598  vscode是跨平台的，在windows里和linux里，它本身的配置应该是一样的，至少不会差太多。
user-0 提问: 宏定义里面的变量未知怎么办？在线求助！

回复:
user: user-0
content: 题目就是   图里的宏定义原来是N 10，现在用表达式(int)(sizeof(a)/sizeof(a[0]))或者具有相同值的宏来计算数组的长度。是这么一个修改的问题……

user: user-1
content: 引用 2 楼 weixin_44775375的回复:[quote=引用 1 楼 user-1的回复:]a有几个元素由N来决定，而N又由你的宏定义的a来决定 那这个应该怎么改呀，如果数组长度本来就是未知咋办呢？[/quote] 你发下问题～～～～～～～～

user: user-0
content: 引用 1 楼 user-1的回复:a有几个元素由N来决定，而N又由你的宏定义的a来决定 那这个应该怎么改呀，如果数组长度本来就是未知咋办呢？

user: user-1
content: a有几个元素由N来决定，而N又由你的宏定义的a来决定
user-0 提问: VS code 如何配置C语言

回复:
user: user-1
content: 我也是自学C的小白，本身做的行业也和这个无关，楼主加油，共勉~

user: user-2
content: 看了一下你的截图，有一个很重要的运行C程序的插件 coderunner 好像没有安装。  我只在Linux下使用VScode，它本身是跨平台的，为C语言配置调试过程应该是一样的吧，下面这篇文章你可以参考一下。  《Elementary OS 0.4.1 Loki配置vscode调试C程序》  ==>   https://www.jianshu.com/p/b46fe3663598   <==  我的与C程序相关的VScode插件如下：   还有个 indent-rainbow ，是用彩色条来显示不同代码块的，也很值得安装。 希望能帮到你。
user-0 提问: 大一c语言女生Dec c求助

回复:
user: user-0
content: 引用 1 楼 user-2的回复:之前运行的窗口没有关闭 哈哈哈谢谢 我最近才点开消息！很庆幸已经度过了刚学的阶段！

user: user-1
content: 楼上正解，你上次运行的窗口没有关闭。

user: user-2
content: 之前运行的窗口没有关闭
user-0 提问: 读取文件时第一个数据总是读取不出来怎么办？

回复:
user: user-1
content: 读操作的循环里，把fclose调用放到循环外。  如果这样操作还不行，建议查一下循环次数n的值或者文件里是否有数据。

user: user-0
content: 引用 1 楼 自信男孩 的回复:读操作的循环里，把fclose调用放到循环外。  如果这样操作还不行，建议查一下循环次数n的值或者文件里是否有数据。 我的这个程序是储存不了信息的吗？

user: user-2
content: 第二个参数，打错了

user: user-2
content: fopen的第三个参数改成 "r"试试
user-0 提问: c语言内存方面的问题，求助

回复:
user: user-1
content: 以后不要用read这种系统关键字来定义变量了。

user: user-0
content: 引用 3 楼 hanxb的回复:char* read;     read=(char*)malloc(sizeof(char)*100);   内存泄漏，完全没必要，直接  char read[100];      另外，不用hash，数据多了，效率太低下。 嗯嗯谢谢了，好像是比较低级的问题

user: user-2
content: char* read;     read=(char*)malloc(sizeof(char)*100);   内存泄漏，完全没必要，直接  char read[100];      另外，不用hash，数据多了，效率太低下。

user: user-2
content: void add_key(read,num,place);   ？？  第一次看到调用函数，还带返回值定义的。 真不知道 编译器是怎么处理的。

user: user-0
content: 求助啊，卡住了从来没碰到过这种问题
user-0 提问: 刚学c语音，求救

回复:
user: user-1
content: b=a后面缺少“;”

user: user-0
content: 引用 1 楼 weixin_44778151的回复:第七行没有分号 表情发错了，尴尬

user: user-0
content: 引用 1 楼 weixin_44778151的回复:第七行没有分号 对哦，谢谢

user: user-0
content: 引用 3 楼 qq_42307333的回复:b=a是不能这么写的，数组不能这么赋值 为什么？是因为是中文吗？

user: user-2
content: b=a是不能这么写的，数组不能这么赋值

user: user-3
content: char b[]没有分号；第二个是栈上的空间没有那么大。

user: user-4
content: 第七行没有分号
user-0 提问: c语言小白求助

回复:
user: user-1
content: 还那个有你那个not exist无论怎样都会打印出来的。。可以定义一个变量X初值为1，在输出那个整除数的同时加上X=0;再if（X=1）printf(“not exist”); 注：我这个不是英文输入，不要复制

user: user-1
content: 第一个return 0改为break。
user-0 提问: if语句选择三个数中的中位数

回复:
user: user-0
content: 引用 1 楼 niiiloc的回复:没这种语法b>=a>=c 只有b>=a && a>=c 嗯，知道了。谢谢(*°∀°)=3

user: user-1
content: 没这种语法b>=a>=c 只有b>=a && a>=c
user-0 提问: c语言能做什么游戏呢？在线等，望大佬指教

回复:
user: user-0
content: 引用 2 楼 孟一 的回复：坦克大战，2048之类对界面要求不高的都可以嗯嗯

user: user-0
content: 引用 1 楼 niiiloc 的回复：CSDN找一些棋类的游戏吧，应该有很多的，五子棋黑白棋这种有点简单

user: user-1
content: 坦克大战，2048之类对界面要求不高的都可以

user: user-2
content: CSDN找一些棋类的游戏吧，应该有很多的，五子棋黑白棋这种
user-0 提问: 数据结构

回复:
user: user-1
content: 个人理解：编程就是将数据输入，存储，输出的表现形式，而数据结构就是为了提高存储，输出数据的一些高效方法吧。

user: user-0

user: user-2
content: 数据结构就是数据的容器，特定的数据有特定存储结构，合适的存储结构可以方便我们存取数据，以及描述一些客观事实。  举个简单的例子： 厕所里会用到卷纸，在卷纸生产的时候，当然是从最里面开始卷，但是我们取纸的时候是从最外面开始撕。 我们把纸筒看成是容器，把纸看成是数据，那么卷纸就是一个典型的“后进先出”的例子，越是后存进容器的数据，越是先被取出来。 在数据结构中把这种“后进先出”的容器称之为“栈”。  再举个例子： 食堂里学生们排队到窗口打饭，食堂阿姨只会按照排队顺序依次打饭，断没有让后来的人先打饭的道理。 我们把排队的人群当做是容器，学生是数据，那么这就是典型的“先进先出”的例子，越是先存的数据，越先取出来。 在数据结构中把这种“先进先出”的容器称之为“队列”  第三个例子： 很多时候我们要对数据进行分门别类，比如某某学院、某某科系、某某专业、某某年级、某某班级、某某小组、某某人 当我们用一个图把这些类别展开展示的时候，看上去就像是一棵在向不同的枝杈延展。 在数据结构中把这种结构的容器称之为“树”  ... ...
user-0 提问: 在线等！急

回复:
user: user-1
content: 这个问题是很经典和普通的问题，网上有很多这样的代码。建议搜一下，方法不止一种，另外，可以把别人的代码修改一下，然后改成你想要的返回值。

user: user-2
content: 素数就是有1和本身两个因数的数，所以判断一个数n是否是素数，就可从2到n-1依次除n如果能整除则不是素数，否则就是素数。 参考代码如下： #include<stdio.h> int isPrime(int n)  //定义一个函数用来判断素数  {     int i=2;     while(i<n)     {         if(n%i==0)             break; //若该数能被2~n-1直接的数整除 则跳出该判段不执行下一步i++ 直接进行下一个if判断          i++;  // 若不能被整除 则说明当前数字是素数 进行加一后执行下面if判断      }     if(i==n)         return 1; // 若该数是素数 则返回值记为1      else         return 0; // 0表示该数不是素数  }  int main() {     int n;     scanf("%d",&n);     if(isPrime(n)==1) 	 printf("%d是素数\n",n); //调用上述函数的返回值  判断输出该数是素数还是合数      else {  	 printf("%d不是素数\n",n);  ////调用上述函数的返回值  判断输出该数是素数还是合数      for (int i = n; i >= 2; i --) {  //如果是合数 则从当前数依次递减的去再进行一次素数的判断         if (isPrime(i) == 1) {  //不用重复写判断步骤 因为判断过程已经定义在上述的函数中了 所以我们只需要调用 isPrime(int n)函数的返回进行判断               printf("the max prime is: %d\n", i);             break;  //如果找到该合数下的最大素数 则跳出循环          }       }     }      return 0; } 调试运行结果如下图    觉得可以的话 麻烦给我点个赞谢谢 要是还是不懂可以下面评论问哦！
user-0 提问: 问大家个语法问题

回复:
user: user-0
content: 引用 3 楼 lin5161678 的回复:[quote=引用 2 楼 drakelovejoker 的回复:] [quote=引用 1 楼 user-2 的回复:] pCcplint是typedef定义的函数指针类型。 于是CcpInit就相当于函数指针了 那请问((*(unsigned long *)(0x01005024)))这个放在函数指针旁边是什么意思呢？ typedef 函数指针用法不是 pCcpInit S1;    //定义一个函数指针S1 S1 = XXX;  //赋值S1吗 从结果上看CcpInit是个pCcpInit类型的函数指针，形参输入(0)[/quote] 强制类型转换  (类型)表达式 看不懂就拆分吧 typedef void (*pCcpInit)( unsigned char mode ); #define	CcpInit ((pCcpInit)((*(unsigned long *)(0x01005024)))) #define SYS_CLK ((0)) CcpInit(SYS_CLK); CcpInit(SYS_CLK) 展开 ((pCcpInit)((*(unsigned long *)(0x01005024))))((0)) unsigned long* plong = (unsigned long *)0x01005024; unsigned long nlong = *plong; pCcpInit pFun = (pCcpInit)nlong; pFun(0);    [/quote] 懂了，谢谢老哥

user: user-1
content: 引用 2 楼 drakelovejoker 的回复:[quote=引用 1 楼 user-2 的回复:] pCcplint是typedef定义的函数指针类型。 于是CcpInit就相当于函数指针了 那请问((*(unsigned long *)(0x01005024)))这个放在函数指针旁边是什么意思呢？ typedef 函数指针用法不是 pCcpInit S1;    //定义一个函数指针S1 S1 = XXX;  //赋值S1吗 从结果上看CcpInit是个pCcpInit类型的函数指针，形参输入(0)[/quote] 强制类型转换  (类型)表达式 看不懂就拆分吧 typedef void (*pCcpInit)( unsigned char mode ); #define	CcpInit ((pCcpInit)((*(unsigned long *)(0x01005024)))) #define SYS_CLK ((0)) CcpInit(SYS_CLK); CcpInit(SYS_CLK) 展开 ((pCcpInit)((*(unsigned long *)(0x01005024))))((0)) unsigned long* plong = (unsigned long *)0x01005024; unsigned long nlong = *plong; pCcpInit pFun = (pCcpInit)nlong; pFun(0);

user: user-0
content: 引用 1 楼 user-2 的回复:pCcplint是typedef定义的函数指针类型。 于是CcpInit就相当于函数指针了 那请问((*(unsigned long *)(0x01005024)))这个放在函数指针旁边是什么意思呢？ typedef 函数指针用法不是 pCcpInit S1;    //定义一个函数指针S1 S1 = XXX;  //赋值S1吗 从结果上看CcpInit是个pCcpInit类型的函数指针，形参输入(0)

user: user-2
content: pCcplint是typedef定义的函数指针类型。 于是CcpInit就相当于函数指针了
user-0 提问: 计算机大一新生求助

回复:
user: user-0
content: 问题解决！是求根公式表达处出了问题，没有用括号括起来

user: user-0
content: 引用 6 楼 Q__ing 的回复：[quote=引用 4 楼 Q__ing 的回复:] 个人复制了你的代码进行多次修改，但结果不变，于是自己写了主要代码，代码如下，请参考： #include<stdio.h> #include<math.h> int main() { 	double a,b,c,x1,x2; 	double d; 	printf("请输入系数a,b,c的值："); 	scanf("%lf%lf%lf",&a,&b,&c); 	printf("%.0fx^2+%.0fx+%.0f=0\n",a,b,c); 	d=b*b-4*a*c; 	printf("d=%lf\n",d); 	if(d>=0) 	{ 	x1=(-b+sqrt(d))/(2*a); 	x2=(-b-sqrt(d))/(2*a); 	printf("该函数的实根分别为：\nx1=%lf\n x2=%lf\n",x1,x2);     }     else     {     	printf("根据所给系数该函数无实根\n");     	printf("\n请按照所给格式重新输入数值进行计算\n\n"); 	}  	return 0;  }   调试过程中可以把d输出， 或者中间加断点查看哪里出错，这个程序的主要问题在于sqrt函数，该函数的参数不可取负数，所以建议将sqrt函数移到后面，直接用（b^2-4ac）来判断函数是否有根，在计算两个根的时候再使用sqrt函数进行求根。 用你的数值运行结果如下：  是这样，上面的配图有误好的，非常感谢！

user: user-1
content: 可以用fabsf或者fabs保证开根号的是一个正数

user: user-2
content: [quote=引用 4 楼 Q__ing 的回复:] 个人复制了你的代码进行多次修改，但结果不变，于是自己写了主要代码，代码如下，请参考： #include<stdio.h> #include<math.h> int main() { 	double a,b,c,x1,x2; 	double d; 	printf("请输入系数a,b,c的值："); 	scanf("%lf%lf%lf",&a,&b,&c); 	printf("%.0fx^2+%.0fx+%.0f=0\n",a,b,c); 	d=b*b-4*a*c; 	printf("d=%lf\n",d); 	if(d>=0) 	{ 	x1=(-b+sqrt(d))/(2*a); 	x2=(-b-sqrt(d))/(2*a); 	printf("该函数的实根分别为：\nx1=%lf\n x2=%lf\n",x1,x2);     }     else     {     	printf("根据所给系数该函数无实根\n");     	printf("\n请按照所给格式重新输入数值进行计算\n\n"); 	}  	return 0;  }   调试过程中可以把d输出， 或者中间加断点查看哪里出错，这个程序的主要问题在于sqrt函数，该函数的参数不可取负数，所以建议将sqrt函数移到后面，直接用（b^2-4ac）来判断函数是否有根，在计算两个根的时候再使用sqrt函数进行求根。 用你的数值运行结果如下：  是这样，上面的配图有误

user: user-2
content: 个人复制了你的代码进行多次修改，但结果不变，于是自己写了主要代码，代码如下，请参考： #include<stdio.h> #include<math.h> int main() { double a,b,c,x1,x2; double d; printf("请输入系数a,b,c的值："); scanf("%lf%lf%lf",&a,&b,&c); printf("%.0fx^2+%.0fx+%.0f=0\n",a,b,c); d=b*b-4*a*c; printf("d=%lf\n",d); if(d>=0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("该函数的实根分别为：\nx1=%lf\n x2=%lf\n",x1,x2);     }     else     {     	printf("根据所给系数该函数无实根\n");     	printf("\n请按照所给格式重新输入数值进行计算\n\n"); }  return 0;  }   调试过程中可以把d输出， 或者中间加断点查看哪里出错，这个程序的主要问题在于sqrt函数，该函数的参数不可取负数，所以建议将sqrt函数移到后面，直接用（b^2-4ac）来判断函数是否有根，在计算两个根的时候再使用sqrt函数进行求根。 用你的数值运行结果如下：

user: user-2
content: 个人复制了你的代码进行多次修改，但结果不变，于是自己写了主要代码，代码如下，请参考： #include<stdio.h> #include<math.h> int main() { 	double a,b,c,x1,x2; 	double d; 	printf("请输入系数a,b,c的值："); 	scanf("%lf%lf%lf",&a,&b,&c); 	printf("%.0fx^2+%.0fx+%.0f=0\n",a,b,c); 	d=b*b-4*a*c; 	printf("d=%lf\n",d); 	if(d>=0) 	{ 	x1=(-b+sqrt(d))/(2*a); 	x2=(-b-sqrt(d))/(2*a); 	printf("该函数的实根分别为：\nx1=%lf\n x2=%lf\n",x1,x2);     }     else     {     	printf("根据所给系数该函数无实根\n");     	printf("\n请按照所给格式重新输入数值进行计算\n\n"); 	}  	return 0;  }   调试过程中可以把d输出， 或者中间加断点查看哪里出错，这个程序的主要问题在于sqrt函数，该函数的参数不可取负数，所以建议将sqrt函数移到后面，直接用（b^2-4ac）来判断函数是否有根，在计算两个根的时候再使用sqrt函数进行求根。 用你的数值运行结果如下：

user: user-0
content: 引用 1 楼 user-3 的回复：d应该先判断正负，再开根号吧已修改，但计算结果还是错的

user: user-0
content: 引用 1 楼 user-3 的回复：d应该先判断正负，再开根号吧多谢提醒！

user: user-3
content: d应该先判断正负，再开根号吧
user-0 提问: C语言 关于EOF和getchar();

回复:
user: user-0
content: 我现在理解，当我按下回车键的时候，电脑开始读取缓冲区中数据，如果缓冲区中EOF前面和后面都有数据，例如ABCDEFG^ZQWERTY那么^Z将不会被认为是结束EOF符号，其ASCII数值是26，SUB，另外后面的数据将全部丢失（这点和EOF一样），即ZQWERTY和回车\n都将丢失。下面看看这两段代码：  ---------------------------------------------------------------------------------------------------------------------------------------------- 1 #include <stdio.h>  int main(void) {     int c;     while ((c = getchar()) != EOF)     {         putchar(c);     } }   输入abc,然后回车  光标在第三行，说明putchar()依此返回了a,b,c,\n.  输入abc^Z,然后回车  光标在第二行的末尾，说明putchar()依返回了a,b,c,并没有返回最后的\n，也没有打破循环。后来进一步发现，这一行其实有4个字符  分别为abc和最后一个看不到的字符，其ASCII值是26.  输入^Z,然后回车  发现循环结束，对比第二个实验，说明只有在缓冲区没有数据时候输入EOF再回车，EOF能被识别为END OF FILE，结束循环。  ------------------------------------------------------------------------------------------------------------------------------------------- 验证我上面的推断： 代码：如果字符是EOF或者是'n'("回车键")时候循环结束，输出之前输入的字符； #include <string.h>  int main() {      int i;     int c;     int lim;     lim = 100;     char s[lim];          for (i = 0; i < lim - 1 && ((c = getchar()) != EOF) && c != '\n'; ++i)     {         s[i] = c;              }      s[i] = '\0';     printf("----------------------------------------\n");     printf("%s\n", s);      for (i = 0; s[i] != '\0'; i++)         printf("%d: %c, %d\n", i, s[i], s[i]);   }  验证1： 输入abcd,然后回车：   验证2： 输入^Z然后回车：  此时^Z被识别为EOF，结束循环，由于没有有效字符输入，所以不会有任何输出。  验证3： 输入abc^Z然后回车： 程序并没有结束，而是出现下面的情况：    这证明了之前的推测，在依此输入abc^Z,和回车键("\n")的时候，由于在缓冲区中^Z之前有abc，之后有\n，所以 此时^Z不被认为是EOF符号，而是ASCII为26的符号（SUB），其后面的\n也会丢失，循环由于没有被打破，所以仍然可以输入 新的字符，下面我们继续输入defg，再按回车。   缓冲区最后的回车('\n')打破了循环， 控制台打印了abcdefg，看似是7个字符，实际上是8个字符，c和d之间有个隐藏字符,也就是ASCII值为26的字符。  -------------------------------------------------------------------------------------------------------------------------------- 综上： ^Z在缓冲区中前面没有任何字符时候，会被程序看成是EOF（真正意义上），如果有，那么^Z将被看成是'\032'字符即ASCII为26的字符，getchar()将会从这个字符开始新一轮的读取(因为循环被打破的条件并没有被打破)。但是无论如何,^Z后面的字符都将会丢失包括回车键'\n'.   ------------------------------------------------------------------------------------------------------------------------------------------ 附录： 下面这个可以帮助理解：  #include <stdio.h> #include <string.h>  int main() {      int i;     int c;     int lim;     lim = 100;     char s[lim];          for (i = 0; i < lim - 1 && ((c = getchar()) != EOF) && c != '\n'; ++i)     {         s[i] = c;         printf("load!\n");     }      s[i] = '\0';     printf("----------------------------------------\n");     printf("%s\n", s);      for (i = 0; s[i] != '\0'; i++)         printf("%d: %c, %d\n", i, s[i], s[i]);   }

user: user-1
content: 加个hexdump函数，并调用，输出s的十六进制，你会有发现的void hexdump(char *s) { 	for (; *s; s++){ 		printf("%02X ", *s & 0xff); 	} }

user: user-1
content: 加个hexdump函数，并调用，输出s的十六进制，你会有发现的void hexdump(char *s) { 	for (; *s; s++){ 		printf("%02X ", *s & 0xff); 	} }
user-0 提问: C语言UDP通信过程中，recv函数接受不到数据

回复:
user: user-0
content: 引用 4 楼 sdghchj 的回复:[quote=引用 3 楼 火花20180731 的回复:] [quote=引用 2 楼 sdghchj 的回复:] 有点扯蛋吧，建了一个socket，绑定了一个本地ip端口，就能收到正确的数据？？？都还没有用connect，也不是用recvfrom，收到了从哪来的数据？通信怎么说得得有个源地址端口和目标地址端口四元组吧。 都说UDP了还connect......[/quote] udp是非连接的，但是C调用过程是可以connect绑定目标ip端口的，没有握手过程，connect后可以调用不用再传参目标ip端口的send和recv函数，否则就得调用sendto和recvfrom.[/quote] sendsock_creat() 函数里执行了connect函数。另外源地址目标ip和端口都用宏定义了，我没把具体地址放上来

user: user-1
content: 引用 3 楼 火花20180731 的回复:[quote=引用 2 楼 sdghchj 的回复:] 有点扯蛋吧，建了一个socket，绑定了一个本地ip端口，就能收到正确的数据？？？都还没有用connect，也不是用recvfrom，收到了从哪来的数据？通信怎么说得得有个源地址端口和目标地址端口四元组吧。 都说UDP了还connect......[/quote] udp是非连接的，但是C调用过程是可以connect绑定目标ip端口的，没有握手过程，connect后可以调用不用再传参目标ip端口的send和recv函数，否则就得调用sendto和recvfrom.

user: user-2
content: 引用 2 楼 sdghchj 的回复:有点扯蛋吧，建了一个socket，绑定了一个本地ip端口，就能收到正确的数据？？？都还没有用connect，也不是用recvfrom，收到了从哪来的数据？通信怎么说得得有个源地址端口和目标地址端口四元组吧。 都说UDP了还connect......

user: user-1
content: 有点扯蛋吧，建了一个socket，绑定了一个本地ip端口，就能收到正确的数据？？？都还没有用connect，也不是用recvfrom，收到了从哪来的数据？通信怎么说得得有个源地址端口和目标地址端口四元组吧。

user: user-0
content: 经过了无脑测试，我发现只要我把第65行的那个语句，从创建发送端地址的函数中拿走，放到别的任意的地方，都是一直阻塞在recv函数中，但是只要放在第65行，那么这个recv就能接收到正确的数据
user-0 提问: 萌新学c语言求帮忙！！！

回复:
user: user-0
content: 是用lf吗？

user: user-0
content: 引用 4 楼 qq_27468839 的回复：scanf里％f之间有逗号的话，输入的时候也要输入逗号谢谢🙏

user: user-1
content: 输入格式不对

user: user-2
content: scanf里％f之间有逗号的话，输入的时候也要输入逗号

user: user-0
content: 引用 2 楼 weixin_44777368 的回复：能运行出来才怪呢分开的

user: user-3
content: 能运行出来才怪呢

user: user-3
content: 你这是一起运行的？
user-0 提问: 心态崩了！用VS2017的C语言编写时scanf的第二个数值老是不对？？？er'qie'you'shi'hou'dui'you'shi'hou'bu'dui

回复:
user: user-0
content: 引用 6 楼 儿童节的回复:[quote=引用 5 楼 qq_25638919 的回复:] [quote=引用 4 楼 qq_25638919的回复:][quote=引用 3 楼 儿童节的回复:][quote=引用 2 楼 qq_25638919 的回复:] %f，%f呢，我输入的时候写1,3这样可以吗？  Don't be afraid. Have a try.[/quote] Oh, that's wrong still which accossion I have tried hounderds of millions times....[/quote] accossion=condition[/quote]    [/quote] 哈哈哈哈哈，谢谢谢谢谢谢谢谢谢谢谢谢！！！！

user: user-0
content: %f，%f呢，我输入的时候写1,3这样可以吗？

user: user-1
content: 引用 5 楼 qq_25638919 的回复:[quote=引用 4 楼 qq_25638919的回复:][quote=引用 3 楼 儿童节的回复:][quote=引用 2 楼 qq_25638919 的回复:] %f，%f呢，我输入的时候写1,3这样可以吗？  Don't be afraid. Have a try.[/quote] Oh, that's wrong still which accossion I have tried hounderds of millions times....[/quote] accossion=condition[/quote]

user: user-0
content: 引用 4 楼 qq_25638919的回复:[quote=引用 3 楼 儿童节的回复:][quote=引用 2 楼 qq_25638919 的回复:] %f，%f呢，我输入的时候写1,3这样可以吗？  Don't be afraid. Have a try.[/quote] Oh, that's wrong still which accossion I have tried hounderds of millions times....[/quote] accossion=condition

user: user-0
content: 引用 3 楼 儿童节的回复:[quote=引用 2 楼 qq_25638919 的回复:] %f，%f呢，我输入的时候写1,3这样可以吗？  Don't be afraid. Have a try.[/quote] Oh, that's wrong still which accossion I have tried hounderds of millions times....

user: user-1
content: 引用 2 楼 qq_25638919 的回复:%f，%f呢，我输入的时候写1,3这样可以吗？  Don't be afraid. Have a try.

user: user-1
content: scanf("%f%f",&r,&h ); 这里的双引号下面是  %f%f  ，那就要严格按照这个格式来输入，当然了，两个数肯定要隔开才行，但是只能用 （空格） 或者 （回车）。
user-0 提问: C程序重定义入口函数（比如名字叫myfunc）后，程序中可以有main函数吗？

回复:
user: user-0
content: 环境ti ccs3.3，给链接加了参数-e myfunc，结果发现程序入口点仍然是main函数，有大神给解惑吗？

user: user-0
content: 自己顶，还是懵懂中。。。

user: user-1
content: gcc试了一下，链接报错。

user: user-0
content: 引用 1 楼 老马何以识途的回复:你做成lib了，就不應該是提供main函數給對方調用了吧。他的程序有自己的main函數，那才是入口，你的main函數應該就沒用了，作用域只在你的lib中。 那么，他的程序就有两个main函数了？

user: user-2
content: c 是系统编程语言，所谓“系统”就是这个意思。

user: user-3
content: 你做成lib了，就不應該是提供main函數給對方調用了吧。他的程序有自己的main函數，那才是入口，你的main函數應該就沒用了，作用域只在你的lib中。
user-0 提问: 请大神提点！

回复:
user: user-0
content: #include <stdio.h> int main() { 	int h,m,t; 	printf("Enter a 24-hour time:");  	scanf("%d:%d",&h,&m); 	t=h*60+m; 	if(t-480<t-583){ 		printf("Closest departure time is 8:00 a.m,arriving at 10:16 a.m\n"); 	} 	else if(t-480>t-583) 	printf("Closest departure time is 9:43 a.m,arriving at 11:52 a.m\n"); 	else if(t-583<t-679){ 		printf("Closest departure time is 9:43 a.m,arriving at 11:52 a.m\n"); 	} 	else if(t-583>t-679) 	printf("Closest departure time is 11:19 a.m,arriving at 1:13 p.m\n"); 	else if(t-679<t-767) 	printf("Closest departure time is 11:19 a.m,arriving at 1:13 p.m\n"); 	else if(t-679>t-767) 	printf("Closest departure time is 12:47 p.m,arriving at 3:00 p.m\n"); 	else if(t-767<t-840) 	printf("Closest departure time is 12:47 p.m,arriving at 3:00 p.m\n"); 	else if(t-767>t-840) 	printf("Closest departure time is 2:00 p.m,arriving at 4:08 p.m\n"); 	else if(t-840<t-945) 	printf("Closest departure time is 2:00 p.m,arriving at 4:08 p.m\n"); 	else if(t-840>t-945) 	printf("Closest departure time is 3:45 p.m,arriving at 5:55 p.m\n"); 	else if(t-945<t-1140) 	printf("Closest departure time is 3:45 p.m,arriving at 5:55 p.m\n"); 	else if(t-945>t-1140) 	printf("Closest departure time is 7:00 p.m,arriving at 9:20 p.m\n"); 	else if(t-1140<t-1305) 	printf("Closest departure time is 7:00 p.m,arriving at 9:20 p.m\n"); 	else 	printf("Closest departure time is 9:45 p.m,arriving at 11:58 p.m\n"); 	return 0; }

user: user-0
content: 引用 3 楼 w__dong_123的回复:负的排除啊，飞机起飞了还管它干嘛 不对，这个程序是想找查询你输入时间最近的航班，及时在你输入时间以前也是可以的，因为这只是查询。

user: user-1
content: 负的排除啊，飞机起飞了还管它干嘛

user: user-0
content: 引用 3 楼 w__dong_123的回复:负的排除啊，飞机起飞了还管它干嘛 对哦，谢谢你，我马上就试试

user: user-0
content: 引用 1 楼 w__dong_123的回复:简单点的方法是将所有的时间转换成int型，然后用时间去相减 可是我不知道如何比较那些时间，还有负的怎么办

user: user-1
content: 简单点的方法是将所有的时间转换成int型，然后用时间去相减
user-0 提问: 学c语言用vista stdio哪个版本好，我用2017的只有c++

回复:
user: user-0
content: 引用 4 楼 潇潇-易水的回复:初学的话建议你使用visual stdio6.0  高版本的太智能了 ，不利于你理解很多东西，毕竟很多东西是需要你自己上手过才有深入的理解， 熟练了再用高版本的吧 好，谢谢

user: user-1
content: 初学的话建议你使用visual stdio6.0  高版本的太智能了 ，不利于你理解很多东西，毕竟很多东西是需要你自己上手过才有深入的理解， 熟练了再用高版本的吧

user: user-2
content: 可以对照谭浩强的那本书来

user: user-3
content: 6.0的合适

user: user-2
content: C语言用visual stdio6.0应该比较合适，短小精悍~
user-0 提问: 请教switch语句问题，谢谢啦

回复:
user: user-1
content: 引用 4 楼 weixin_44472504 的回复:[quote=引用 1 楼 有点贪玩的回复:]case 2:  {   if(c>b)    printf("max=%d",c);  进了你这个if 所以只打印max啊 谢谢啦谢谢啦，知道怎么回事了[/quote]  int max(const int a, const int b) {     return a > b ? a : b; }  int min(const int a, const int b) {     return a > b ? b : a; }  int main() {     int a,b,c,max,min;     printf("input three numbers:");     scanf("%d%d%d", &a, &b, &c);     printf("max=%d, min=%d",  max(max(a, b), c), min(min(a, b), c));     return 0; }  试试这个吧

user: user-0
content: 引用 2 楼 火花20180731的回复:你这都条件判断语句了还非要在外面再嵌套个switch，真是脱裤子放屁----多此一举！ 刚开始学，菜的一塌糊涂

user: user-0
content: 引用 1 楼 有点贪玩的回复:case 2:  {   if(c>b)    printf("max=%d",c);  进了你这个if 所以只打印max啊 谢谢啦谢谢啦，知道怎么回事了

user: user-2
content: 你这都条件判断语句了还非要在外面再嵌套个switch，真是脱裤子放屁----多此一举！

user: user-1
content: case 2:  {   if(c>b)    printf("max=%d",c);  进了你这个if 所以只打印max啊
user-0 提问: 我是C语言新手，问一道题，用递归的方法来做。

回复:
user: user-1
content: #include <stdio.h>  void solve(float rest, int level) {   if (level > 1)     solve((rest + 1.0 / level) / (1 - 1.0 / level), level - 1);   else     printf("there is a total of %.0f fish\n", rest); }  int main() {   solve(11, 5);    return 0; }
user-0 提问: 输入后结果总是出现无限循环，求大神指教

回复:
user: user-1
content: 我个新手都不想看。。

user: user-2
content: 先这样，再这样，再这样就可以了。

user: user-3
content: 自己都不看看发的帖是一坨什么东西么？

user: user-4
content: 删了重发吧，整理下

user: user-0
content: 引用 1 楼 niiiloc的回复:自己都不看看发的帖是一坨什么东西么？ 不好意思，没用过这个平台，第一次，请见谅

user: user-0
content: 引用 3 楼 qq_44738203的回复:我个新手都不想看。。 同是新手…………，我找到原因了
user-0 提问: 用C语言求PI的第100位，是第100位！不是后100位！

回复:
user: user-1
content: 乘法不好逼近吧，应该找一个加法的展开来计算

user: user-2
content: 引用 3 楼 lin5161678 的回复:[quote=引用 2 楼 weixin_44771162 的回复:] [quote=引用 1 楼 lin5161678的回复:]那啥  PI没有后100位 逗我呢，圆周率没有100位？图里4/3后面还有一大长串啊，截图没截下来[/quote] 123456789后3位是789 987654321后4位是4321 现在你回答我 圆周率后100位是什么 你逗我呢 无限不循环小数有后100位?[/quote]  这话在理，怕是楼主以为的后100位是小数点后一百位，而不是正在无限不循环的后一百位，这神特么后一百位，找个终点试试？

user: user-0
content: 引用 3 楼 lin5161678的回复:[quote=引用 2 楼 weixin_44771162 的回复:] [quote=引用 1 楼 lin5161678的回复:]那啥  PI没有后100位 逗我呢，圆周率没有100位？图里4/3后面还有一大长串啊，截图没截下来[/quote] 123456789后3位是789 987654321后4位是4321 现在你回答我 圆周率后100位是什么 你逗我呢 无限不循环小数有后100位?[/quote] 小数点后100位啊，还有我问的是小数点后第100位，没表达清楚我的错

user: user-3
content: 引用 2 楼 weixin_44771162 的回复:[quote=引用 1 楼 lin5161678的回复:]那啥  PI没有后100位 逗我呢，圆周率没有100位？图里4/3后面还有一大长串啊，截图没截下来[/quote] 123456789后3位是789 987654321后4位是4321 现在你回答我 圆周率后100位是什么 你逗我呢 无限不循环小数有后100位?

user: user-0
content: 引用 1 楼 lin5161678的回复:那啥  PI没有后100位 逗我呢，圆周率没有100位？图里4/3后面还有一大长串啊，截图没截下来

user: user-4
content: 或者你用那个著名的无聊的几行代码求PI的, 就是这个  int a=10000,b,c=2800,d,e,f[2801],g;  main() { 	for(;b-c;) 		f[b++]=a/5;  	for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)  		for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); }

user: user-4
content: 最简单的用  PI/4 = 4 atan(1/5) - atan(1/239) 微快点的用  高斯-勒让德算法,  superPI 好像用的这个,  不是很快, 算几千万位还是很快的.. 现在最快的  楚德诺夫斯基公式,  要算到上亿位最好用这个..

user: user-3
content: 记录相邻两次计算结果 相减 结果绝对值小于 0.00[100个]01 就是精度达到小数点后100位了

user: user-0
content: 引用 6 楼 niiiloc的回复:乘法不好逼近吧，应该找一个加法的展开来计算 愁的就是这个，是加法就不会在这找大佬求解了

user: user-3
content: 那啥  PI没有后100位
user-0 提问: sort函数。

回复:
user: user-1
content: void sort(int *a, int b) { 	int i=0, j=0, v=0;  	for( i=0 ; i<b ; i++ ) 	{ 		for( j=0 ; j<b-i-1 ; j++ ) 		{ 			if( a[j]>a[j+1] ) 			{  				v	  = a[j]  ; 				a[j]  = a[j+1]; 				a[j+1]= v  ; 			} 		} 	} }

user: user-2
content: 如果你要完整的代码的话，我也给你发一下哈，记得给好评哦。。。 #include<stdio.h> #include<stdlib.h>  #define N 5  void sort(int a[],int n);  int main (void) { 	int a[N]; 	int i,k; 	printf("请输入5个整数："); 	for(i=0;i<5;i++) 		scanf("%d",a+i); 	sort(a,N); 	for(k=0;k<N;k++) 		printf("%-4d",a[k]);  	system("pause"); 	return 0; } void sort(int a[],int n) { 	int i,j; 	int temp=0; 	for(i=0;i<n-1;i++) 		for(j=i+1;j<n;j++) 		{ 			if(a[i]>a[j]) 			{ 				temp=a[i]; 				a[i]=a[j]; 				a[j]=temp; 			} 		} }

user: user-2
content: void sort(int a[],int n) { 	int i,j; 	int temp=0; 	for(i=0;i<n-1;i++) 		for(j=i+1;j<n;j++) 		{ 			if(a[i]>a[j]) 			{ 				temp=a[i]; 				a[i]=a[j]; 				a[j]=temp; 			} 		} }

user: user-3
content: v=a[j];       a[j]=a[j+1];       a[j+1]=v;

user: user-4
content: v=a[j]; a[j]=a[j+1]; a[j+1]=v;

user: user-0
content: 对第一次有点紧张。。。
user-0 提问: 大一新生初学c，请教大佬解释一下答案，谢谢~

回复:
user: user-1
content: 这画质打扰了！

user: user-2
content: 指针p指向数组a，当指针名或者数组名后边没有[ ]的时候，指的就是数组头位置，也就是a[0],所以*p指的是a[0]=1，所以在f里循环加了五次，都加在a[0]上了，从1加到了6，其他都没变。

user: user-3
content: a是一个整形指针，传递进函数后，相当于a[0]+5，打印出来，也只有a[0]有变化
user-0 提问: C 位字段变量占用的内存大小是怎么规定的？

回复:
user: user-1
content: 1、局部对齐，按照字段的大小“凑”字节的整数倍 2、一个字段不能跨越相邻的两个字节，所以有“空洞” 3、全局对齐，所有字段的内存计算必须是2的次方值
user-0 提问: 第二个scanf用了第一个scanf已显示的数据

回复:
user: user-0
content: 可scanf函数在读取回车后，电脑读取输入的数字后删除键盘中的数字，即1.1   1.2回车，键盘缓冲区只剩回车，下面的scanf不应该会输出已被删除的上面的数据1.2啊

user: user-1
content: 在输入流中，数据项必须由空格、制表符和新行符分割。逗号和分号等不是分隔符，比如以下代码： scanf("%d%d",&r,&c); 将接受输入 10 20，但遇到 10,20 则失败。  scanf函数返回值为int型。 如果a和b都被成功读入，那么scanf的返回值就是2； 如果只有a被成功读入，返回值为1； 如果a和b都未被成功读入，返回值为0；  你读入的时候加了分号，导致scanf读入第二个数时失败，所以第二个数仍然是上次读入的值，scanf返回值为1，你可以输出一下看看。 https://baike.baidu.com/item/scanf/10773316?fr=aladdin

user: user-1
content: 第一次scanf成功了啊，已经将1.2赋值到了j分配的内存里了，第二次scanf失败，j内存里的值没变还是1.2.不是输出的缓冲区的数字，而是j分配的内存里的数字。。。。。。。。。。

user: user-0
content: 我用%d也是，上面输入1 空格2 下面3 分号4。结果也是3，2

user: user-2
content: %lf%lf这种格式本来就很难区分   中间用 空格或逗号等做分割 %lf %lf  %lf,%lf %lf;%lf等都可以
user-0 提问: 想知道第一行那里错了

回复:
user: user-1
content: emmmm……头文件stdio.h

user: user-2
content: stdio，std即standard，标准的，io即input和output，输入和输出，所以stdio意思是标准输入输出，也就是说，stdio.h这个头文件包含的函数是标准输入输出一类的。记住这个，以后应该就不会出错了。

user: user-3
content: 头文件的名称打错了。

user: user-4
content: 引用 2 楼 weixin_44770192 的回复:引用 1 楼 zgl7903 的回复：输出信息中提示的是什么错误？怎么看？ 点击一下  那个error 鼠标往上滚

user: user-5
content: 头文件名字 #include<stdio.h>

user: user-0
content: 引用 1 楼 zgl7903 的回复：输出信息中提示的是什么错误？怎么看？

user: user-4
content: 输出信息中提示的是什么错误？
user-0 提问: 梦想总是要有的，万一实现了呢！

回复:
user: user-1
content: 没有快速入门的方法，走的路多了，看的书多了，也就熟能生巧了。

user: user-2
content: “学习编程我也有我自己的计划，我会利用课余时间去看书和练习敲代码，将理论和实践结合，在反复的敲代码中学习知识，在学习编程上我打算每周花30个小时以上，通过不停地练习来提高自己。”  最近好几个这样的帖子。是你们学校老师留的作业吗？看起来怪怪的、像是传销的口号。。。除了我引用的这句、基本都是废话。

user: user-3
content: 引用 2 楼 weixin_44769911 的回复:引用 1 楼 六道佩恩 的回复：既然你没啥想问的，那就结贴给分吧我想向您询问一下，对于初学者想快速成长有没有什么好的办法原来你能一句话说明白呀

user: user-0
content: 引用 1 楼 六道佩恩 的回复：既然你没啥想问的，那就结贴给分吧我想向您询问一下，对于初学者想快速成长有没有什么好的办法

user: user-4
content: 既然你没啥想问的，那就结贴给分吧