Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 求推荐靠谱的c语言编译器

回复:
user: user-1
content: 不是大佬，但是学一门语言，根本不需要一个月，基本要求就是涉及到的语法都会写会调试，完成一定的需求，不涉及太复杂的算法都能搞定，学习语言这样的要求已经足够了

user: user-0
content: 引用 1 楼 SuperDay的回复:中文报错？楼主是猴子请来的逗比吗？初学者找个简单的工具就好了，不要那么挑剔！不要对什么都不满意！你学不好语言不是工具的错，就是你不行！简单的dev就好了，不要把时间浪费在熟悉新工具上面，只是学习一门语言而已，你以为你要搞一个操作系统出来吗？ 您是大佬，

user: user-2
content: 目前我用的是CodeBlocks，出错的那一行用红色方块标记，自己找错误原因。还有VC++6.0，学校上机用的，出错会在下面英文提示。

user: user-1
content: 中文报错？楼主是猴子请来的逗比吗？初学者找个简单的工具就好了，不要那么挑剔！不要对什么都不满意！你学不好语言不是工具的错，就是你不行！简单的dev就好了，不要把时间浪费在熟悉新工具上面，只是学习一门语言而已，你以为你要搞一个操作系统出来吗？
user-0 提问: 求解为什么运行的程序里面有一个随机值？

回复:
user: user-0
content: 引用 6 楼 bsnow 的回复： for (j = 0; j < 5; j++)  你sum2的循环次数有问题啊。      for (j = 0; j < 5; j++)     {         sum2 = 0;         for (i = 0; i < 3; i++)         {             sum2 += c[i][j];         }         c[i][j] = (sum2) / 3;     } 谢谢

user: user-0
content: 引用 7 楼 自信男孩 的回复：[quote=引用 4 楼 Arthur169 的回复:] [quote=引用 2 楼 自信男孩 的回复：]float c[4][5] = {0}, sum1, sum2; 程序没问题的，最后一个是一个随机数，因为c没有初始化，如果c初始化为0，那么输出结果最后一个是0.  通过查看你的程序，你的程序里没有对c[3][4]这个元素赋值的，所以这个位置的元素输出的是随机数。还是不行诶 那个位置会输出0[/quote] 你没明白我的意思呢，你没有对这个位置的元素赋值，原来初始化为0了，所以最后输出还是0.[/quote]好的 谢谢

user: user-0
content: 引用 3 楼 user-3 的回复：c[i][j] = sum1; 这行代码，这个时候i = 0, j = 5, 这样操作好吗？还是不行诶

user: user-1
content: 引用 4 楼 Arthur169 的回复:[quote=引用 2 楼 自信男孩 的回复：]float c[4][5] = {0}, sum1, sum2; 程序没问题的，最后一个是一个随机数，因为c没有初始化，如果c初始化为0，那么输出结果最后一个是0.  通过查看你的程序，你的程序里没有对c[3][4]这个元素赋值的，所以这个位置的元素输出的是随机数。还是不行诶 那个位置会输出0[/quote] 你没明白我的意思呢，你没有对这个位置的元素赋值，原来初始化为0了，所以最后输出还是0.

user: user-2
content: for (j = 0; j < 5; j++)  你sum2的循环次数有问题啊。      for (j = 0; j < 5; j++)     {         sum2 = 0;         for (i = 0; i < 3; i++)         {             sum2 += c[i][j];         }         c[i][j] = (sum2) / 3;     }

user: user-0
content: 引用 2 楼 自信男孩 的回复：float c[4][5] = {0}, sum1, sum2; 程序没问题的，最后一个是一个随机数，因为c没有初始化，如果c初始化为0，那么输出结果最后一个是0.  通过查看你的程序，你的程序里没有对c[3][4]这个元素赋值的，所以这个位置的元素输出的是随机数。还是不行诶 那个位置会输出0

user: user-3
content: c[i][j] = sum1; 这行代码，这个时候i = 0, j = 5, 这样操作好吗？

user: user-1
content: float c[4][5] = {0}, sum1, sum2; 程序没问题的，最后一个是一个随机数，因为c没有初始化，如果c初始化为0，那么输出结果最后一个是0.  通过查看你的程序，你的程序里没有对c[3][4]这个元素赋值的，所以这个位置的元素输出的是随机数。

user: user-0
user-0 提问: 自编车号

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

user: user-2
content: #include <stdio.h> #include <string.h> #include <ctype.h>  #define N 5   int main() {      int i;     char str[N+1], cnt = 0;      scanf("%s", str);      if (strlen(str) < N || strlen(str) > N) {         printf("no!\n");         return -1;     }      if (!isdigit(str[N-1])) {    //last bit must be digit         printf("no!\n");         return -1;     }      for (i = 0; i < N; i++)         if (islower(str[i])) {             printf("no!\n");             return -1;         }         if (isupper(str[i]) && str[i] != 'I' && str[i] != 'O')             cnt++;      if (cnt < 2) {         printf("no!\n");         return -1;     }      printf("ok!\n");   } 进一步优化～ 供参考～

user: user-2
content: #include <stdio.h> #include <string.h> #include <ctype.h>  #define N 5   int main() {      int i;     char str[N+1], cnt = 0;      scanf("%s", str);      if (strlen(str) < N) {         printf("no!\n");         return -1;     }      if (!isdigit(str[N-1])) {    //last bit must be digit         printf("no!\n");         return -1;     }      for (i = 0; i < N; i++)         if (isupper(str[i]) && str[i] != 'I' && str[i] != 'O')             cnt++;      if (cnt < 2) {         printf("no!\n");         return -1;     }      printf("ok!\n");       /*     int i,s,x,y,flag;     char P[N+1];     scanf("%s",P);     if((P[N-1]>'9')||(P[N-1]<'0'))     {         flag=0;     }     else     {         x=0;         y=0;         for(i=0;i<(N-1);i++)         {             if((P[i]>='A')&&(P[i]<='Z')&&(P[i]!='I')&&(P[i]!='O'))                 x++;         }          for(i=0;i<(N+1);i++)         {             if((P[i]>='0')&&(P[i]<='9'))                 y++;         }         if(x<=4&&y<=4&&x>=2)         {             flag=1;         }         else         {             flag=0;         }     }     if(flag)     {         printf("ok.\n");     }     else     {         printf("no.\n");     }     */ } 供参考～  把每个限制条件判断一下，不需要太复杂的～

user: user-3
content: 应该少了一个判断， x+y是否等于4  如果出现了小写字母或者其他非法符号的情况下     x+y<4 也是非法的输入吧

user: user-4
content: printf("%s\n",flag?"ok":"no"); 最后一段这样改。

user: user-5
content: 简单一点：  #include <stdio.h>  int main() {   char b[] = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789", n[6], i, j;    for (i = 0; i < 6 && (j = getchar()) != 10;) n[i++] = j;   if (i != 5 || j != 10) puts("no.");   else   {     for (i = j = 0; i < 5; n[i++] = j, j = 0) while (b[j] && n[i] != b[j]) j++;     if (n[4] > 23 && n[4] < 34) for (i = 0; i < 4; n[i++] < 24 ? j++ : 0);     j > 1 ? puts("ok.") : puts("no.");   }    return 0; }

user: user-6
content: 有什么问题吗？还请楼主明示！
user-0 提问: 求解呀 大一新生期末大作业之一（用C语言噢）

回复:
user: user-1
content: 可以看一下这篇文章《C语言大作业之超市管理系统》 https://www.weupgo.cn/?p=545，有源码有解释

user: user-1
content: 可以看一下这篇文章《C语言大作业之超市管理系统》 https://www.weupgo.cn/?p=545，他解释的挺好的

user: user-0
content: 引用 4 楼 與蘤舊縐 的回复：引用 3 楼 CQUPT-YYJ 的回复:[quote=引用 2 楼 與蘤舊縐 的回复：]这迷宫也太简单了吧，深度优先和广度优先都可以做，用不着动用A*大法没学到什么优先  深度优先或者广度优先的思想，递归实现，最不动脑子的做法了，没学过的话查一下马上就会 你要有兴趣的话可以查一下A*，游戏常用的寻路算法，效率比上面那俩高多了，写起来略麻烦点[/quote]好 谢谢了

user: user-0
content: 引用 4 楼 與蘤舊縐 的回复：引用 3 楼 CQUPT-YYJ 的回复:[quote=引用 2 楼 與蘤舊縐 的回复：]这迷宫也太简单了吧，深度优先和广度优先都可以做，用不着动用A*大法没学到什么优先  深度优先或者广度优先的思想，递归实现，最不动脑子的做法了，没学过的话查一下马上就会 你要有兴趣的话可以查一下A*，游戏常用的寻路算法，效率比上面那俩高多了，写起来略麻烦点[/quote]👌 🙏了

user: user-2
content: 引用 3 楼 CQUPT-YYJ 的回复:引用 2 楼 與蘤舊縐 的回复：这迷宫也太简单了吧，深度优先和广度优先都可以做，用不着动用A*大法没学到什么优先  深度优先或者广度优先的思想，递归实现，最不动脑子的做法了，没学过的话查一下马上就会 你要有兴趣的话可以查一下A*，游戏常用的寻路算法，效率比上面那俩高多了，写起来略麻烦点

user: user-0
content: 引用 2 楼 與蘤舊縐 的回复：这迷宫也太简单了吧，深度优先和广度优先都可以做，用不着动用A*大法没学到什么优先

user: user-2
content: 这迷宫也太简单了吧，深度优先和广度优先都可以做，用不着动用A*大法

user: user-3
content: 这图画的真不错啊，等楼主写程序出来看看
user-0 提问: c语言输出图案

回复:
user: user-1
content: 第一个很好搞，第二个算好行数和*号关系，第三个控制好空格和行数的关系

user: user-1
content: 第一个很好搞，第二个算好行数和*哥关系，第三个控制好空格和行数的关系

user: user-2
content: 初学更要自己动手写！

user: user-0
content: 引用 1 楼 user-2的回复:这么简单的题都不会做吗？你也敢发上来 那这位给大佬解答一下呗，刚开始学

user: user-2
content: 这么简单的题都不会做吗？你也敢发上来
user-0 提问: 求教为什么这个会出现警告错误，然后无法正常输入数据

回复:
user: user-1
content: #include <stdio.h> #include <stdlib.h> #include <string.h> #define initial 100 #define increased 10  typedef int ElemType; typedef struct taglist {     ElemType *base;     int length;     int size; }List;  void input(ElemType*l) {     scanf("%d",l); }  void visit(ElemType*l) {     printf("%d ",*l); }  void create(List*l,ElemType n) {     ElemType s,*p;     p=l->base=(ElemType*)malloc(initial*sizeof(ElemType));     l->length=n;     l->size=initial;     //for (;n<0;n--)     for (;n >=0;n--)     {         input(&s);         *p++=s;     } }  void list(List*l) {     int i;     ElemType *p=l->base;     //for (i=1;i<=l->length;i++)     for (i=0;i<l->length;i++)         visit(p++); } int insert(List*l,int i,ElemType e) {     ElemType *base,*p,*q;     if (i<1||i>l->length+1)         return 0;     if (l->length>=l->size)     {         l->size+=increased;         base=(ElemType*)realloc(l->base,l->size*sizeof(ElemType));         l->base=base;     }     q=l->base+i-1;     for (p=l->base+l->length-1;p>=q;--p)         *(p+1)=*p;     *q=e;     ++(l->length);     return 1; }  //void paixu(List*l,ElemType a) void paixu(List*l) {     //ElemType i,*q;     ElemType i, tmp;     ElemType *p=l->base;     //for (i=1;i<=l->length;i++)     for (i=0;i<l->length;i++)     {         if(*p>*(p+1))         {             tmp=*(p+1);             *(p+1)=*p;             *p = tmp;             p++;         }     } } int get(List*l,int i,ElemType *e) {     if(i<1||i>l->length)         return 0;     if (e!=NULL)*e=*(l->base+i-1);     return 1; }  int main() {     //int i,n,*q,m,x,e,a,y;     int i,n,m,x,e,a,y;      List *q;      q = (List *)malloc(sizeof(List));     if (!q)         return -1;     scanf("%d",&n);     //create(*q,n);     create(q, n);     scanf("%d",&m);     //paixu(q, a);     paixu(q);   //冗余的a     for (i=1;i<x;i++)    //x拿来的，初始化在哪？     {         //int *b,*c;         int b, c;         //get(q,i,*b);         get(q,i, &b);         //get(q,i,*c);         get(q,i, &c);         //if (*b<=m&&*c>=m)         if (b<=m&&c>=m)            y=i;         break;     }     insert(q,y,e);     list(q);     return 0; }  供参考～  程序里还有问题，比如x是做什么的，在哪赋值（初始化）的等等

user: user-2
content: 引用 2 楼 proorck2019的回复:[quote=引用 1 楼 qq_45798109的回复:]scanf("%d",&l); 这里没错，l是个指针。[/quote] 没注意，打扰了。。。

user: user-3
content: 引用 1 楼 qq_45798109的回复:scanf("%d",&l); 这里没错，l是个指针。

user: user-2
content: scanf("%d",&l);
user-0 提问: 求解一个c语言知识点

回复:
user: user-0
content: 好的谢谢你们，非常感谢

user: user-1
content: 引用 4 楼 liups 的回复:你这个不叫递归，请注意这点！ 原理吗，看这里（来自北大 郭炜 新标准C++）：  更正，是递归（报歉没看清楚）

user: user-1
content: 你这个不叫递归，请注意这点！ 原理吗，看这里（来自北大 郭炜 新标准C++）：

user: user-2
content: mysqrt  递归函数，自己调用自己。

user: user-0
content: 引用 1 楼 user-3的回复:那么，有什么问题吗？？？ 就是它表达的含义是什么呢

user: user-3
content: 那么，有什么问题吗？？？
user-0 提问: 为什么显示结果中score都是0啊，求解！

回复:
user: user-0
content: 我已经发现哪里错了，嘿嘿

user: user-0
content: 不好意思，我也不知道复制进去就这样了

user: user-1
content: 代码不友好，难以回答。
user-0 提问: 输不出去，请大神指点错误！！！

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

user: user-2
content: 要学会看提示信息，错误信息等待，看不懂可以求助翻译软件

user: user-3
content: 怎么可能能输出，程序有一个error，先解决了这个error，程序正常编译通过了才可能输出。

user: user-4
content: 大于号不对，用英文的。
user-0 提问: 数据结构代码问题

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

user: user-0
content: 嗯嗯，对的得取地址，我脑子一时懵住了，

user: user-2
content: 引用 2 楼 Pink_Piggy 的回复:我已经用Init_LinkList将head初始化了呀 建议去看看形参和实参的区别。你这样根本改变不了head的值。

user: user-3
content: if (head == NULL) exit(0); 这个判断哪里来的，传递过来的head还是没有初始化嘛，编译器提示没有初始化，你还是没有初始化呢  void Init_LinkList(LinkList *head)  {  assert(head != NULL); *head = (LinkList)malloc(sizeof(**head)); if (*head == NULL)      exit(0);    (*head)->next = NULL;  (*head)->data.num = 0;  } 供参考～  调用时注意head前加&； 即： Init_LinkList(&head);

user: user-0
content: 好的好的，谢谢你啦

user: user-4
content: head传递到函数里面，并不会返回回来的，好好读书

user: user-0
content: 引用 3 楼 SuperDay的回复:[quote=引用 2 楼 Pink_Piggy的回复:]我已经用Init_LinkList将head初始化了呀 这个函数并不能修改head的值[/quote] void Init_LinkList(LinkList head)  {  	assert(head != NULL);  	if (head == NULL) exit(0);    	head->next = NULL;  	head->data.num = 0;  }  这这这，我觉得没毛病嘛，哎呀，好难啊

user: user-4
content: 引用 2 楼 Pink_Piggy的回复:我已经用Init_LinkList将head初始化了呀 这个函数并不能修改head的值

user: user-0
content: 我已经用Init_LinkList将head初始化了呀

user: user-5
content: 应该有一句head=...,你的代码里没有啊。
user-0 提问: 求各位大哥看看哪里错了，最后一个测试点总是不过，心态崩了wwww

回复:
user: user-0
content: 引用 5 楼 SuperDay 的回复：也就是1M而已，不应该出问题的这个二维数组用malloc二级指针分配的 我刚才试了 电脑直接黑屏 强制关机

user: user-1
content: 也就是1M而已，不应该出问题的

user: user-0
content: 求大哥解救

user: user-0
content: 引用 2 楼 proorck2019 的回复：是不是因为s太大了？改用malloc？不行 这样大的数组用malloc我电脑直接黑屏

user: user-2
content: 是不是因为s太大了？改用malloc？

user: user-0
content: 投的c语言板块，因为只有输入输出流用的cpp
user-0 提问: 萌新问题呀 太难了求大神给我解答一下

回复:
user: user-1
content: 大一这个三个数应该是用冒泡法

user: user-2
content: 写的不对发出来，程序写好了再去补流程图

user: user-0
content: 引用 1 楼 user-2的回复:这么简单的问题也好意思发出来，楼主是怎么混到大学里面的？ 考进去的呀 之前对这个一点也不懂 然后大一刚开学学这些还不是特别了解 现在就知道要用if函数来写 但感觉写的不对 然后我程序匡图我也不知道是咋画呀

user: user-2
content: 这么简单的问题也好意思发出来，楼主是怎么混到大学里面的？
user-0 提问: 拜托各位大佬啦

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

user: user-2
content: 引用 3 楼 lin5161678 的回复:[quote=引用 2 楼 自信男孩 的回复:] struct number { int val; int time; //次数 }; 可以考虑用结构体，代码建议自己写写 time不太适合做变量名 已经有标准库函数是这个名字了  虽然用在这里不会导致出错  [/quote] 那就改一下，没什么问题吧。解决编译错误是最基本的～

user: user-3
content: #include<iostream> using namespace std; int getin(); class test { 	int num; 	int * date; public: 	test() :num(0), date(NULL) {} 	test(int n, int da[]); 	void stor(); 	//friend ostream & operator<<(ostream &os, const test & st); 	void tj()const; 	void getn(); 	~test() { delete[]date; }; };  test::test(int n, int da[]) { 	num = n; 	date = da; } void test::getn() { 	do { 		num = getin(); 		if (num <= 1) 			cout << "整数的个数太少,重新输入\n";  	} while (num <= 1); 	date = new  int[num]; 	for (int i = 0; i < num; i++) 		date[i] = getin();  } void test::stor() { 	for (int i = 0; i < num; i++) 		cout << "  " << date[i]; 	int tema, temb, tem;  	for (int i = 0, j = num-1; i < j; i++, j--) 	{ 		for (int f = i; f < j; f++) 		{ 			if (date[i]>date[f]) 			{ 				tema = date[i]; 				date[i] = date[f]; 				date[f] = tema; 			} 			if (date[j] < date[f]) 			{ 				temb = date[j]; 				date[j] = date[f]; 				date[f] = temb; 			} 		} 	} 	cout << "stor" << endl; 	for (int i = 0; i < num; i++) 		cout << "  " << date[i]; 	cout << endl; } void test::tj()const { 	int i, flag, tem, n = 0; 	for (i = 0; i < num; i++) 	{ 		n = 0; 		flag = 0; 		tem = date[i]; 		for (int k = 0; k < i; k++) 			if(tem == date[k])//判断统计首数是否统计过 		{ flag = 1; break; }//统计过进入下一次循环 		if (flag == 1)continue; 		for (int j = i; j < num; j++) 			if (tem == date[j]) 				n++;//统计数目 		cout << date[i] << ":" << n << endl; 	} } int getin() { 	int temp = 0; 	cin >> temp; 	if (!cin) 	{ 		cout << "输入错误！\n"; 		cin.clear(); 		cin.ignore(1024, '\n'); 		getin(); 	} 	else if (temp > 100000) 	{ 		cout << "请输入小于100000的整数\n"; 		cin.ignore(1024, '\n');  	} 	else 		return temp; } int main() { 	test ts; 	ts.getn(); 	ts.stor(); 	ts.tj(); 	return 0; } 试着做了一下，刚开始学，学艺不精·请大佬指点

user: user-4
content: 引用 2 楼 自信男孩 的回复:struct number { int val; int time; //次数 }; 可以考虑用结构体，代码建议自己写写 time不太适合做变量名 已经有标准库函数是这个名字了  虽然用在这里不会导致出错

user: user-2
content: struct number { int val; int time; //次数 }; 可以考虑用结构体，代码建议自己写写

user: user-5
content: 排序会不会，写先排序之后，再输出，然后调整一下输出格式，先上代码看看吧
user-0 提问: 大佬这怎么办啊

回复:
user: user-1
content: 在printf后面加一条语句c = 0;就可以了。淡然这条语句和printf都属于循环体内。

user: user-0
content: 所以要重开一个函数吗

user: user-2
content: 每次循环c都需要清0，才能准确统计
user-0 提问: c语言数组函数

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:你的max和min没有初始化； 可以试着做一下修改：max = min = 0;即指向第一个数组的下表；然后n从1开始循环～ 请问是加在第4行吗

user: user-1
content: max = min = a[0]

user: user-2
content: 你的max和min没有初始化； 可以试着做一下修改：max = min = 0;即指向第一个数组的下表；然后n从1开始循环～

user: user-0
content: 谢谢谢谢

user: user-3
content: #include<stdio.h> void MaxMinExchang(int a[], int n) { 	int max = 0; 	int min = 0; 	for (int i = 0; i < n; i++) 	{ 		if (a[i] > a[max]) 		{ 			max = i; 		} 		else 		{ 			if (a[i] < a[min]) 			{ 				min = i; 			} 		} 	}  	int t = a[max]; 	a[max] = a[min]; 	a[min] = t; } int main() { 	int a[10]; 	int n; 	printf("Input 10 numbers:"); 	for (n = 0; n < 10; ++n) 	{ 		scanf("%d", &a[n]); 	} 	printf("Exchange results:"); 	MaxMinExchang(a, 10); 	for (n = 0; n < 10; ++n) 	{ 		printf("%4d", a[n]); 	} 	return 0; }  以下是VS2015调试结果

user: user-0
content: 能帮我改一下吗，实在搞不明白

user: user-2
content: 引用 3 楼 ?Victor.?? 的回复:[quote=引用 1 楼 自信男孩的回复:]你的max和min没有初始化； 可以试着做一下修改：max = min = 0;即指向第一个数组的下表；然后n从1开始循环～ 请问是加在第4行吗[/quote] 就是在进入循环之前赋值为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-2
content: 引用 2 楼 user-3 的回复:while(scanf("%s", &n) != EOF)不对 题目只有1次输入 不用循环输入

user: user-3
content: while(scanf("%s", &n) != EOF)

user: user-3
content: while(scanf("%s", n) != EOF)
user-0 提问: C语言求助  找100内的素数

回复:
user: user-1
content: #include<stdio.h> int main() { 	int x; 	int i; 	int insprm=1; 	for(x=0;x<=100;x++) 	{ 		for(i=2;i<x;i++){ 			if(x%i==0){ 				insprm=0; 				break; 			} 		} 		//if(insprm=1){ 		if(x >= 2 && insprm==1){ 			printf("%d  ",x); 		} 		insprm = 1; 	}   	return 0; } 供参考～

user: user-2
content: 引用 2 楼 世中仙 千般留恋是往年的回复:#include<stdio.h> main() {     int a=3,b=2;     int num,c;     printf("2 ");     for(a=3;a<100;a++)     {         num=0;         for(b=2;b<a;b++)          {             c=!(a%b);             num+=c;         }         if(num==0)         {             he+=a;             printf("%d ",a);         }         else ;     }     return 0; } 没有收好尾，多了个空格。。。 供参考。 本来还求了个素数之和，没删干净。。。

user: user-3
content: #include<stdio.h> int main(){     int x;     int i;     for(x=2;x<=100;x++){         int insprm=1;         for(i=2;i<x;i++){             if(x%i==0){                 insprm=0;                 break;             }          }         if(insprm==1){             printf("%d ",x);         }     }   return 0; }

user: user-2
content: #include<stdio.h> main() {     int a=3,b=2;     int num,c;     printf("2 ");     for(a=3;a<100;a++)     {         num=0;         for(b=2;b<a;b++)          {             c=!(a%b);             num+=c;         }         if(num==0)         {             he+=a;             printf("%d ",a);         }         else ;     }     return 0; } 没有收好尾，多了个空格。。。 供参考。
user-0 提问: 求解两道题

回复:
user: user-1
content: 如果是求值，为啥不自己编辑，编译运行一下呢

user: user-2
content: 建议你debug或者按着循环手写推一下，这没什么好说的吧，最前面列一行变量，行表示循环次数，一行一行写下去，另外~~这书写的代码略显

user: user-0
content: 希望大家帮帮忙吧

user: user-0
content: 第一题0,5 第二题4

user: user-0
content: 引用 3 楼 自信男孩的回复:如果是求值，为啥不自己编辑，编译运行一下呢 知道运行结果，但不知道为什么是这结果

user: user-0
content: 引用 2 楼 與蘤舊縐的回复:建议你debug或者按着循环手写推一下，这没什么好说的吧，最前面列一行变量，行表示循环次数，一行一行写下去，另外~~这书写的代码略显 知道运行结果，但不知道为什么是这结果
user-0 提问: 数据结构c语言编程

回复:
user: user-1
content: 引用 4 楼 qq_45849145 的回复:[quote=引用 1 楼 liups的回复:]建议看书然后自己做，实在不想做的耐心去网上搜索，肯定能找到的。大家凭什么帮你完成 作业 网上搜到的内容质量参差不齐，希望在这里得到一些借鉴和参考，有什么不可以呢？让你帮我做作业了？宁如果有空去做点有意义的事情吧，不要在这里当大喷子咯[/quote] 你牛

user: user-0
content: 谢谢谢谢谢谢谢谢谢谢谢谢你啦

user: user-0
content: 引用 1 楼 liups的回复:建议看书然后自己做，实在不想做的耐心去网上搜索，肯定能找到的。大家凭什么帮你完成 作业 网上搜到的内容质量参差不齐，希望在这里得到一些借鉴和参考，有什么不可以呢？让你帮我做作业了？宁如果有空去做点有意义的事情吧，不要在这里当大喷子咯

user: user-0
content: 网上搜到的内容质量参差不齐，希望在这里得到一些借鉴和参考，有什么不可以呢？让你帮我做作业了？宁如果有空去做点有意义的事情吧，不要在这里当大喷子咯

user: user-2
content: 参考博客： https://blog.csdn.net/user-2/article/details/101795960

user: user-1
content: 建议看书然后自己做，实在不想做的耐心去网上搜索，肯定能找到的。大家凭什么帮你完成 作业
user-0 提问: 编写两个功能函数，使它们互相调用

回复:
user: user-0
content: 学到了，谢谢您！！！

user: user-0
content: 引用 8 楼 张天星的回复:[quote=引用 7 楼 菜鸡新手gsy 的回复:] 确实像您说的这样从f1到f2后不能再回来了，所以我改了一下，谢谢您！！！ 先修正一下，我说错了，这个不是回调。我是看着互相调用四个字，脑海中突然冒出回调两个字，简直了。 。。它的名字是？？我靠，应该叫递归？突然间我搞不清楚这个应该叫什么了。 但是思考的逻辑和递归是一样的。 互相之间的调用，必须有一个调用的条件（递归条件），和停止调用的条件（基线条件）。 递归条件确保两个方法在需要的时候可以循环，比如你f2永远调用不了f1 然后，基线条件就是不调用的条件。 来回两次调用之后，必须改变n的值。 而这个n的值，必须在某个时候停止循环。[/quote] int f1(int n); int f2(int n); int f1(int n) { 	if(n%2!=0) 		printf("奇数\n"); 	else 		f2(n); 	return 0; } int f2(int n) { 	if(n%2==0) 		printf("偶数\n"); 	    n=n/2; 		printf("除二后:"); 		f1(n); 	return 0;  } int main() { 	int n; 	printf("输入一个数:"); 	scanf("%d",&n); 	f1(n); 	return 0; }     这是我改正的

user: user-1
content: 引用 7 楼 菜鸡新手gsy 的回复:确实像您说的这样从f1到f2后不能再回来了，所以我改了一下，谢谢您！！！ 先修正一下，我说错了，这个不是回调。我是看着互相调用四个字，脑海中突然冒出回调两个字，简直了。 。。它的名字是？？我靠，应该叫递归？突然间我搞不清楚这个应该叫什么了。 但是思考的逻辑和递归是一样的。 互相之间的调用，必须有一个调用的条件（递归条件），和停止调用的条件（基线条件）。 递归条件确保两个方法在需要的时候可以循环，比如你f2永远调用不了f1 然后，基线条件就是不调用的条件。 来回两次调用之后，必须改变n的值。 而这个n的值，必须在某个时候停止循环。

user: user-0
content: 引用 5 楼 菜鸡新手gsy的回复:[quote=引用 3 楼 张天星的回复:]从f1到f2之后，f2不可能再到f1，因为你是偶数就在f1结束了，是偶数就在f2结束了。 从f2到不了f1 然后，你想做什么？ 这两种函数对调，一般是用在回调函数上，你是学习相关内容么？ 刚学习c语言，老师留的作业是两个函数互相调用[/quote] 确实像您说的这样从f1到f2后不能再回来了，所以我改了一下，谢谢您！！！

user: user-0
content: 引用 4 楼 user-2的回复:是的，不过这样写程序大有问题 我也觉得很有问题，然后改了一下

user: user-0
content: 引用 3 楼 张天星的回复:从f1到f2之后，f2不可能再到f1，因为你是偶数就在f1结束了，是偶数就在f2结束了。 从f2到不了f1 然后，你想做什么？ 这两种函数对调，一般是用在回调函数上，你是学习相关内容么？ 刚学习c语言，老师留的作业是两个函数互相调用

user: user-2
content: 是的，不过这样写程序大有问题

user: user-0
content: 有人吗！！！！！！！！！

user: user-0
content: 我C语言好差
user-0 提问: 求问一个c程问题

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

user: user-2
content: 兄弟你这个代码块缩进是真的要命

user: user-3
content: 打印一下日志或者是断点调试一下，看看到哪里

user: user-4
content: 算法是有点长

user: user-5
content: 貌似是算法的问题

user: user-6
content: 我感觉是内存泄漏

user: user-7
content: 学习了，需要仔细检查

user: user-8
content: 程序没什么问题，逐条追踪一下

user: user-9
content: 当时写过一个学生管理系统，差不多大部分功能和你一样，也是读取文件， 查找，删除……

user: user-10
content: 基本上都有解决的方案了

user: user-11
content: find的x不是char*，少了一个0x00 删除的话，加个判空，虽然有内存泄露但不会导致崩溃

user: user-12
content: 加一。。。。。。。。。。。。

user: user-13
content: 你这种代码出错概率真的太高了。你结构体里的data就是祸乱之源。结构体里定义一个指针，太容易出错了。然后还把一个const char赋给它，也许将来在自己不知道的情况下还尝试释放指针。

user: user-14
content: 条理不太清晰

user: user-15
content: dele函数里有一个内存泄露

user: user-16
content: 嗯嗯 但是真的感觉令人头秃

user: user-17
content: 找不出问题就调试鸭，调试是最好的解决办法

user: user-18
content: 都是高手啊！

user: user-19
content: 真脑壳痛╯﹏╰

user: user-20
content: 有那位大神解出来的话，跪服
user-0 提问: C语言颠倒句子顺序

回复:
user: user-0
content: 引用 8 楼 user-1的回复:你不说都没注意看了，哪能写在一起啊？有时候一下子读入三个键，只读到一个，少一行又不能多赚钱，有什么好处 我明白了，十分感谢😁

user: user-1
content: 你不说都没注意看了，哪能写在一起啊？有时候一下子读入三个键，只读到一个，少一行又不能多赚钱，有什么好处

user: user-0
content: 引用 5 楼 user-1的回复:有可能啊，break肯定不对了，至于逻辑对不对，要去调试一下吧 结果对了，不过我还做了别的调整，其中一个就是把getchar提前: for (……){ ch=getchar (); if (ch=='.'||……) …… } 请问是不是不能像我原先的程序那样把getchar放if里？

user: user-0
content: 结果对了，不过我还做了别的调整，其中一个就是把getchar提前: for (……){ ch=getchar (); if (ch=='.'||……) …… } 请问是不是不能像我原先的程序那样把getchar放if里？

user: user-1
content: 有可能啊，break肯定不对了，至于逻辑对不对，要去调试一下吧

user: user-0
content: 引用 3 楼 user-1的回复:if里面break，外面是单循环，就不再循环了，不就完了吗？ 啊对，是我犯蠢了，是不是改成continue就可以了？

user: user-1
content: if里面break，外面是单循环，就不再循环了，不就完了吗？

user: user-0
content: 引用 1 楼 user-1的回复:第二个if根本就不对吧？ 不对吗？第二个if是在扫描空格，请问具体是哪里有问题？

user: user-1
content: 第二个if根本就不对吧？
user-0 提问: 为什么要判断等于\0？（具体问题在代码中说明着）

回复:
user: user-1
content: 引用 3 楼 qq_45814010 的回复:[quote=引用 1 楼 qq_45798109的回复:]\0是字符串结束标志，后面都没有字符了还比啥 结束了数组就没了，就自动停止比较了，还需要加上比较\0吗？[/quote]什么数组没了 什么自动停止? 编程没有自动的事情 怎么停怎么走都是代码说了算

user: user-2
content: 引用 3 楼 qq_45814010 的回复:[quote=引用 1 楼 qq_45798109的回复:]\0是字符串结束标志，后面都没有字符了还比啥 结束了数组就没了，就自动停止比较了，还需要加上比较\0吗？[/quote] 可是，有时候，你定义了100个数组长度，字符只有30个。 你不判断\0，那么你会把32后面的所有位置继续比对。。。。 指不定你取出来的是什么乱码

user: user-0
content: 引用 1 楼 qq_45798109的回复:\0是字符串结束标志，后面都没有字符了还比啥 结束了数组就没了，就自动停止比较了，还需要加上比较\0吗？

user: user-3
content: 判断小于80是为了防止内存越界， 判断\0是字符串结束标志， 这两个都要判断。

user: user-4
content: \0是字符串结束标志，后面都没有字符了还比啥
user-0 提问: Linux Top 和ps的cpu占用率不一致？总计和各核的cpu使用率不一致是怎么回事？

回复:
user: user-0
content: 引用 1 楼 user-1 的回复:因为统计的方法不一样，你看看这个文章：https://blog.csdn.net/aspnet_lyc/article/details/56280017确实不一样

user: user-1
content: 因为统计的方法不一样，你看看这个文章：https://blog.csdn.net/aspnet_lyc/article/details/56280017
user-0 提问: 素数质因数分解

回复:
user: user-1
content: 至少人家一个算法弄通了啊，关效率啥事？我看楼主真是不可教也，自己慢慢去弄吧

user: user-2
content: 我博客里面有篇叫从埃筛到欧拉筛，是讲素筛的，你可以看看

user: user-0
content: 引用 12 楼 Macarons_i的回复:可以给你写一个o(n)复杂度的质因数分解 哦哦，这个我不太懂 ，刚学不久

user: user-1
content: 错了到现在还没看出来，你看n的整除性，还是看m的整除性？m根本就是多余的变量

user: user-2
content: 可以给你写一个o(n)复杂度的质因数分解

user: user-2
content: 大哥，你这是n方的复杂度，当然不可能运行三位数以上的

user: user-0
content: 引用 7 楼 SuperDay的回复:还有，一般1表示true，0表示false，你这个-1和1算是创新吗？在循环里面： if(n % i == 0)return 0; 循环外面： return 1; 不是很清晰吗？弄个a干嘛？多余的变量 我意思随便什么值拿来做返回值都行，所以就弄了个自己容易看懂的

user: user-0
content: 引用 5 楼 qq_45798109的回复:[quote=引用 3 楼 无名之辈321的回复:][quote=引用 1 楼 qq_45798109的回复:]我不知道你写的这个循环有什么意义你是想写n%i==0吧 for (i = m; i >= 2; i--) 	{ 		if (m % i == 0) 			a++; 		break; 	} 这个函数是判断素数的，没啥问题，是那个主函数里面分解非素数的质因数，我写出来只能运行1-99的数，100及以上就不行了，就这想不通[/quote] 没问题吗？i=m,m%i有意义吗？[/quote] 有意义啊，i从m值开始自减，m/每次i的值没问题吧

user: user-0
content: 引用 6 楼 SuperDay的回复:看你们写程序感觉好累啊，弄个m干嘛？多出一个不必要的变量。  for(i = sqrt(n); i >= 2; -- i) 这样不是妥妥的吗？ 刚学不久，还没有学会太多的简便写法

user: user-1
content: 还有，一般1表示true，0表示false，你这个-1和1算是创新吗？在循环里面： if(n % i == 0)return 0; 循环外面： return 1; 不是很清晰吗？弄个a干嘛？多余的变量

user: user-1
content: 看你们写程序感觉好累啊，弄个m干嘛？多出一个不必要的变量。  for(i = sqrt(n); i >= 2; -- i) 这样不是妥妥的吗？

user: user-3
content: 引用 3 楼 无名之辈321的回复:[quote=引用 1 楼 qq_45798109的回复:]我不知道你写的这个循环有什么意义你是想写n%i==0吧 for (i = m; i >= 2; i--) 	{ 		if (m % i == 0) 			a++; 		break; 	} 这个函数是判断素数的，没啥问题，是那个主函数里面分解非素数的质因数，我写出来只能运行1-99的数，100及以上就不行了，就这想不通[/quote] 没问题吗？i=m,m%i有意义吗？

user: user-0
content: 引用 2 楼 SuperDay的回复:楼主，你这个程序到底是想干嘛呢？素数还需要分解吗？真是古今奇谈啊 打错了，是非素数分解质因数

user: user-0
content: 引用 1 楼 qq_45798109的回复:我不知道你写的这个循环有什么意义你是想写n%i==0吧 for (i = m; i >= 2; i--) 	{ 		if (m % i == 0) 			a++; 		break; 	} 这个函数是判断素数的，没啥问题，是那个主函数里面分解非素数的质因数，我写出来只能运行1-99的数，100及以上就不行了，就这想不通

user: user-1
content: 楼主，你这个程序到底是想干嘛呢？素数还需要分解吗？真是古今奇谈啊

user: user-3
content: 我不知道你写的这个循环有什么意义你是想写n%i==0吧 for (i = m; i >= 2; i--) 	{ 		if (m % i == 0) 			a++; 		break; 	}
user-0 提问: #C 这一题感觉有点BUG啊，有人能做出来吗？

回复:
user: user-1
content: 引用 5 楼 wowpH 的回复:a[counter-1]=temp这么写确实不好，反正不是习惯的写法。  合成了多位数，只不过怎么合成的过程没写而已。“数据入temp”就是这个操作。 不是我习惯的写法。

user: user-1
content: a[counter-1]=temp这么写确实不好，反正不是习惯的写法。  合成了多位数，只不过怎么合成的过程没写而已。“数据入temp”就是这个操作。

user: user-2
content: 也就是个flag而已。话说你就想看着，也不想把它打进去运行看看吗？纸上谈兵没有意义

user: user-0
content: 引用 2 楼 user-2 的回复:流程都已经这么清晰了，就不能先把代码写出来再说吗？每次见到一些帖子都让我无语啊，这些初学者简直就是一个手指头都不想动啊！ 如果str中第一个字符为非数字的话程序可能会崩，即便不崩 a[counter-1]=temp 也是一个错误的操作；如果连续两个及两个以上都是数字的话数字会丢失，而且也并没有合成一个多位数..... 真看不明白具体要求是什么。

user: user-2
content: 流程都已经这么清晰了，就不能先把代码写出来再说吗？每次见到一些帖子都让我无语啊，这些初学者简直就是一个手指头都不想动啊！

user: user-0
content: 来个大哥帮帮忙啊
user-0 提问: 为什么数字输入字符数组要多输入一位空间咦

回复:
user: user-1
content: scanf_s对于%c缺少一个参数，即 scanf_s("%c", &a[i], 1);

user: user-0
content: 引用 2 楼 qq_41754686的回复:最后面多出来的一个空间用来存放数组结束标志‘0’或者‘’\0“ 我分布调试发现是b0保存了回车

user: user-2
content: 最后面多出来的一个空间用来存放数组结束标志‘0’或者‘’\0“

user: user-3
content: 看不懂你想表达什么
user-0 提问: pta平台上的题目，不知道哪里错了，请问哪位大佬知道，指导一下下。

回复:
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: 问题在于你的分解因子的算法上要改进 就是求因子的循环次数太多了     对于一个整数n，最大的因子是n/2（如果n为偶数）， 那么大于n/2的循环有必要吗，减少这部分循环，速度就提升了一倍     类似大于n/3的因子又有几个呢？。。。。。  自己找一下求素数的算法先，可以把n先分解成若干个素数的乘积，这些素数肯定都是不大于sqrt（10000）=100的 100以内的素数甚至不需计算，直接打表都行啊  而后，所有的因子，就是这些素数之间的不重复的组合数了，哪怕穷举速度也都足够通过测试了

user: user-3
content: 你这个都是超时的，说明算法还需要改进提高效率

user: user-0
content: 引用 3 楼 寻开心的回复:可以一次性把sqrt(10000）以内的所有素数都计算出来，或者直接敲进去 然后针对这个素数表来做分解，找到最小因子，然后再组合 额，这个，说真的，不懂

user: user-2
content: 可以一次性把sqrt(10000）以内的所有素数都计算出来，或者直接敲进去 然后针对这个素数表来做分解，找到最小因子，然后再组合

user: user-0
content: 引用 1 楼 user-3的回复:你这个都是超时的，说明算法还需要改进提高效率 哦哦，那就是说没什么错误，就只是算法需要改进对吧？
user-0 提问: c语言函数调用

回复:
user: user-1
content: #include<stdio.h> int fact(int i); int main() { 	int i, sum, a, n; 	sum = 0; 	scanf("%d", &n); 	for (i = 1; i <= n; i++) 	{ 		a = fact(i); 		if (a == -1) 			printf("error!"); 		else 			sum = sum + a;		 	} 	printf("%d\n", sum); 	return 0; }  int fact(int i) { 	if (i<0) 		return -1; 	if (i == 0) 		return 1; 	if (i >= 1) 		return (i*fact(i - 1)); }

user: user-2
content: 不是已经实现了吗？

user: user-3
content: 你现在不就是把i给fact传参了
user-0 提问: C语言编码求思路

回复:
user: user-1
content: 这种可以先从>12开始写，else if就不需要再写明<=12了，每次只要写一个>就够了

user: user-2
content: 谁说<>=是三目运算符的？它们是双目运算符。也就是说，不能连用。e.g.  if(0<=age<=3) 变成 if(0<=age && age <= 3)

user: user-0
content: 引用 2 楼 SuperDay 的回复:就是if else if else，都没看过书吗？ #include <stdio.h> int main() { 	int age; 	printf("enter your age:"); 	scanf("%d",&age); 	if (0<=age<=3) 		printf("可以免票"}; 	else if (4<age<=12)  		printf("需要买半票"); 	else if(age>12) 		printf("需要买全票"); 	printf("%d岁",age); 	return 0; } 结果： enter your age：6 可以免票6岁   我实在是搞不懂了。

user: user-0
content: 引用 18 楼 SuperDay的回复:多动点脑子，否则这种程序都要搞半天，真的是要放弃了 好的，我会努力学习的

user: user-1
content: 多动点脑子，否则这种程序都要搞半天，真的是要放弃了

user: user-0
content: 引用 16 楼 SuperDay的回复:这种问题你都问得出来啊，printf放在最前面啊！很无语啊 不懂就问嘛，谢谢大佬解答，麻烦了。

user: user-1
content: 这种问题你都问得出来啊，printf放在最前面啊！很无语啊

user: user-0
content: 引用 14 楼 SuperDay的回复:3>=age都不需要了，其它差不多了 那它显示的结果是：需要购买半票6岁，怎么才能把6岁放到前面。

user: user-1
content: 3>=age都不需要了，其它差不多了

user: user-0
content: 引用 12 楼 SuperDay 的回复:晕，age > 12 下面是age >= 4 再下面最好判断age >= 0否则错误输入 总共就三个表达式，搞了一晚上都搞不好怎么回事？ #include <stdio.h> int main() { 	int age; 	printf("enter your age:"); 	scanf("%d",&age); 	if (age>12) 		printf("需要买全票"); 	else if (age>=4)  		printf("需要买半票"); 	else if(3>=age) 		printf("可以免票"); 	else if(age>=0) 		printf("可以免票"); 	printf("%d岁",age); 	return 0; } 是这样吧

user: user-1
content: 晕，age > 12 下面是age >= 4 再下面最好判断age >= 0否则错误输入 总共就三个表达式，搞了一晚上都搞不好怎么回事？

user: user-0
content: 引用 10 楼 SuperDay 的回复:真的是无语了，不是说大于12写到最前面吗？ 还有，你干嘛对0<=age<=3情有独钟啊？C语言不支持比较表达式连写！ #include <stdio.h> int main() { 	int age; 	printf("enter your age:"); 	scanf("%d",&age); 	if (12>age) 		printf("需要买全票"); 	else if (age>4)  		printf("需要买半票"); 	else if(3>=age) 		printf("可以免票"); 	printf("%d岁",age); 	 }

user: user-1
content: 真的是无语了，不是说大于12写到最前面吗？ 还有，你干嘛对0<=age<=3情有独钟啊？C语言不支持比较表达式连写！

user: user-0
content: 引用 8 楼 SuperDay 的回复:if(a > 12) {...} else if(a > 4) {这里a不需要写出来<=12，因为else就已经限制了这个条件，所以每个else只需要一个逻辑表达式就够了} #include <stdio.h> int main() { 	int age; 	printf("enter your age:"); 	scanf("%d",&age); 	if (0<=age<=3) 		printf("可以免票"); 	else if (age>4)  		printf("需要买半票"); 	else if(age>12) 		printf("需要买全票"); 	printf("%d岁",age); 	return 0; }  当我输入 6 的时候它还是显示可以免票，它应该显示需要购买半票，它就执行printf（“可以免票”）；不执行下面的printf，为什么，我哪里错了吗？

user: user-1
content: if(a > 12) {...} else if(a > 4) {这里a不需要写出来<=12，因为else就已经限制了这个条件，所以每个else只需要一个逻辑表达式就够了}

user: user-0
content: 引用 6 楼 SuperDay的回复:这种可以先从>12开始写，else if就不需要再写明<=12了，每次只要写一个>就够了 我比较笨，理解不了你的意思，能说仔细一些吗？

user: user-3
content: 图中的分析已经说的相当清楚了，伪代码都给你了，自己先写写，出现问题再部

user: user-1
content: 就是if else if else，都没看过书吗？

user: user-4
content: 图中的分析已经说的相当清楚了，甚至给出了部分代码
user-0 提问: C语言

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

user: user-2
content: 内层循环不需要的，并且花括号没匹配好

user: user-3
content: printf('*',5)这是什么写法？单引号*

user: user-4
content: print  不是printf

user: user-5
content: 引用 1 楼 这是一个正经昵称 的回复:print  不是printf 大概是python用多了
user-0 提问: ASCII码转换问题

回复:
user: user-1
content: 第一个字符A是你自己输入的，第二行的字符A是putchar输出的

user: user-0
content: 引用 1 楼 user-1的回复:字符变量c接受了一个你输入的字符'A' 字符变量d=c+32，即c的ASCII码加32，对应字符'a' putchar(c);    输出字符变量c的值 printf("\n%d\n",c);   按%d的格式输出c的值，即输出值的ASCII码 下同 我理解了你说的，但我还有一点不明白。就是那一个语句输出那一个字符，比如第一个'A'是哪一个语句输出的，请帮忙解释，我对这个的理解有些混乱。

user: user-1
content: 字符变量c接受了一个你输入的字符'A' 字符变量d=c+32，即c的ASCII码加32，对应字符'a' putchar(c);    输出字符变量c的值 printf("\n%d\n",c);   按%d的格式输出c的值，即输出值的ASCII码 下同

user: user-0
content: 引用 3 楼 user-1的回复:第一个字符A是你自己输入的，第二行的字符A是putchar输出的 经我细细推敲，步步摸索……搞懂了。
user-0 提问: c语言

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

user: user-2
content: 自己作业自己写。
user-0 提问: c语言 编程从键盘上输入5个整数,求去掉最大值和最小值以后那些元素的平均值

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

user: user-0
content: 引用 3 楼 user-2的回复:[quote=引用 2 楼 weixin_45914264 的回复:] [quote=引用 1 楼 user-2的回复:]这么急的话，先动手写一下呗 我写了 总是写不完整 [/quote] 你可以代码贴出来，会有人帮忙改错[/quote] 好的谢谢你

user: user-2
content: 引用 2 楼 weixin_45914264 的回复:[quote=引用 1 楼 user-2的回复:]这么急的话，先动手写一下呗 我写了 总是写不完整 [/quote] 你可以代码贴出来，会有人帮忙改错

user: user-0
content: 引用 1 楼 user-2的回复:这么急的话，先动手写一下呗 我写了 总是写不完整

user: user-2
content: 这么急的话，先动手写一下呗
user-0 提问: c语言实现任意n个数排序

回复:
user: user-1
content: #include <stdio.h> #include <stdalign.h> #include <stdlib.h>  int sort(int*,int);  int main(void) { 	int n, *p, i;  	printf("请输入要排序的数："); 	scanf("%d",&n);  	p=(int*)calloc(n,sizeof(int));  	if(p==NULL) 	{ 		printf("分配失败！"); 		exit(1); 	}  	printf("请输入要排序的数："); 	for(i=0;i<n;i++) 	{ 		scanf("%d",p+i); 	}  	//int sort(p,n); 	sort(p,n);  	printf("升序排列为："); 	for(i=0;i<n;i++) 	{ 		printf("%d  ",*(p+i)); 	}  	free(p);  	return 0;  }  int sort(int *p,int n) { 	int i, j, temp;  	for(i=0;i<n;i++) 	{ 		for(j=0;j<n-i-1;j++) 		{ 			if(*(p+j)>*(p+j+1)) 			{ 				temp=*(p+j); 				*(p+j)=*(p+j+1); 				*(p+j+1)=temp; 			} 		} 	} }  供参考～  注意函数调用和函数声明的区别～
user-0 提问: 简单运算问题

回复:
user: user-1
content: 结果是1，因为>的优先级大于!=，因此先计算5>4，结果为1，继续判断1!=2，结果为1（true）

user: user-2
content: 结果是1，因为>的优先级大于!=，因此先计算5>4，结果为0，继续判断0!=2，结果为1（true）
user-0 提问: 求解啊

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

user: user-2
content: 既然都有括号，那运算优选级就显而易见了，先把z赋值为4，然后判断y==z，而y=0，z=4，两者不相等，所以右值就变成了0，最后的运算就是x*=0;得到的结果就是0，反之如果y的值和z赋值相同，右值就是1
user-0 提问: 问大佬们一个问题

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

user: user-2
content: 主要是x/2=z这个表达式就很奇怪不是吗

user: user-3
content: y=x/2=z；你这是把z赋值给x/2吗？？你觉得可以把一个变量赋值给一个表达式吗

user: user-4
content: 你这是把实型数据赋给了整型数据，如果用等号的话应该用两个等号的吧？
user-0 提问: 请人指点一下进制之间怎么转换。。。还有124d是什么意思？

回复:
user: user-1
content: 迷魂法，d是十进制的首字母，但是C语言里没有这样的语法，因此选A吧。 unsigned int b = 124u;这里的124u表示124是无符号数。但是没见过124d，表示十进制的；  i %= 4;B项的不好说，也就是也可能是7呗，个人认为这个答案存在歧义性。0， 1都是没问题的～

user: user-2
content: B 0124  是八进制  D 124d 是非法

user: user-3
content: 没这样写过，你可以试试，有可能是非法的

user: user-0
content: 引用 7 楼 wowpH 的回复:第二题选A，-3，-2，-1，0，1，2，3 谢谢大哥，感觉您教了我好多

user: user-0
content: 引用 6 楼 SuperDay 的回复:太简单了反而不敢选吗？题目有够弱智的 那124d又是啥意思嘞？

user: user-4
content: 第二题选A，-3，-2，-1，0，1，2，3

user: user-3
content: 太简单了反而不敢选吗？题目有够弱智的

user: user-5
content: 选A那就是文字游戏了，没意思

user: user-5
content: 引用 2 楼 S_GKCYY 的回复:[quote=引用 1 楼 與蘤舊縐 的回复:] 1应该是D，124d表示十进制的124，d表示十进制 2那就不好说吧，这选项给的让人无语 我选d但是不对。。。[/quote]  不是D他还选A不成

user: user-3
content: A不是最明显的吗？第二题无语了

user: user-0
content: 引用 1 楼 與蘤舊縐 的回复:1应该是D，124d表示十进制的124，d表示十进制 2那就不好说吧，这选项给的让人无语 我选d但是不对。。。

user: user-5
content: 1应该是D，124d表示十进制的124，d表示十进制 2那就不好说吧，这选项给的让人无语
user-0 提问: 求助:输出1到1000中所有个位数的立方等于本身的数

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

user: user-2
content: #include"stdio.h" int main() { 	int i,a; 	for(i=1;i<=1000;i++) 	{ 		a=i%10; 		if(a*a*a==i) 			printf("%d\n",i); 	} return 0; }

user: user-3
content: #include <stdio.h>  int main() {     int a=0,b=0,c=0;     while(a<=9)     {         c++;         if(c*c*c==100*a+10*b+c)             printf("%d\n",100*a+10*b+c);         //if(c=9)         if(c==9)         {             c=0;             b++;              //if(b=9)             if(b==9)             {                 c=0;                 b=0;                 a++;             }         }     } } 供参考～
user-0 提问: 如何才能实现从下部跳出到上部的循环，而不用goto语句

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

user: user-2
content: char t_date[15];      while(1)     {         if(gets(t_date)[0]=='\0');         else if(strlen(t_date)<7) printf("error\n");         else break;     }     printf("reault=%s\n",t_date); 试试我这段，比你的精简一点

user: user-3
content: 试着在goto语句的地方用continue;从头开始执行了。但是gets需要放到循环体内才行～

user: user-4
content: while (xxx) {     while (xxx)     {          break;     } }
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-0
content: 引用 3 楼 自信男孩的回复:定义在循环体内的变量，其作用域是循环体内。因此，再循环外是无效的。 好的，那我知道了，谢谢

user: user-2
content: 定义在循环体内的变量，其作用域是循环体内。因此，再循环外是无效的。

user: user-0
content: 引用 1 楼 user-3的回复:[quote=引用 楼主 maxiangyu_ 的回复:] 变量i定义在循环语句中，因此i在循环体内不可见，这是紫书上说的，但是我上网看了三四个人的解释，我感觉从他们的解释中应该是（在循环体外不可见，因为i是定义在循环体内，这样在循环体外的话就相当于没有i这个变量，在循环体外printf（“%d\n”,i）是会报错的，即在循环外不可见）    不知道我的想法对不没毛病  循环体外不可见 怎么了 [/quote] 那就行，那应该是书上写错了，你看一下照片，书上写的是循环体内不可见

user: user-3
content: 引用 楼主 maxiangyu_ 的回复:变量i定义在循环语句中，因此i在循环体内不可见，这是紫书上说的，但是我上网看了三四个人的解释，我感觉从他们的解释中应该是（在循环体外不可见，因为i是定义在循环体内，这样在循环体外的话就相当于没有i这个变量，在循环体外printf（“%d\n”,i）是会报错的，即在循环外不可见）    不知道我的想法对不没毛病  循环体外不可见 怎么了
user-0 提问: 字符串中单词逆序（i love china 变为i evol anihc）怎么做？

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

user: user-2
content: 拿空格来当分词符号，然后逆序输出即可  #include<cstdio> #include<string> #include<cstring> #include<iostream> using namespace std;  int main() { 	string line; 	getline(cin, line); 	int i = 0; // 起始点 	for (int j = 0; j < line.length(); j++) { 		if (j == line.length() - 1 || line[j] == ' ') { 			// 开始分割和翻转 			int k = (j == line.length() - 1) ? j : j - 1; 			for (; k >= i; k--) printf("%c", line[k]); 			(j == line.length() - 1) ? printf("\n") : printf(" "); 			i = j + 1; // 更换起点 		} 	} 	return 0; } /* I love china */

user: user-3
content: 二维字符数组存储，第二维直接for循环逆序输出
user-0 提问: 帮忙看下哪里不对啊

回复:
user: user-1
content: sum要初始化 sum=0.

user: user-0
content: 引用 1 楼 user-2的回复:sum=0最好初始化一下 并且，是编译问题，运行问题，要说清楚，编译错误提示信息，运行结果什么发上来看看，不然人家还要去弄你的程序才知道，不是耽误时间吗？ 哦哦好的，我照你的改了一下，然后好了，谢谢你

user: user-0
content: 哦哦好的，我照你的改了一下，然后好了，谢谢你

user: user-2
content: sum=0最好初始化一下 并且，是编译问题，运行问题，要说清楚，编译错误提示信息，运行结果什么发上来看看，不然人家还要去弄你的程序才知道，不是耽误时间吗？
user-0 提问: 关于数字金字塔的一段小代码陷入死循环了

回复:
user: user-0
content: 引用 13 楼 SuperDay的回复:引用 12 楼 乔碧萝大魔王的回复:[quote=引用 11 楼 SuperDay的回复:][quote=引用 10 楼 乔碧萝大魔王的回复:][quote=引用 8 楼 qq_45798109的回复:][quote=引用 7 楼 乔碧萝大魔王的回复:][quote=引用 5 楼 qq_45798109的回复:][quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用[/quote] 俺知道了，多谢大佬提点，大佬天天开心啊[/quote] 看到你积极学习，有进步了，就会开心[/quote] 承蒙关照，大佬真是个好大佬[/quote] 不是什么大佬，就是搬砖而已[/quote] 谦虚的大佬必成大业

user: user-1
content: 引用 12 楼 乔碧萝大魔王的回复:引用 11 楼 SuperDay的回复:[quote=引用 10 楼 乔碧萝大魔王的回复:][quote=引用 8 楼 qq_45798109的回复:][quote=引用 7 楼 乔碧萝大魔王的回复:][quote=引用 5 楼 qq_45798109的回复:][quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用[/quote] 俺知道了，多谢大佬提点，大佬天天开心啊[/quote] 看到你积极学习，有进步了，就会开心[/quote] 承蒙关照，大佬真是个好大佬[/quote] 不是什么大佬，就是搬砖而已

user: user-0
content: 引用 11 楼 SuperDay的回复:引用 10 楼 乔碧萝大魔王的回复:[quote=引用 8 楼 qq_45798109的回复:][quote=引用 7 楼 乔碧萝大魔王的回复:][quote=引用 5 楼 qq_45798109的回复:][quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用[/quote] 俺知道了，多谢大佬提点，大佬天天开心啊[/quote] 看到你积极学习，有进步了，就会开心[/quote] 承蒙关照，大佬真是个好大佬

user: user-1
content: 引用 10 楼 乔碧萝大魔王的回复:引用 8 楼 qq_45798109的回复:[quote=引用 7 楼 乔碧萝大魔王的回复:][quote=引用 5 楼 qq_45798109的回复:][quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用[/quote] 俺知道了，多谢大佬提点，大佬天天开心啊[/quote] 看到你积极学习，有进步了，就会开心

user: user-0
content: 引用 8 楼 qq_45798109的回复:引用 7 楼 乔碧萝大魔王的回复:[quote=引用 5 楼 qq_45798109的回复:][quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用[/quote] 俺知道了，多谢大佬提点，大佬天天开心啊

user: user-0
content: 俺知道了，多谢大佬提点，大佬天天开心啊

user: user-2
content: 引用 7 楼 乔碧萝大魔王的回复:引用 5 楼 qq_45798109的回复:[quote=引用 4 楼 乔碧萝大魔王的回复:][quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想[/quote] for循环有时候要比while好用

user: user-0
content: 引用 5 楼 qq_45798109的回复:引用 4 楼 乔碧萝大魔王的回复:[quote=引用 2 楼 qq_45798109 的回复:] while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀[/quote] 大佬说的好有道理，我再想想

user: user-0
content: 大佬说的好有道理，我再想想

user: user-2
content: 引用 4 楼 乔碧萝大魔王的回复:引用 2 楼 qq_45798109 的回复:while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。 i--的话循环里i的值就变了呀

user: user-0
content: 引用 2 楼 qq_45798109 的回复:while(i)只要i不是零就一直循环。。【欲哭无泪】我怎么把i--忘了呢。。。。。

user: user-0
content: 引用 1 楼 SuperDay的回复:while循环里面，变量都没修改，循环条件都不变，当然是死循环了 大佬你又救了我明白了，又是个弱智错误，大佬祝福你

user: user-2
content: while(i)只要i不是零就一直循环。。

user: user-1
content: while循环里面，变量都没修改，循环条件都不变，当然是死循环了
user-0 提问: 字符数组的一个小问题

回复:
user: user-1
content: 是的，gets是读一整行，直到遇到回车或者EOF，或者超过字符串的范围

user: user-0
content: 引用 1 楼 SuperDay 的回复:字符串遇到空格就结束了 不过用gets()好像可以用空格

user: user-0
content: 引用 2 楼 qq_45798109 的回复:scanf遇到空格换行TAB都会结束 谢谢，我看了看课件，的确是这样

user: user-2
content: scanf遇到空格换行TAB都会结束

user: user-1
content: 字符串遇到空格就结束了
user-0 提问: 提问

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

user: user-2
content: 建议你好好学学语文

user: user-2
content: 每输入一个数输出对应个数的星号
user-0 提问: 蓝桥杯试题，c语言运行没有结果

回复:
user: user-0
content: 引用 6 楼 黄哥Python培训 的回复:大概是你写的代码时间复杂度太高，还在计算中。 请参考下面的代码。 感谢大佬提供思路和解法

user: user-1
content: 大概是你写的代码时间复杂度太高，还在计算中。 请参考下面的代码。

user: user-0
content: 引用 4 楼 棉猴 的回复:#include<stdio.h> int isok(int t) { 	int m = 1000; 	while (m>0) 	{ 		if (t / m == 2 || t / m == 4) 			return 1; 		else { 			t = t%m; 			m /= 10;//-----------t /=10改为m /=10---------------- 		}  	} 	return 0;  } int main() { 	int i, j, k; 	int count = 0; 	for (i = 1; i<2019; i++) 	{ 		if (isok(i)) 			continue;  		for (j = 1; j<2019; j++) 		{ 			 			if (isok(j) || i+j>=2019)//---添加判断规则，减少计算量----------- 				continue;  			for (k = 1; k<2019; k++) 			{ 				if (isok(k) || i+j+k>2019)//---添加判断规则，减少计算量----------- 					continue;  				if (i + j + k == 2019) 				{ 					printf("%d+%d+%d=2019\n", i, j, k);//-----添加显示，避免假死状态------------ 					count++; 				}  			} 		} 	}  	printf("%d\n", count); 	return 0; } 以下是VS2015调试结果 count的值最后要除以6因为不能重复算，但这个结果也不对，正确答案是40785

user: user-2
content: #include<stdio.h> int isok(int t) { 	int m = 1000; 	while (m>0) 	{ 		if (t / m == 2 || t / m == 4) 			return 1; 		else { 			t = t%m; 			m /= 10;//-----------t /=10改为m /=10---------------- 		}  	} 	return 0;  } int main() { 	int i, j, k; 	int count = 0; 	for (i = 1; i<2019; i++) 	{ 		if (isok(i)) 			continue;  		for (j = 1; j<2019; j++) 		{ 			 			if (isok(j) || i+j>=2019)//---添加判断规则，减少计算量----------- 				continue;  			for (k = 1; k<2019; k++) 			{ 				if (isok(k) || i+j+k>2019)//---添加判断规则，减少计算量----------- 					continue;  				if (i + j + k == 2019) 				{ 					printf("%d+%d+%d=2019\n", i, j, k);//-----添加显示，避免假死状态------------ 					count++; 				}  			} 		} 	}  	printf("%d\n", count); 	return 0; } 以下是VS2015调试结果

user: user-0
content: 引用 2 楼 悲伤的小霉 的回复:下课了，回去试一下，retune，你写反了吧还是不行，运行没有结果

user: user-0
content: 下课了，回去试一下，retune，你写反了吧

user: user-3
content: int legal(int x) {     while (x > 0) {         if (x % 10 == 2 || x % 10 == 4) {             return 0;         }         x /= 10;     }     return 1; }
user-0 提问: 数组空间大小对程序有什么影响

回复:
user: user-0
content: 引用 1 楼 user-1 的回复:越界而已。 数组下标是从0开始的 谢谢了好像突然又懂了

user: user-1
content: 越界而已。 数组下标是从0开始的
user-0 提问: 删除字符串中指定字符

回复:
user: user-1
content: 全局变量和静态变量自动初期化为0，数组元素也全是0，不设置也不会被“烫”，函数内的非静态变量称为自动变量，自动变量不会自动初期化，里面默认都是“垃圾值”

user: user-2
content: 烫烫烫 是调试状态，看到这个一般就是越界了。

user: user-3
content: 字符串没有初始化，必须以‘\0’结尾

user: user-4
content: 哪有什么自动之说，功能都是用代码堆出来的！字符串遇到'\0'才认为是结束的，不加上结束符，就会一直找下去，直到碰巧出现一个结束符为止，期间如果遇到不可打印的字符，就会显示出乱码
user-0 提问: 初入递归函数写法，不是很明白它的返回机制...难道递归语句以下的语句都要在递归完成之后才能实现吗？？

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

user: user-2
content: 我想知道你所说的打断指的是什么呢？递归调用和普通函数一样，返回机制一样，并且都是返回之后才能执行剩下的语句。我觉得楼主的描述太乱了，不知道想问什么问题
user-0 提问: 一个语法小问题，自闭的我又来了

回复:
user: user-1
content: 引用 2 楼 乔碧萝大魔王 的回复:引用 1 楼 这是一个正经昵称 的回复:if() {return} 了，那能过了if条件的不就是else？第一次见，哎，谢谢大佬，大佬一生平安啊 学习，可能很多时候正好就是个见怪不怪的过程

user: user-0
content: 引用 1 楼 这是一个正经昵称 的回复:if() {return} 了，那能过了if条件的不就是else？第一次见，哎，谢谢大佬，大佬一生平安啊

user: user-1
content: if() {return} 了，那能过了if条件的不就是else？
user-0 提问: 一个求素数的小问题

回复:
user: user-0
content: 引用 2 楼 user-3的回复:if(prime(m)==1){ //没有花括号就变成了数字累加  为什么没有在count++;//只有在为真的条件下才会累加 后面加上} 你这代码我觉得应该是编译都过不了的，花括号对不齐，编译器必定过不了 我明白了，谢谢大佬，吐血(  •̆ ᵕ •̆ )◞♡

user: user-0
content: 引用 7 楼 SuperDay的回复:都是要练出来的，要学会归纳总结 好的，含泪答谢，，被粗心搞死了

user: user-1
content: 都是要练出来的，要学会归纳总结

user: user-0
content: 引用 2 楼 user-3的回复:if(prime(m)==1){ //没有花括号就变成了数字累加  为什么没有在count++;//只有在为真的条件下才会累加 后面加上} 你这代码我觉得应该是编译都过不了的，花括号对不齐，编译器必定过不了 也不是过不了就是很菜

user: user-0
content: 引用 3 楼 qq_45798109的回复:sum==2.... 我要自闭了，谢谢大佬

user: user-0
content: 引用 1 楼 SuperDay的回复:sum == 2 孩子，你太粗心了，虽然你很努力，但是要用心 啊，吐了一地的血，谢谢大佬！！！大佬一生平安

user: user-2
content: sum==2....

user: user-3
content: if(prime(m)==1){ //没有花括号就变成了数字累加  为什么没有在count++;//只有在为真的条件下才会累加 后面加上} 你这代码我觉得应该是编译都过不了的，花括号对不齐，编译器必定过不了

user: user-1
content: sum == 2 孩子，你太粗心了，虽然你很努力，但是要用心
user-0 提问: 大佬们，救救孩子吧，急急急

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

user: user-2
content: 应当自救，授人以鱼不如授人以渔
user-0 提问: 问问大佬们为什么这个代码会运行超时

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

user: user-2
content: for循环，if  else语句后都加上花括号，即使后面跟的只有一行代码，养成良好的代码习惯

user: user-2
content: if(b%j==0)这个条件不需要加花括号吗，这样的话break不是一直会执行，然后条件也没满足就break，导致b的值不会变，死循环

user: user-0
content: 请问为什么是这个。。。

user: user-3
content: if(b%j == 0){b--;break;}
user-0 提问: 求大佬解答一下

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

user: user-2
content: Queue *q = (Queue *)malloc(sizeof(Queue));

user: user-3
content: 有malloc，没有molloc，另外需要引入stdlib.h头文件～  另外，建议贴出完整代码和错误提示信息～
user-0 提问: 下面两题不会。。。。请讲解一下

回复:
user: user-1
content: int a = 10,b; 00C2139E  mov         dword ptr [a],0Ah   	b = sizeof(a++); 00C213A5  mov         dword ptr [b],4   	return 0; 00C213AC  xor         eax,eax   刚看的汇编。 我写的b = sizeof(a++) 直接被解释成了mov ... 4操作。

user: user-1
content: sizeof是一个编译时刻就起效果的运算符，在其内的任何运算都没有意义。 百度搜来的

user: user-2
content: D 10 这个应该多看看书，就很容易得到答案

user: user-3
content: sizeof(); 是个宏操作，可能++操作没有执行。

user: user-4
content: 引用 1 楼 datoulaile123的回复:1.D 当单字节整数，相当于c的数值就是-1 2.我以为是11，运行后发现是10，坐等他人回复。。 因为他输出的是i, 不是i++

user: user-5
content: 搜到sizeof是Pascal的一种内存容量度量函数：C语言中判断数据类型或者表达式长度符；不是一个函数，字节数的计算在程序编译时进行，而不是在程序执行的过程中才计算出来! 所以可能只在程序编译时判断了i++的类型返回字节大小，程序运行时并没有执行i++

user: user-0
content: 引用 24 楼 轩渊 的回复:搜到sizeof是Pascal的一种内存容量度量函数：C语言中判断数据类型或者表达式长度符；不是一个函数，字节数的计算在程序编译时进行，而不是在程序执行的过程中才计算出来! 所以可能只在程序编译时判断了i++的类型返回字节大小，程序运行时并没有执行i++ 对，是的

user: user-6
content: 引用 19 楼 S_GKCYY 的回复:[quote=引用 17 楼 u012441962 的回复:] sizeof运行于预处理阶段吧 自学的伤不起。。。预处理又是在哪讲的？书上有吗？[/quote] 这块的知识需要看编译原理了，sizeof是个运算符，类似于+ -号这种，C语言是编译的时候，就将sizeof的结果翻译成数字了（个人理解），所以你运行的时候这里sizeof(i++)这里只是一个编译的时候将结果翻译出来的数字，并没有进行++这个运算。

user: user-0
content: 引用 21 楼 u012441962 的回复:[quote=引用 19 楼 S_GKCYY 的回复:] [quote=引用 17 楼 u012441962 的回复:] sizeof运行于预处理阶段吧 自学的伤不起。。。预处理又是在哪讲的？书上有吗？[/quote] 这块的知识需要看编译原理了，sizeof是个运算符，类似于+ -号这种，C语言是编译的时候，就将sizeof的结果翻译成数字了（个人理解），所以你运行的时候这里sizeof(i++)这里只是一个编译的时候将结果翻译出来的数字，并没有进行++这个运算。[/quote] 我想学c语言然后搞软件测试，编译原理是要会的是吗？

user: user-0
content: 引用 21 楼 u012441962 的回复:[quote=引用 19 楼 S_GKCYY 的回复:] [quote=引用 17 楼 u012441962 的回复:] sizeof运行于预处理阶段吧 自学的伤不起。。。预处理又是在哪讲的？书上有吗？[/quote] 这块的知识需要看编译原理了，sizeof是个运算符，类似于+ -号这种，C语言是编译的时候，就将sizeof的结果翻译成数字了（个人理解），所以你运行的时候这里sizeof(i++)这里只是一个编译的时候将结果翻译出来的数字，并没有进行++这个运算。[/quote] 谢谢

user: user-7
content: 引用 12 楼 自信男孩 的回复:[quote=引用 11 楼 自信男孩 的回复:] 第一个答案是-1；因为-1输出是%d，类型隐式提升； 第二个答案是10；需要注意的是sizeof不是函数，而是宏定义，因此宏定义在预编译阶段直接赋值，不在程序运行中执行。 需要更正一下，sizeof是计算类型的长度，因此不参与运算；sizeof()是运算符，由于在编译时计算，因此sizeof不能用来返回动态分配的内存空间的大小；不能说是宏定义，但是确实在编译时计算[/quote] +1

user: user-0
content: 引用 17 楼 u012441962 的回复:sizeof运行于预处理阶段吧 自学的伤不起。。。预处理又是在哪讲的？书上有吗？

user: user-0
content: https://blog.csdn.net/wzy198852/article/details/7246836 补了一下sizeof的课，谢谢各位。可以直接理解为sizeof()括号里的内容不参与运算吗

user: user-6
content: sizeof运行于预处理阶段吧

user: user-8
content: 谭浩强的书？……

user: user-0
content: 引用 10 楼 qq_45798109 的回复:sizeof的操作数是一个表达式的话，这个表达式时不会被计算的 感觉你说的对，但忘了为啥。。。

user: user-0
content: sizeof()在哪一章讲的呢？我刚开始学，请帮忙指出。

user: user-9
content: 引用 11 楼 自信男孩 的回复:第一个答案是-1；因为-1输出是%d，类型隐式提升； 第二个答案是10；需要注意的是sizeof不是函数，而是宏定义，因此宏定义在预编译阶段直接赋值，不在程序运行中执行。  这位仁兄说的应该比较准确。

user: user-10
content: 引用 11 楼 自信男孩 的回复:第一个答案是-1；因为-1输出是%d，类型隐式提升； 第二个答案是10；需要注意的是sizeof不是函数，而是宏定义，因此宏定义在预编译阶段直接赋值，不在程序运行中执行。 需要更正一下，sizeof是计算类型的长度，因此不参与运算；sizeof()是运算符，由于在编译时计算，因此sizeof不能用来返回动态分配的内存空间的大小；不能说是宏定义，但是确实在编译时计算

user: user-10
content: 第一个答案是-1；因为-1输出是%d，类型隐式提升； 第二个答案是10；需要注意的是sizeof不是函数，而是宏定义，因此宏定义在预编译阶段直接赋值，不在程序运行中执行。
user-0 提问: C++编程：编写一个程序，给定一个整数，将从1到整数的所有数字相加(包括1和整数)

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

user: user-2
content: 按要求写程序即可  /*-  * Copyright (C), 1999-2019, mymtom.  *                     _                *  ____  _   _ ____ _| |_ ___  ____    * |    \| | | |    (_   _) _ \|    \   * | | | | |_| | | | || || |_| | | | |  * |_|_|_|\__  |_|_|_| \__)___/|_|_|_|  *       (____/                         *  * https://bbs.csdn.net/topics/395126735  */  /**  * @file    sum.cpp  * @brief     */  #include <iostream> using namespace std;  #include <stdlib.h>  static int sum(int last) {     int total;      total = 0;     for (int number = 1; number <= last; number++) {         if (number % 5 == 0 || number % 7 == 0)             continue;         total += number;     }     return total; }  int main(void) {     string line;      while (getline(cin, line)) {         cout << sum(atoi(line.c_str())) << endl;     }      return 0; }

user: user-3
content: 然后呢 你的代码呢?