Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 一道问题求助

回复:
user: user-0
content: 顶一下顶一下顶一下顶

user: user-1
content: 1 输入n 2 char * * pStr = (char **) malloc( sizeof(char*) * n );  // 用来保存n个字符串的数组 3 char buffer[1001];    for ( I=0; I<n;i++) {       gets(buffer);       char * pT = (char* ) malloc( strlen(buffer) + 1 ); // 要比strl多一个，好放后面的0       strcpy(pT, buffer, strlen(buffer));       pStr[I] = pT; } 4 在执行你的冒泡之前自己输出一遍数据，看看是否正确的记录了字符串数组，测试排序正确之前，先确保数据是正确的    printf("%s\n", pStr[I])  5 bubble（pStart， n）；
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: O(m^2*n) 50*50*1000，最多几十毫秒（06年左右的标准）。但要看你循环体里做了什么事

user: user-3
content: 可以，甚至0点000几秒都可以。
user-0 提问: 编程思路

回复:
user: user-1
content: 引用 11 楼 千梦一生 的回复:[quote=引用 9 楼 weixin_45718499 的回复:] [quote=引用 1 楼 user-7 的回复:] 看不出来有什么问题，个位数是6能被3整除，说明剩下的4位数也能被3整除，所以if(a%3==0)++b;就可以了 我的答案是b=3000，我做编程题，做完后，就是不知道我的答案对不对，有些郁闷，简单一些还好说。  [/quote] 因为我没有运行，有部分地方还写错了。你得改一改：比如 SumT = Sum+(((a/10)/10)/10)%10; ==>SumT = SumT+(((a/10)/10)/10)%10; printf()那儿时伪代码[/quote]  看了下别人的评论，发现还有更简洁的写法：  int a = 0; int number = 0; while(a<10000) { if(a%3 == 0) number+=1; a++; } printf(number);

user: user-1
content: 引用 9 楼 weixin_45718499 的回复:[quote=引用 1 楼 user-7 的回复:] 看不出来有什么问题，个位数是6能被3整除，说明剩下的4位数也能被3整除，所以if(a%3==0)++b;就可以了 我的答案是b=3000，我做编程题，做完后，就是不知道我的答案对不对，有些郁闷，简单一些还好说。  [/quote] 因为我没有运行，有部分地方还写错了。你得改一改：比如 SumT = Sum+(((a/10)/10)/10)%10; ==>SumT = SumT+(((a/10)/10)/10)%10; printf()那儿时伪代码

user: user-2
content: 用（10000-1000）/3 是整除， 没有余数， 直接就可以确定3的倍数的数量了 如果有余数的还要判断余出来的部分是否还有3的倍数存在  如果用9999，因为它也是四位数，你还要 9999 - 1000 + 1 来计算所有的四位数有多少个

user: user-3
content: int total =0; 	int min_value =1000; 	int max_value =9999; 	for ( int i = min_value;i<min_value+3;i++) 	{ 		if (i%3==0) 		{ 			min_value =i; 			break; 		} 	} 	if (max_value%3 ==0) 		total = (max_value-min_value)/3+1; 	else 		total = (max_value-min_value)/3;  printf("total=%d \n",total);

user: user-3
content: 这题哪有什么难度，先找到符合条件前4位最小数，1002，然后找到最大数9999 ，最后结果=（9999-1002）/3+1=3000

user: user-1
content: 不得不说有一定的难度。  int a = 0; int SumT = 0; int number = 0; while(a<10000) { SumT = Sum+a%10; SumT = Sum+(a/10)%10; SumT = Sum+((a/10)/10)%10; SumT = Sum+(((a/10)/10)/10)%10; if(SumT%3 == 0) number+=1; SumT = 0; } printf(number);

user: user-4
content: 引用 5 楼 天人合一状态中的回复:[quote=引用 4 楼 ²⁰¹⁹₀₉.₀₁清梦的回复:][quote=引用 3 楼 天人合一状态中的回复:]我这写的有问题，手机端好像删除不了，我问下那个getchar函数是什么，你是在oj平台提交代码吗 读取一个字符，但是并没有赋值给任何东西。 一般用于oj，吃掉换行符操作[/quote] 我在oj刷题的时候没有碰到这样的情况，所以我怀疑是这个阻塞函数导致TLE。。[/quote] 对，我发现这里的同学都喜欢在后面加putchar 或者getchar

user: user-5
content: 你这是四位数的吧 #include<stdio.h> int main() {       int i;       for(i=10000;i<100000;i++)       {            if(i%10==6&&i/3==0)            {printf("%d\t",i);}       } return 0; }

user: user-0
content: 引用 1 楼 user-7 的回复:看不出来有什么问题，个位数是6能被3整除，说明剩下的4位数也能被3整除，所以if(a%3==0)++b;就可以了 我的答案是b=3000，我做编程题，做完后，就是不知道我的答案对不对，有些郁闷，简单一些还好说。

user: user-0
content: 引用 7 楼 千梦一生 的回复:不得不说有一定的难度。  int a = 0; int SumT = 0; int number = 0; while(a<10000) { SumT = Sum+a%10; SumT = Sum+(a/10)%10; SumT = Sum+((a/10)/10)%10; SumT = Sum+(((a/10)/10)/10)%10; if(SumT%3 == 0) number+=1; SumT = 0; } printf(number);  这个代码我运行出来没有结果，是不是因为编译软件不同的问题。

user: user-6
content: 引用 4 楼 ²⁰¹⁹₀₉.₀₁清梦的回复:[quote=引用 3 楼 天人合一状态中的回复:]我这写的有问题，手机端好像删除不了，我问下那个getchar函数是什么，你是在oj平台提交代码吗 读取一个字符，但是并没有赋值给任何东西。 一般用于oj，吃掉换行符操作[/quote] 我在oj刷题的时候没有碰到这样的情况，所以我怀疑是这个阻塞函数导致TLE。。

user: user-4
content: 引用 3 楼 天人合一状态中的回复:我这写的有问题，手机端好像删除不了，我问下那个getchar函数是什么，你是在oj平台提交代码吗 读取一个字符，但是并没有赋值给任何东西。 一般用于oj，吃掉换行符操作

user: user-6
content: 我这写的有问题，手机端好像删除不了，我问下那个getchar函数是什么，你是在oj平台提交代码吗

user: user-6
content: emmmm 五位数的范围是[10000,99999]，既然个位数确定了，那满足条件的整数只有（1000-9999）6，所以枚举tmp=1000-9999，int cur=tmp*10+6，if（cur%3） ++b

user: user-7
content: 看不出来有什么问题，个位数是6能被3整除，说明剩下的4位数也能被3整除，所以if(a%3==0)++b;就可以了
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: 听君一席话，胜读十年书，老师都不说的。最近在期末复习中，没有及时回应。

user: user-2
content: 即然知道 无符号数和有符号混合运算是转换成 无符号数进行的，那么 3-6的结果依然是无符号的 -3在无符号的情况下是 0xfffffffd， 即然是无符号的大于0在这里就成立 你用%x格式printf一下运算的结果就看到了啊

user: user-0
content: 谢谢，谢谢。我看网课老师有讲到补码，不过有点懵

user: user-3
content: 额，有点想开了，不管怎么样实际上都是补码的运算，至于怎么看待要看你的代码，例如你用%u和%d分别打印就会看到不一样的效果，这是你对数据运算后补码的形式看待，像你这种3-6，默认是看出无符号数，但是也不是3，而是将其补码看成其原码，所以才>0
user-0 提问: 为什么数组这样用会出现变量损坏的提示？

回复:
user: user-1
content: 涉及到了一些字符串的函数，必须考虑到'\0'结束符，包括输入输出、字符串函数等

user: user-2
content: 所有数组越界都会造成对其他的变量修改的问题， 引发各种不确定的后果  字符串是自动在尾巴补一个0，有一定的特殊性

user: user-0
content: 这种问题出现是只针对字符串数组吗？

user: user-1
content: 三个字符的字符串，长度是3，但是占用4字节的内存空间，你数组长度定的太小
user-0 提问: 莫名其妙的的问题3

回复:
user: user-1
content: while(scanf("%s",&numble.a1) != EOF)  {  	while(scanf("%s",&numble.a2) != EOF) a1和a2是指针，但是你们申请空间，建议你这样搞 struct dh { char a1[100];  char a2[100]; }numble;

user: user-2
content: a1和a2都没有初始化
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: 分层实现很简单，C语言写的话也不用定什么接口 经典的mvc模式，你可以百度一下，这个项目比较简单，不需要把每一层都写出了，比如把业务层和数据层并为一层也是可以的
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: .net板块里面有C#

user: user-0
content: 引用 1 楼 不闻窗外事的回复:C#发错位置了，这里是c/C++，不会C# 哦哦，不好意思，但是我没看见有C#的分区啊

user: user-3
content: C#发错位置了，这里是c/C++，不会C#
user-0 提问: 程序编译没问题就是不能够成功运行

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

user: user-2
content: printf("%s ",s[i]); 改成 %c
user-0 提问: c语言。大佬们，救救孩子吧，我快被这道题目逼疯了QAQ

回复:
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: 引用 4 楼 不闻窗外事的回复:拼接分为表头拼接和表尾拼接，我一般比较喜欢表头拼接，按照我给你发的这个，基本上就可以实现表头拼接，拼出一个链表 好的，我试试。谢谢您!!真的非常感谢!(  • ᵕ • )◞♡

user: user-2
content: 拼接分为表头拼接和表尾拼接，我一般比较喜欢表头拼接，按照我给你发的这个，基本上就可以实现表头拼接，拼出一个链表

user: user-2
content: 引用 2 楼 一条咸鱼八百里 的回复:[quote=引用 1 楼 不闻窗外事的回复:]	for (i = 0; i<n - 1; i++) 	{ 		p1a = (struct x *)malloc(L); 		scanf("%d%d", &p1a->xue, &p1a->fen); 		p2a->next = p1a; 		p2a = p1a; 	}  这个地方不对，   		p1a->next = p2a->next; p2a->next = p1a; 这样拼接，你的拼接都有问题，好好看看；还有， 	if (n>1) 		p1a = (struct x *)malloc(L), scanf("%d%d", &p1a->xue, &p1a->fen), p2a = p1a, heada = p1a;  这是你哪个老师教你的这样写程序，每个语句都分开，不要使用，号放在一条语句里 好的！不好意思，再打扰您一下下:请问链表到底应该怎么拼接呀？我看了好久书了，但是还是拼出上述这样的辣鸡东西……[/quote] 不是告诉你了，这样拼接 	p1a->next = p2a->next; p2a->next = p1a;

user: user-0
content: 引用 1 楼 不闻窗外事的回复:	for (i = 0; i<n - 1; i++) 	{ 		p1a = (struct x *)malloc(L); 		scanf("%d%d", &p1a->xue, &p1a->fen); 		p2a->next = p1a; 		p2a = p1a; 	}  这个地方不对，   		p1a->next = p2a->next; p2a->next = p1a; 这样拼接，你的拼接都有问题，好好看看；还有， 	if (n>1) 		p1a = (struct x *)malloc(L), scanf("%d%d", &p1a->xue, &p1a->fen), p2a = p1a, heada = p1a;  这是你哪个老师教你的这样写程序，每个语句都分开，不要使用，号放在一条语句里 好的！不好意思，再打扰您一下下:请问链表到底应该怎么拼接呀？我看了好久书了，但是还是拼出上述这样的辣鸡东西……

user: user-2
content: for (i = 0; i<n - 1; i++) 	{ 		p1a = (struct x *)malloc(L); 		scanf("%d%d", &p1a->xue, &p1a->fen); 		p2a->next = p1a; 		p2a = p1a; 	}  这个地方不对，   		p1a->next = p2a->next; p2a->next = p1a; 这样拼接，你的拼接都有问题，好好看看；还有， 	if (n>1) 		p1a = (struct x *)malloc(L), scanf("%d%d", &p1a->xue, &p1a->fen), p2a = p1a, heada = p1a;  这是你哪个老师教你的这样写程序，每个语句都分开，不要使用，号放在一条语句里
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: 引用 1 楼 user-2 的回复：你用递归肯定是把所有数都给考虑一遍了，你这样想， 你如果要找一个8位这样的数，说明它前7位肯定是质数 如果找7位的，前6位一定是质数。 以此类推 每一个N位质数都是由前一个N-1位质数，再加上一个数构成 这样的话，你就可以考虑剪枝选择一个能构成质数的树，而不是每次都从0-9中挑一个数 比如1位的，2 3 5 7  那么2位的一定是以1位的为基础，23 29 31 37 51 53 57 59 71 73 79 同理3位的也是 改一下代码可以了；能给我提供一个比较具体的思路么，我现在只能想得到要循环做，但还是很蒙

user: user-2
content: 你用递归肯定是把所有数都给考虑一遍了，你这样想， 你如果要找一个8位这样的数，说明它前7位肯定是质数 如果找7位的，前6位一定是质数。 以此类推 每一个N位质数都是由前一个N-1位质数，再加上一个数构成 这样的话，你就可以考虑剪枝选择一个能构成质数的树，而不是每次都从0-9中挑一个数 比如1位的，2 3 5 7  那么2位的一定是以1位的为基础，23 29 31 37 51 53 57 59 71 73 79 同理3位的也是 改一下代码可以了；
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: 你定义的name变量是char字符类型，不是字符串类型， 你如果需要字符串的话，可以定义name为char name[20];
user-0 提问: c primer plus 10.13.1，有这本书的帮我求解一下

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: 大神们帮帮我，急～

回复:
user: user-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 楼 不闻窗外事 的回复：char str[10]; fp  = fopen(); fread(str, sizeof(str), 1, fp);  for (int i = 0; i < 10; i++) {     printf("%c", str[9-i]); }这道题就直接这样做是嘛

user: user-2
content: char str[10]; fp  = fopen(); fread(str, sizeof(str), 1, fp);  for (int i = 0; i < 10; i++) {     printf("%c", str[9-i]); }

user: user-0
content: 引用 1 楼 user-3 的回复： freopen("file.txt","r",stdin);我想要具体过程～

user: user-3
content: freopen("file.txt","r",stdin);
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 楼 weixin_46047053 的回复:[quote=引用 2 楼 weixin_46047053的回复:][quote=引用 1 楼 不闻窗外事的回复:]你这个stu定义了吗，是个啥玩意？  结构体吗？ 是结构体，我定义了，这个呢[/quote] 你可以给我改改，我的成绩管理系统吗[/quote] 你如果没有使用typedef，就需要加上struct，在C++不需要加

user: user-3
content: C语言定义结构体变量需要加上struct，比如struct stu s[]

user: user-0
content: 引用 2 楼 weixin_46047053的回复:[quote=引用 1 楼 不闻窗外事的回复:]你这个stu定义了吗，是个啥玩意？  结构体吗？ 是结构体，我定义了，这个呢[/quote] 你可以给我改改，我的成绩管理系统吗

user: user-0
content: 引用 1 楼 不闻窗外事的回复:你这个stu定义了吗，是个啥玩意？  结构体吗？ 是结构体，我定义了，这个呢

user: user-2
content: 你这个stu定义了吗，是个啥玩意？  结构体吗？
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: 构建两个指针，一个用来从头到尾遍历, char*p 一个用来记录当前保留的字符位置 char *q str[]当中放你的字符串 初始化  p  q 为str的首地址; 假定 char ch 是你要删除的字符 while(*p != '\0' ) {     if (*p ！= ch )           *q++ = *p++；     else p++; } *q = '\0';  // 放上结尾字符  其他的自己写

user: user-3
content: #include<stdio.h> #include<string.h> void fun(char *s) { 	char s1[100]; 	int i=0; 	int j=0; 	for(;s[i]!='\0';i++) 	{ 		if(s[i]!='0') 		{ 			s1[j]=s[i]; 			j++; 		} 	} 	s1[j]='\0'; 	strcpy(s,s1); } int main() { 	int i,j,x,k,a[11]; 	j=0; 	char s[100]; 	scanf("%s",s); 	fun(s); 	printf("%s\n",s); 	/*scanf("%d",&x); 	if(x==0) 	return 0; 	while(x) 	{ 		i=x%10; 		if(i!=0) 		{ 			a[j++]=i; 		} 		x=x/10; 	} 	x=0; 	for(i=j-1;i>=0;i--) 	{ 		x=x*10+a[i]; 	} 	printf("%d\n",x);*/ 	return 0; }    分析：注释的部分是用数值实现的
user-0 提问: 为何函数运行最后结果总是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: 值太大了，越界了，不要使用int类型，应该使用大数相乘之类的方法实现

user: user-3
content: int一般占4个byte，作为有符号数最大也就是2^31-1，你的这个超过了计算的最大范围，建议使用double试试
user-0 提问: 看下我这个程序哪里有问题。要把几个单词按照a-z排序。

回复:
user: user-0
content: 引用 10 楼 the_ray_of_AI 的回复:[quote=引用 5 楼 不闻窗外事 的回复:] [quote=引用 4 楼 the_ray_of_AI 的回复:] [quote=引用 1 楼 不闻窗外事的回复:]你怎么又问这个问题，上次不是给你发了代码了，不对吗 好像还是不对。。。。。[/quote] 那个代码我测试过了，好像没啥问题，把错误信息贴出来看看[/quote] 好吧，我错了，我上次没复制，自己照着写的，漏了很多。谢谢了[/quote] 但我发现一个漏洞，就是加入我输入abcdef在前，zbcde在后，它比较到e就不比较了，这时候顺序就不对了

user: user-0
content: 引用 5 楼 不闻窗外事 的回复:[quote=引用 4 楼 the_ray_of_AI 的回复:] [quote=引用 1 楼 不闻窗外事的回复:]你怎么又问这个问题，上次不是给你发了代码了，不对吗 好像还是不对。。。。。[/quote] 那个代码我测试过了，好像没啥问题，把错误信息贴出来看看[/quote] 好吧，我错了，我上次没复制，自己照着写的，漏了很多。谢谢了

user: user-1
content: 引用 7 楼 the_ray_of_AI 的回复:就是它本来应该把这几个词根据a-z排列然后输出他们的单词以及注释，可根据我目前这个运行结果，它好像并没有排序一样，并且只能输出第一个单词和它的注释。 你再回到你上一次发的那个问题，我发程序都发给你了，你试一下不就完了，这样吧，我再给你发一次 #include<stdio.h>  struct entry { 	char word[15]; 	char defination[200]; }; const int N = 4; void dictionarySort(struct entry Sort[]);  int main(void) {  	int i = 0, j = 0; 	struct entry dictionary[N]; 	printf("please input the words do you want to entry.\n"); 	for (i = 0; i<N; i++) 	{ 		char c = getchar(); 		while (c != '\n') 		{ 			//dictionary[i].word[j]=getchar(); 			dictionary[i].word[j] = c; 			c = getchar(); 			j++; 		} 		dictionary[i].word[j] = '\0'; 		j = 0; 	} 	printf("Please input their defination.\n"); 	for (i = 0; i<N; i++) 	{ 		char c = getchar(); 		while (c != '\n') 		{ 			dictionary[i].defination[j] = c; 			c = getchar(); 			j++; 		} 		dictionary[i].defination[j] = '\0';    //add '\0' 		j = 0; 	} //	for (i = 0; i<N; i++) //		printf("%s %s\n", dictionary[i].word, dictionary[i].defination); 	dictionarySort(dictionary);  	return 0; }  void dictionarySort(struct entry Sort[]) { 	int i, j, k; 	struct entry temp[N]; 	i = 0; 	j = 0; 	while (Sort[i].word[j] != '\0' && Sort[i + 1].word[j] != '\0' && i+1 < N) 	{ 		if (Sort[i].word[j]>Sort[i + 1].word[j]) 		{ 			temp[i] = Sort[i + 1]; 			Sort[i + 1] = Sort[i]; 			Sort[i] = temp[i]; 			i++; 			j = 0; 		} 		else if (Sort[i].word[j]<Sort[i + 1].word[j]) 		{ 			i++; 			j = 0; 		} 		else if (Sort[i].word[j] == Sort[i + 1].word[j]) 			j++; 	} 	for (i = 0; i<N; i++) 		printf("%s %s\n", Sort[i].word, Sort[i].defination);  }

user: user-0
content: 引用 3 楼 从会超 的回复:直接给出程序要求 我给重新写一个把 编写一个名为dictionarySort()的函数，将字典(类似于教科书9.9中定义的结构数组)按字母顺序排序。编写一个程序，从键盘上读取N个单词和它们的定义，将它们存储到字典中，按字母顺序对它们进行排序，并使用它们的定义显示排序后的单词列表。一个词的定义是一个短语可以由几个词，几行，但不超过200个字符。

user: user-0
content: 就是它本来应该把这几个词根据a-z排列然后输出他们的单词以及注释，可根据我目前这个运行结果，它好像并没有排序一样，并且只能输出第一个单词和它的注释。

user: user-0
content: 引用 5 楼 不闻窗外事 的回复:[quote=引用 4 楼 the_ray_of_AI 的回复:] [quote=引用 1 楼 不闻窗外事的回复:]你怎么又问这个问题，上次不是给你发了代码了，不对吗 好像还是不对。。。。。[/quote] 那个代码我测试过了，好像没啥问题，把错误信息贴出来看看[/quote]

user: user-1
content: 引用 4 楼 the_ray_of_AI 的回复:[quote=引用 1 楼 不闻窗外事的回复:]你怎么又问这个问题，上次不是给你发了代码了，不对吗 好像还是不对。。。。。[/quote] 那个代码我测试过了，好像没啥问题，把错误信息贴出来看看

user: user-0
content: 引用 1 楼 不闻窗外事的回复:你怎么又问这个问题，上次不是给你发了代码了，不对吗 好像还是不对。。。。。

user: user-2
content: 直接给出程序要求 我给重新写一个把

user: user-2
content: 程序写的有点乱。。。。

user: user-1
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: c.biancheng.net/view/618.html
user-0 提问: i++和++i的区别是什么

回复:
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 (i = 1; i < 5; i++) 对于for循环里，i++, ++i没啥区别～

user: user-3
content: for (i = 1; i < 5; i++)中i++和++i都是相当于for循环的最后一条语句执行的，等价于i++；或者++i；语句结束 但是a = i++中i为后置++，所以会先赋值再++ a=++i，为前置++，优先运行++i，再把i赋值给a，然后语句结束

user: user-4
content: i++是先赋值后自加，++i是先自加再赋值
user-0 提问: 求大佬帮助

回复:
user: user-1
content: 引用 1 楼 user-2 的回复:跟编译器有关 不同编译器结果不一样 有的编译器会先执行三个++i，再相加，所以就会18 这种问题没多大意义。  恩，意义不大，这种题基本都是老师考学生的

user: user-2
content: 跟编译器有关 不同编译器结果不一样 有的编译器会先执行三个++i，再相加，所以就会18 这种问题没多大意义。
user-0 提问: 用指针编写程序

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

user: user-2
content: 引用 2 楼 @矛盾综合体 的回复: #include<stdio.h> void fun(int *a,int *b,int x) { 	int i=0; 	for(;i<x;i++) 	{ 		b[i]=a[i]; 		b[2*x-1-i]=a[i]; 	} } void prr(int *b,int x) { 	int i=0; 	for(;i<x;i++) 	{ 		printf("%d ",b[i]); 	} 	printf("\n"); } void main() {    int s[6]={1,2,3,4,5,6};    int s1[12];    fun(s,s1,6);    prr(s1,12); }    结果图 运行环境：gcc     编辑环境：sources insight   结果分析：额，好像也没什么好说的，如果想拓展成任意数组的话，简单的改法，可以先建一个大的数组，然后再通过输入特殊数字结尾标志，记录数组长度去实现 如果还有什么疑问或者其他，可以私信  任意数组的话，可以用malloc函数实现吧

user: user-3
content: #include<stdio.h> void fun(int *a,int *b,int x) { 	int i=0; 	for(;i<x;i++) 	{ 		b[i]=a[i]; 		b[2*x-1-i]=a[i]; 	} } void prr(int *b,int x) { 	int i=0; 	for(;i<x;i++) 	{ 		printf("%d ",b[i]); 	} 	printf("\n"); } void main() {    int s[6]={1,2,3,4,5,6};    int s1[12];    fun(s,s1,6);    prr(s1,12); }    结果图 运行环境：gcc     编辑环境：sources insight   结果分析：额，好像也没什么好说的，如果想拓展成任意数组的话，简单的改法，可以先建一个大的数组，然后再通过输入特殊数字结尾标志，记录数组长度去实现 如果还有什么疑问或者其他，可以私信

user: user-4
content: int a[4] = { 1, 2, 3, 4 }; 	int b[8];  	int *pa = a; 	int *pb = b; 	for (int i = 0; i < 4; i++) 	{ 		*(pb + i) = *(pa + i); 		*(pb + 7 - i) = *(pa + i); 	}
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: 引用 1 楼 user-3的回复:#include<stdio.h> #include<string.h> void main() {     char a[100],b[100];     int j=0,n,len,flag,s=0;     printf("请输入一个字符串：\n");     scanf("%s",a);     printf("删除前的字符串：\n");     printf("%s\n",a);     n=strlen(a); // 获取输入字符串的长度     b[0] = a[0]; // 将 a 字符串的第一个值给 b 字符串     len = 1; // 初始化 b 字符串的长度     for(int i=1;i<n;i++)      {         flag = 0; // 添加标识（为0则表示值不同，为1则表示值相同）         for(int j=0;j<len;j++)          {             if(a[i] == b[j]) // 当前 a 字符串中与 b 字符串中相同时跳出循环并且 flag 设置为 1             {                 flag = 1;                 s++; // 计算出相同的值的数量                 break;             }         }         if (!flag) // 当前 a[i] 字符串中与 b 字符串无相等时，将其加入到 b 字符串中         {             b[len++] = a[i];         }     }     b[len]='\0'; // 给 b 字符串添加结束符     printf("\n删除后的字符串：");     printf("%s\n",b);     printf("被删除的个数有%d\n",s); } 第八行scanf("%s",a) 我感觉少个&

user: user-3
content: 字符串的表示中，字符数组a与&a[0]是等价的，所以此处不能加&符号。

user: user-3
content: #include<stdio.h> #include<string.h> void main() {     char a[100],b[100];     int j=0,n,len,flag,s=0;     printf("请输入一个字符串：\n");     scanf("%s",a);     printf("删除前的字符串：\n");     printf("%s\n",a);     n=strlen(a); // 获取输入字符串的长度     b[0] = a[0]; // 将 a 字符串的第一个值给 b 字符串     len = 1; // 初始化 b 字符串的长度     for(int i=1;i<n;i++)      {         flag = 0; // 添加标识（为0则表示值不同，为1则表示值相同）         for(int j=0;j<len;j++)          {             if(a[i] == b[j]) // 当前 a 字符串中与 b 字符串中相同时跳出循环并且 flag 设置为 1             {                 flag = 1;                 s++; // 计算出相同的值的数量                 break;             }         }         if (!flag) // 当前 a[i] 字符串中与 b 字符串无相等时，将其加入到 b 字符串中         {             b[len++] = a[i];         }     }     b[len]='\0'; // 给 b 字符串添加结束符     printf("\n删除后的字符串：");     printf("%s\n",b);     printf("被删除的个数有%d\n",s); }
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: 我回答过相关类似的问题，你可以看一下，基本上差不多，那个人的帖子也有任务要求 百度一下：c语言-基于链式存储的学生成绩管理系统的设计 急！！！——CSDN问答频道 https://ask.csdn.net/questions/998348 点击第一个，就可以看到我之前写的代码，可以根据自己的需求进行删改（如果有疑问也可以私信我）

user: user-3
content: 不难的问题，自己先尝试写写吧～
user-0 提问: 求大佬帮我把这个成功运行好不好，就两个我不知所云的错误

回复:
user: user-1
content: 要么找老师理论，要么自己去找合适的版本呀

user: user-0
content: 但是我们老师提供的就是这四个，那我该怎么办呢，在哪里下载呢？

user: user-0
content: GLAUX是64的，然后其他三个都是32的

user: user-1
content: 怎么能不清楚呢？自己要编译32位还是64位都不知道吗？拿到的lib看一下是32位还是64位

user: user-1
content: 32位和64位是不能混着用的

user: user-1
content: 32位或是64位是匹配的吗？

user: user-0
content: 而且如果是没有配置那个文件的话，应该还会出现其他未定义的吧

user: user-0
content: 额这个我不太清楚，是我们老师提供的官方文件。

user: user-0
content: 但是我配置了这个文件

user: user-1
content: SwapBuffers是opengl库里面的API函数，需要链接它的lib；TextOut需要链接gdi32.lib文件

user: user-0

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-0
content: 引用 1 楼 不闻窗外事 的回复：这不就是一个链表的增删改查吗，很简单，不行就百度下看看有没有没有找到呀

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: 这种求某个阶段之和没必要用递归，感觉有点小题大做，用个基本循环累加就可以，当然用递归也是可以的，按照你的思路用个这样  int sum(int n,int m) { 	int i=n; 	if(i==m) 	{ 		return m; 	} 	else 	{ 		return n+sum(n+1,m); 	} }

user: user-3
content: int sum(int n, int m) { 	static int total = 0; 	if (n == m)return total+n; 	else return total=n+sum(n + 1, m);  }

user: user-4
content: 感觉不要total就好了

user: user-2
content: 引用 3 楼 weixin_45875618 的回复:[quote=引用 2 楼 @矛盾综合体的回复:]这种求某个阶段之和没必要用递归，感觉有点小题大做，用个基本循环累加就可以，当然用递归也是可以的，按照你的思路用个这样  int sum(int n,int m) { 	int i=n; 	if(i==m) 	{ 		return m; 	} 	else 	{ 		return n+sum(n+1,m); 	} }  我还是想问问为什么我的那个程序会输出随机数鸭#include<stdio.h>  int sum(int n,int m){    int i;i=n;   int total=0;     if(i==m) return total+m;     else total=i+sum(n+1,m);  }  int main(){   int m,n;     scanf("%d %d",&n,&m);    printf("The sum from %d to %d is %d.\n",n,m,sum(n,m));  }[/quote] 很简单，你的sum函数内的返回值设置错误（当然如果刚开始就i=m可能没什么），当i！=m的时候，sum哪里来的，怎么返回，但是其本身所占的空间的值进行打印，每次运行程序所占空间的地址不一定一样，所有就出现这种现象

user: user-0
content: 引用 2 楼 @矛盾综合体的回复:这种求某个阶段之和没必要用递归，感觉有点小题大做，用个基本循环累加就可以，当然用递归也是可以的，按照你的思路用个这样  int sum(int n,int m) { 	int i=n; 	if(i==m) 	{ 		return m; 	} 	else 	{ 		return n+sum(n+1,m); 	} }  我还是想问问为什么我的那个程序会输出随机数鸭#include<stdio.h>  int sum(int n,int m){    int i;i=n;   int total=0;     if(i==m) return total+m;     else total=i+sum(n+1,m);  }  int main(){   int m,n;     scanf("%d %d",&n,&m);    printf("The sum from %d to %d is %d.\n",n,m,sum(n,m));  }
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: int main(int argc,char *argv[])    argc是命令行总的参数个数 argv[]是argc个参数，其中第0个参数是程序的全名，以后的参数命令行后面跟的用户输入的参数， ------------------------ char *argv[]是一个字符数组,其大小是int argc,      主要用于命令行参数argv[]参数，数组里每个元素代表一个参数;

user: user-3
content: 引用 1 楼 喜欢做我自己 的回复:int main(int argc,char *argv[])    argc是命令行总的参数个数 argv[]是argc个参数，其中第0个参数是程序的全名，以后的参数命令行后面跟的用户输入的参数， ------------------------ char *argv[]是一个字符数组,其大小是int argc,      主要用于命令行参数argv[]参数，数组里每个元素代表一个参数;  也可以按这样的格式写： int main(int argc, char **argv)
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: 1、函数中如果进入else分支没有返回值 2、total是局部变量，在你这里好像没什么作用 3、int i变量有点多余    int sum(int n,int m)  {      if(n == m)     {         return m;     }    else     {        return n + sum(n+1,m);     } }

user: user-0
content: 啊啊啊，不好意思这个贴忘了，现在发  #include<stdio.h>  int sum(int n,int m){    int i;i=n;   int total=0;     if(i==m) return total+m;     else total=i+sum(n+1,m);  }  int main(){   int m,n;     scanf("%d %d",&n,&m);    printf("The sum from %d to %d is %d.\n",n,m,sum(n,m));  }

user: user-3
content: 还是说明白“这个程序”是那个程序吧，贴代码～

user: user-4
content: 程序呢？
user-0 提问: PTA中数组循环右移的问题

回复:
user: user-0
content: 引用 9 楼 SuperDay的回复:楼主学编程很积极，这一点值得肯定！但还是不够用心，所以进展有点慢 我也觉得，大佬真是火眼金睛！俺会变的

user: user-1
content: 楼主学编程很积极，这一点值得肯定！但还是不够用心，所以进展有点慢

user: user-0
content: 引用 5 楼 真相重于对错的回复:右移几位就是加几求余 谢谢大哥，俺知道了，可惜俺老早就结贴了，没得分给你了

user: user-0
content: 引用 3 楼 遇见女神的回复:不需要想那么复杂，跟swap一个道理的，左右都可以循环移动。 谢谢大哥哦，一生平安

user: user-0
content: 谢谢大哥，俺知道了，可惜俺老早就结贴了，没得分给你了

user: user-0
content: 引用 1 楼 SuperDay 的回复:又见楼主，第一种方法，m+n必然越界，并且不用交换变量，会覆盖原来的值 第二种逻辑太乱了OMG，大佬我真的是佩服的五体投地，果然是我太嫩了，阿里嘎多，好人一生平安

user: user-1
content: 又见楼主，第一种方法，m+n必然越界，并且不用交换变量，会覆盖原来的值 第二种逻辑太乱了

user: user-2
content: 右移几位就是加几求余

user: user-2
content: 右移几位就是加几求余

user: user-3
content: 不需要想那么复杂，跟swap一个道理的，左右都可以循环移动。
user-0 提问: C语言不会啊啊啊啊啊啊帮帮我吧

回复:
user: user-1
content: 定义一个数组去存储键入的数据 定义一个数组去存储重复出现两次的数据 判断里面有没有相同的数据仅出现两次，如果有，将其添加到另外定义的数组中 数组里面的元素进行排序 一次输出数组里面的元素

user: user-1
content: 问题解决了记得把帖子结下

user: user-2
content: #include<stdio.h> void paixu(int *a,int x) { 	int i,j,k; 	for(j=0;j<10;j++) 	{ 		for(i=0;i<x-j;i++) 		{ 			if(a[i]>a[i+1]) 			{ 				k=a[i]; 				a[i]=a[i+1]; 				a[i+1]=k; 			} 		}	 	}	 } void main() {    int i,j,k,x,a[10],b[10];    k=1;       i=x=0;    while(i!=10)    {    		scanf("%d",&a[i]); 		if(a[i]>99999||a[i]<-99999) 		continue; 		b[i]=100000; 		i++;    }      for(i=0;i<10;i++)    {    		for(j=i+1;j<10;j++)    		{    			if(a[i]==a[j]&&a[i]!=100000)    			{    				k++; 				a[j]=100000;    			}    		} 		if(2==k) 		{ 			b[x]=a[i]; 			x++; 		} 		k=1;    }    if(b[0]<100000)    { 	   paixu(b,x); 	   for(i=0;i<x;i++) 	   { 	   		printf("%6d\n",b[i]); 	   }    }    else    {    		printf("None\n");    } }    结果图 运行环境：gcc       编辑环境：sources insight    如有疑问或者其他，可以私信
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: int a[10]={3,8,6,5,4,4,2,9,9,7};    int *p = a;    int total = 0;    for(int i = 1; i < 10; i = i+2)    {        if(0 == *(p+i) % 2)        {            total += *(p+i);        }    }

user: user-3
content: 定义个 int * 指针，在间隔为2的for循环内通过指针 去遍历这个数组，值是偶数就加。
user-0 提问: 代码没错，结果却这样

回复:
user: user-1
content: 请及时结贴吧。

user: user-1
content: scanf()里面尽量不要加无关字符。 你输入的得跟它里面保持一致 你这样写输入就得这么来 c1=w,c2=o

user: user-2
content: #include <stdio.h>  void main(){ 	 	char c1, c2; 	scanf("%c%c", &c1,&c2);  	printf("%c, %c\n", c1, c2); 	printf("%d, %d\n", c1, c2); }
user-0 提问: for循环并列要怎么看？

回复:
user: user-0
content: 引用 1 楼 一条不会飞的鱼的回复:for只有第二个值 （b<=5）才是跳出条件 你说的哪张图？我知道会跳出来

user: user-1
content: for只有第二个值 （b<=5）才是跳出条件
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: 就是用c语言来口述这个程序

user: user-0
content: 引用 1 楼 @矛盾综合体的回复:刚刚回答完另一个人的帖子，等我找一下代码（你们不会是一个学校的吧）  #include<stdio.h> int palindromic(int x) { 	int i=0; 	while(x) 	{ 		i=i*10+x%10; 		x=x/10; 	} 	return i; } int judge(int x) { 	if(x==palindromic(x)) 	{ 		return 1; 	} 	else 	{ 		return 0; 	} } int main() { 	int x1,x2,key; 	scanf("%d",&x1); 	while(1) 	{	 		x2=palindromic(x1); 		key=judge(x2); 		if(key==0) 		{ 			printf("%d+%d=%d\n",x1,x2,x1+x2); 			x1+=x2; 		} 		else 		{ 			printf("yes palindromic\n"); 			break; 		} 	}     return 0; }    结果 编辑环境：sources insight      运行环境：gcc    如有疑问接受留言和私信 请问一下，这个程序用语言怎么说啊（就是口述的那种），我实在是不会。

user: user-2
content: 刚刚回答完另一个人的帖子，等我找一下代码（你们不会是一个学校的吧）  #include<stdio.h> int palindromic(int x) { 	int i=0; 	while(x) 	{ 		i=i*10+x%10; 		x=x/10; 	} 	return i; } int judge(int x) { 	if(x==palindromic(x)) 	{ 		return 1; 	} 	else 	{ 		return 0; 	} } int main() { 	int x1,x2,key; 	scanf("%d",&x1); 	while(1) 	{	 		x2=palindromic(x1); 		key=judge(x2); 		if(key==0) 		{ 			printf("%d+%d=%d\n",x1,x2,x1+x2); 			x1+=x2; 		} 		else 		{ 			printf("yes palindromic\n"); 			break; 		} 	}     return 0; }    结果 编辑环境：sources insight      运行环境：gcc    如有疑问接受留言和私信
user-0 提问: c语言新生求指点

回复:
user: user-0
content: 继续捞继续捞

user: user-0
content: 捞一下捞一下

user: user-1
content: #include<stdio.h> #include<stdlib.h>  int main() {     int t,n,a[5],i,j,sum,sum1,sum2,c,d;      while (scanf("%d", &t) == 1) {         while (t--) {             scanf("%d", &n);             if (n > 5)    //avoid overflow                 n = 5;             //sum = 0;             for(i=0;i<n;i++)                 scanf("%d",&a[i]);              sum = 0;             for(i=0;i<n;i++)                 sum+=a[i];             printf("%d\n",sum);              for(i=0;i<n-1;i++){                 for(j=0;j<n-1-i;j++){                     if(a[j]>a[j+1]) {                         d=a[j];                         a[j]=a[j+1];                         a[j+1]=d;                     }                 }             }              c=sum-a[0];             for(i=1;i<(n/2+1);i++){                 a[i] = a[n-1-i];             }             for(i=1;i<=n;i++){                 sum1=0;                 sum2=0;                 for(j=0;j<i;j++){                     sum1+=a[j];                     sum2 = sum-sum1;                 }                 printf("%d %d\n", sum1,sum2);                 if(abs(sum2-sum1) < c)                     c = abs(sum2-sum1);              }             printf("%d\n",c);         }     }     return 0; }  供参考～  如果认为sum1, sum2结果不对建议找一下自己的算法问题，代码没发现什么问题，应该是逻辑问题～再分析一下需求～

user: user-2
content: 代码格式有点混乱，代码感觉写的也有点乱，但是求和和输入，冒泡排序之类的应该没什么，不过感觉对n的输入数值应该要求有点严格，前面要求1-5，后面又必须2-5，额，剩下的就留给楼主自己看吧，不过求和应该没什么问题，只需要严格按照你自己设计的输入去，例如 1 5 1 2 3 4 5，这样求和至少没什么，而且感觉有点不知道楼主想做什么
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: 1245，回车被c4接收了
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 <stdlib.h> struct Node { int val; struct Node* next; };  struct Node* construct(int arr[], int size){ 	struct Node * head = NULL; 	struct Node * pre = NULL; 	struct Node * temp = NULL; 	for(int i = 0; i < size; i++){ 		temp = (struct Node *)calloc(1, sizeof(struct Node)); 		temp->val = arr[i]; 		if(i == 0){ 			head = temp; 		} 		if(pre != NULL){ 			pre->next = temp; 		} 		pre = temp; 	} 	return head; } void show(struct Node* head){ 	struct Node* temp = head; 	while(temp){ 		printf("%d\t", temp->val); 		temp = temp->next; 	} }  void freeNode(struct Node* head){ 	struct Node* temp = head; 	struct Node* next = head->next; 	while(temp){ 		printf("free->%d\n", temp->val); 		free(temp); 		temp = next; 		next = next->next; 		 	} } void main(){ 	int arr[6] = {1,2,45,5,45,45}; 	struct Node* head = construct(arr, 6); 	show(head); 	freeNode(head);  }

user: user-3
content: 所以，你的问题是什么？写这个函数遇到什么问题了？
user-0 提问: 嵌入式操作系统毕业设计选题

回复:
user: user-1
content: 给个参考： https://blog.csdn.net/Donald_Shallwing/article/details/86706266

user: user-2
content: 电子音乐相册吧，基础的bmp图片，循环，自动搜索图片等 智能寻迹小车，图书馆管理器，或者什么2048之类的游戏
user-0 提问: VS2013报错0x00007FFFCC9EAFD3 (msvcr120d.dll) (ConsoleApplication1.exe 中)处有未经处理的异常:

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
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: 你是怎么来存储学生的信息的？文件？还是数据库？ 如果是这样存储的话，直接读取文件或数据库中的记录总数不就得了？ 参考文档： https://blog.csdn.net/Donald_Shallwing/article/details/99734501

user: user-3
content: 引用 1 楼 weixin_46041888的回复:下面是题目 2.学生学籍管理 用结构体存放学生的学籍，可对学生学籍进行修改，增加，删除，查找，统计等操作。要求可以使用菜单列表，根据选择的功能编号给出相应结果。 功能要求： （1）系统以菜单方式工作。 （2）每位学生的信息包括：学生的学号，姓名，性别，年龄，专业，班级； （3）修改已知学号的学生信息； （4）删除已知学号的学生信息； （5）查找已知学号的学生信息； （6）增加一位学生的学生信息； （7）统计学生总数。 你是来这找大神帮你写考试作业吗？

user: user-0
content: 下面是题目 2.学生学籍管理 用结构体存放学生的学籍，可对学生学籍进行修改，增加，删除，查找，统计等操作。要求可以使用菜单列表，根据选择的功能编号给出相应结果。 功能要求： （1）系统以菜单方式工作。 （2）每位学生的信息包括：学生的学号，姓名，性别，年龄，专业，班级； （3）修改已知学号的学生信息； （4）删除已知学号的学生信息； （5）查找已知学号的学生信息； （6）增加一位学生的学生信息； （7）统计学生总数。
user-0 提问: 求助，C语言程序设计 一个矩阵:任意一行的加和=任意一列的加和=每条对角线的和

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: 求助c语言大佬

回复:
user: user-1
content: #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 20 int min(int a, int b, int c) {     int min = 0;     min = a < b ? a : b;     min = c < min ? c : min;     return min; } int minDistance(char* s1, char* s2) {     int len1 = strlen(s1);     int len2 = strlen(s2);      int dp[len1 + 1][len2 + 1];     for (int i = 0; i < len1 + 1; i++)     {         for (int j = 0; j < len2 + 1; j++)         {             dp[i][j] = 0;         }     }     for (int j = 1; j < len2+1; j++)     {         dp[0][j] = dp[0][j - 1] + 1;     }     for (int i = 1; i < len1+1; i++)     {         dp[i][0] = dp[i - 1][0] + 1;     }     for (int i = 1; i < len1 + 1; i++)     {         for (int j = 1; j < len2 + 1; j++)         {             if (s1[i-1] == s2[j-1])             {                 dp[i][j] = dp[i - 1][j - 1];             }             else             {                 dp[i][j] = min(dp[i - 1][j - 1], dp[i][j - 1], dp[i - 1][j]) + 1;             }          }     }     return dp[len1][len2]; }  int main() {     char s1[N], s2[N];     printf("Please input the first string\n");     gets(s1);     printf("Please input the second string\n");     gets(s2);     int dis = 0;     dis = minDistance(s1, s2);     printf("The distance is %d\n", dis); }
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: #include<stdio.h> #include<stdlib.h> #include<string.h>  int main() {     FILE *fp,*fp1;     int n,min=100,max=0;     int i=0,k=0;     double average;      fp=fopen("score.txt","r");     if (!fp) {         fprintf(stderr, "Open file error!\n");         return -1;     }      while(!feof(fp))     {         fscanf(fp,"%d", &n);         k+=n;         i++;         if(min>n)             min=n;         if(max<n)             max=n;     }     fclose(fp);      average = k*1.0/i;     fp1=fopen("result.txt","w");     if (!fp1) {         fprintf(stderr, "Open file error!\n");         return -1;     }     //fprintf(fp1,"%.2f %d %d", average, max, min);     fprintf(fp1,"%.2lf %d %d", average, max, min);     fclose(fp1);      return 0; } 供参考～  试试这个～
user-0 提问: 小白求助

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:因为最后的'\0'没有拷贝到t末尾 懂了，谢谢大佬的指点

user: user-0
content: 懂了，谢谢大佬的指点

user: user-1
content: 因为最后的'\0'没有拷贝到t末尾
user-0 提问: 请问输出的前后边的空格要怎么消除？

回复:
user: user-0
content: 引用 3 楼 自信男孩 的回复:#include<stdio.h>  int main() {     int i,j,a,t=0;     for(i=1;i<=4;i++)     {for(j=1;j<=5;j++)         {              a=i*j;             t++;             //if(i!=0);    //多一个分号;             if(i != 0)    //这个代码冗余，i会为0吗？             printf("%d",a);             if (j < 5)   //最后一个数之后的空格去掉，即最后一个数后的空格不打印                 printf(" ");             if(t%5 == 0)             printf("\n");         }         printf("\n");     }     return 0; } 非常感谢！！

user: user-1
content: #include<stdio.h>  int main() {     int i,j,a,t=0;     for(i=1;i<=4;i++)     {for(j=1;j<=5;j++)         {              a=i*j;             t++;             //if(i!=0);    //多一个分号;             if(i != 0)    //这个代码冗余，i会为0吗？             printf("%d",a);             if (j < 5)   //最后一个数之后的空格去掉，即最后一个数后的空格不打印                 printf(" ");             if(t%5 == 0)             printf("\n");         }         printf("\n");     }     return 0; }

user: user-0
content: 引用 1 楼 自信男孩 的回复:建议楼主把问题描述的更清晰一些，如果从程序上来看，不要空格，那么就去掉printf(" "); 输出是你自己定的，想输出就输出，不想就可以不输出。就是输出后最后一个数后边还是会有空格，我想要只有数之间有空格，前边和后边的空格去掉

user: user-1
content: 建议楼主把问题描述的更清晰一些，如果从程序上来看，不要空格，那么就去掉printf(" "); 输出是你自己定的，想输出就输出，不想就可以不输出。
user-0 提问: C语言指针入门遇到一个问题

回复:
user: user-0
content: 谢谢，我太粗心了

user: user-1
content: #include<stdio.h> void swap(int *q1,int *q2) {     int temp;       temp=*q1;       *q1=*q2;       *q2=temp; } void sanexchange(int *p_1,int *p_2,int *p_3) {   if(*p_1<*p_2)       swap(p_1,p_2);   if(*p_1<*p_3)       swap(p_1,p_3);   if(*p_2<*p_3)       swap(p_2,p_3); }  //void main() int main() {    int a,b,c;    int *p1,*p2,*p3;    //scanf("%d%d%d\n",&a,&b,&c);    scanf("%d%d%d",&a,&b,&c);    p1=&a;    p2=&b;    p3=&c;    sanexchange(p1,p2,p3);    printf("%d%d%d",a,b,c); } 供参考～  swap实参与形参类型不匹配

user: user-2
content: if(*p_1<*p_2)swap(*p_1,*p_2);这里的*p_1是将其内容传递给swap函数，而不是指针传递，参数不匹配
user-0 提问: 帮看看怎么做一个程序流程图 ，该怎么写

回复:
user: user-1
content: 下载后如果你的问题已经解决，希望采纳，如果还有疑问，接受私信

user: user-1
content: 引用 3 楼 FANTA88 的回复:[quote=引用 2 楼 @矛盾综合体 的回复:] 兼容office或者wps的话建议用visio（以前单片机都需要有找个框图，不然凉凉）  需要的话可以私信我发你链接 需要需要 qq1955793878 可以给我发一下吗  或者私信给我 [/quote] 链接7天内有效

user: user-0
content: 引用 2 楼 @矛盾综合体 的回复:兼容office或者wps的话建议用visio（以前单片机都需要有找个框图，不然凉凉）  需要的话可以私信我发你链接 需要需要 qq1955793878 可以给我发一下吗  或者私信给我

user: user-1
content: 兼容office或者wps的话建议用visio（以前单片机都需要有找个框图，不然凉凉）  需要的话可以私信我发你链接

user: user-2
content: 有软件的，自己去找一下吧
user-0 提问: C语言入门小白求大神指点

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

user: user-0
content: 引用 5 楼 @矛盾综合体的回复:[quote=引用 4 楼 陳小白 的回复:] [quote=引用 2 楼 @矛盾综合体的回复:]思路没有错误，输入有错误，你这里的逗号是汉语的，但是你直接输入的格式却要求英文逗号，中文和英文的0101代码是不一样的，所有造成不匹配，解决方法，将输入改为英文，或者直接去掉scanf里面的，号，输入时用空格或者回车都可以隔离数字 哦哦，这样啊，谢谢你，我知道了，多谢多谢[/quote] 如果问题已经解决，请采纳，谢谢[/quote] 解决了，命令符输入了几个数字，逗号错了，应该用英文格式，还是我自己不仔细，刚刚起步，这种问题不该错，丢人，谢谢你啊！

user: user-2
content: 引用 4 楼 陳小白 的回复:[quote=引用 2 楼 @矛盾综合体的回复:]思路没有错误，输入有错误，你这里的逗号是汉语的，但是你直接输入的格式却要求英文逗号，中文和英文的0101代码是不一样的，所有造成不匹配，解决方法，将输入改为英文，或者直接去掉scanf里面的，号，输入时用空格或者回车都可以隔离数字 哦哦，这样啊，谢谢你，我知道了，多谢多谢[/quote] 如果问题已经解决，请采纳，谢谢

user: user-0
content: 引用 2 楼 @矛盾综合体的回复:思路没有错误，输入有错误，你这里的逗号是汉语的，但是你直接输入的格式却要求英文逗号，中文和英文的0101代码是不一样的，所有造成不匹配，解决方法，将输入改为英文，或者直接去掉scanf里面的，号，输入时用空格或者回车都可以隔离数字 哦哦，这样啊，谢谢你，我知道了，多谢多谢

user: user-3
content: 注意下逗号的中英文。代码里用的是英文，输入的时候也要用英文，若用中文，也要相同；  因为scanf是格式化输入，所以格式要保持一样

user: user-2
content: 思路没有错误，输入有错误，你这里的逗号是汉语的，但是你直接输入的格式却要求英文逗号，中文和英文的0101代码是不一样的，所有造成不匹配，解决方法，将输入改为英文，或者直接去掉scanf里面的，号，输入时用空格或者回车都可以隔离数字

user: user-0
content: 有人没？C语言刚刚起步，求指点
user-0 提问: 想请教一下关于线程分离的问题

回复:
user: user-0
content: 感谢！明白了！！

user: user-1
content: 会发生意想不到的情况，比如挂了。所以你要用deach的时候，要保证主线程的生命周期长于子线程。所以一般会在主线程退出前调用join的，deach反正我是很少用
user-0 提问: c语言将split部分程序改为使用指针

回复:
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 楼 suifengsanjin的回复:函数里面 a[low] 可以写成 *(a+low)   [quote=引用 2 楼 suifengsanjin 的回复:] int split(int *a,int low,int high) 看这个 https://blog.csdn.net/qingsong3333/article/details/78220372[/quote] 已经改好了，但是还是谢谢你！

user: user-2
content: 函数里面 a[low] 可以写成 *(a+low)   引用 2 楼 suifengsanjin 的回复:int split(int *a,int low,int high) 看这个 https://blog.csdn.net/qingsong3333/article/details/78220372

user: user-2
content: int split(int *a,int low,int high) 看这个 https://blog.csdn.net/qingsong3333/article/details/78220372

user: user-0
content: 请大佬帮忙改一下，给点提示也行，十分感谢！
user-0 提问: C的作业题，刚学不会做，有无大佬

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:刚学习就要编写这么多功能的程序吗？要么是学习过了，但是没学好，要么老师给的题目超纲了。 刚学完，不熟，有的没学，不会

user: user-1
content: 刚学习就要编写这么多功能的程序吗？要么是学习过了，但是没学好，要么老师给的题目超纲了。
user-0 提问: 又双叒叕不会做了

回复:
user: user-1
content: char *p = "I love C language" int count = 0,MaxCount; while(*p!='\0') { if(*p == ' ') { MaxCount  = MaxCount>count?MaxCount:count; count = 0; } else count++; p++; } MaxCount  = MaxCount>count?MaxCount:count;

user: user-2
content: 看下这段代码 吃透的话也可以 #include <stdio.h> #include <stdlib.h> #include <string.h> #define _MAX(a,b) ((a) > (b) ?(a):(b))  int main() { 	int max_length = 0; 	char src[1024] = {"code is far away from bug with the animal protection"}; 	char * pre = src; 	char * npos = 0; 	while(1) { 		npos = strchr(pre+1 , ' '); 		if(npos) { 			max_length = _MAX(max_length,npos - pre); 			pre = npos; 		} else { 			max_length = _MAX(max_length,strlen( pre)); 			break; 		} 	} 	printf("Max word length is %d\n",max_length); 	return 0; }

user: user-2
content: 顺序读字符，每读一个count++,遇上空格，就记录下当前maxcount，count=0 代码自己摸索
user-0 提问: 对结构体的数组赋值

回复:
user: user-1
content: 结构体内部这个 VerTexType这个也是个结构体，按结构体的赋值方式试下？ AMGraph G 数值 G.vex[i].xxxx=xxx; char 数组 strcpy(G.vex[i].xxxx,xxxx);

user: user-2
content: VerTexType这是啥类型。能不嫩直接赋值要看这个是什么类型的。
user-0 提问: 数据类型问题

回复:
user: user-1
content: 楼主为什么不通过编译运行之后再分析一下呢？  在网上直接搜一下%-4d，或许能知道蛛丝马迹，尝试着自己去解决问题吧。  比如把-去掉试试，再运行一下试试。通过自己的调试和猜测或许你能学到更多～ 建议多动手～

user: user-2
content: + - 是左右对齐的占位符，%-4d 的意思就是 左对齐不足4位的用空格站位，比如%-4d，1输出就是1后面跟三个空格符 另外你这个代码的意思printf("\n")应该在循环体内执行吧，所以for要加个大括号把两个printf包含在里面吧
user-0 提问: 求助，要用c语言来编写，急着要 谢谢各位啦，要求如下：

回复:
user: user-1
content: 自己写， 有问题贴代码求助 自己写，才有助于提高水平 单纯要代码的，自己百度找吧

user: user-2
content: 现在找代写都变这么委婉了吗？
user-0 提问: 判断题：continue语句只能用于三个循环语句中

回复:
user: user-1
content: 三个循环语句即：for，while，do .. while语句吧  其实continue只能用于循环语句中～

user: user-2
content: 就是说continue只能出现在循环语句中  do{ ... continue; ... }while(...)  for(...) { ... continue; ... }  while(...) { ... continue; ... }

user: user-3
content: 引用 2 楼 user-4的回复:[quote=引用 1 楼 远诚友加 的回复:] do for while 三种循环语句，题目肯定错了，不必深究没看懂 判断题答案是对的 你的回复也是写出三种  那题目是怎么错的?[/quote] 好吧，题目没错，题目说“个”我一时理解不过来，这个题目是说，continue语句只能用在do，for，while这三个循环语句中，这个表述方式挺奇怪的

user: user-4
content: 引用 1 楼 远诚友加 的回复:do for while 三种循环语句，题目肯定错了，不必深究没看懂 判断题答案是对的 你的回复也是写出三种  那题目是怎么错的?

user: user-3
content: do for while 三种循环语句，题目肯定错了，不必深究
user-0 提问: 关于输入输出函数返回值的问题

回复:
user: user-0
content: 引用 1 楼 远诚友加的回复:scanf返回值为成功读入变量数 感谢大佬现在已经懂了

user: user-0
content: 引用 2 楼 自信男孩的回复:On success, these functions return the number of input items successfully matched and assigned; this can be fewer than provided for, or even zero, in the event of an early matching failure.  可以翻译一下这段英文。可以简单理解一下：就是若运行成功，则会返回与分配的相匹配的输入的项目数，也可能返回小于提供的项目数，甚至是等于0，当出现匹配失败时。 The value EOF is returned if the end of input is reached before either the first successful conversion or a matching failure occurs.  EOF is also returned if a read  error  occurs,  in  which        case the error indicator for the stream (see ferror(3)) is set, and errno is set to indicate the error 这段自己翻译吧～ 感谢大佬现在已经懂了

user: user-1
content: On success, these functions return the number of input items successfully matched and assigned; this can be fewer than provided for, or even zero, in the event of an early matching failure.  可以翻译一下这段英文。可以简单理解一下：就是若运行成功，则会返回与分配的相匹配的输入的项目数，也可能返回小于提供的项目数，甚至是等于0，当出现匹配失败时。 The value EOF is returned if the end of input is reached before either the first successful conversion or a matching failure occurs.  EOF is also returned if a read  error  occurs,  in  which        case the error indicator for the stream (see ferror(3)) is set, and errno is set to indicate the error 这段自己翻译吧～

user: user-2
content: scanf返回值为成功读入变量数
user-0 提问: 向各位大佬们求助：

回复:
user: user-0
content: 引用 1 楼 與蘤舊縐的回复:搞个管理系统之类的好了，省的自己想需求，而且也不算太水 我看搞个成绩管理比较好点，math用来求均方根 谢谢意见，十分宝贵，感谢！

user: user-1
content: 搞个管理系统之类的好了，省的自己想需求，而且也不算太水 我看搞个成绩管理比较好点，math用来求均方根
user-0 提问: 关于%p的疑问

回复:
user: user-1
content: 是变量d的地址值。因为p = &b;这个表达式的操作就是把b的地址值存在变量p中。 %p是输出地址值，一般是指针的。

user: user-2
content: %p是一种指针变量显示格式，并不常用，一般情况下%X或者%x就可以了

user: user-2
content: 所有的变量都有地址，代表变量在内存中所在的位置，除了地址之外，变量还有值，就存放在该地址所指向的那段内存空间里面，甚至常量也有地址和值。指针变量也是变量，当然也有地址。只不过指针变量（在32位应用里面是一个32位的整数）的值又是一个地址，这个地址可以随程序运行过程中改变，改变的就是指针的值，通过这个值可以引用到另一个地址里面的值。如此而已！

user: user-3
content: 这个输出的是指向d的地址
user-0 提问: if语句的使用

回复:
user: user-0
content: 引用 4 楼 SuperDay 的回复：还要给你发完整的代码吗？ #include <stdio.h> int main() {     float x;     scanf ("%f",&x);     if(x<1)         printf("y=%f",x);     else if(x<10)         printf("y=%f",3-x/5);     else         printf("y=%f",3*x-10);     return 0; ｝不用了，谢谢

user: user-0
content: 引用 1 楼 一条不会飞的鱼 的回复：楼主把代码（不要图片）和输出结果贴出来比较好判断已经解决，谢谢

user: user-0
content: 引用 2 楼 SuperDay 的回复：没有1<=x<10这种用法 下面这样写就好了 if(x<1)printf…… else if(x<10)printf…… else printf……谢谢，

user: user-1
content: 第二个if有问题呢。  三个if可以串起来的：  if (x < 1)     xxxx else if (x < 10) xxxxx else  xxxx

user: user-2
content: 还要给你发完整的代码吗？ #include <stdio.h> int main() {     float x;     scanf ("%f",&x);     if(x<1)         printf("y=%f",x);     else if(x<10)         printf("y=%f",3-x/5);     else         printf("y=%f",3*x-10);     return 0; ｝

user: user-0
content: #include <stdio.h> int hand () {float x; scanf ("%f",&x); if(x<1) printf("y=%f",x); if(1<=x<10) printf("y=%f",3-x/5); if(x>=10) printf("y=%f",3*x-10); return 0;｝ 输入15 y=0.000000y=35.000000 输入-5 y=5.000000y=4.000000

user: user-2
content: 没有1<=x<10这种用法 下面这样写就好了 if(x<1)printf…… else if(x<10)printf…… else printf……

user: user-3
content: 楼主把代码（不要图片）和输出结果贴出来比较好判断
user-0 提问: 求解答

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

user: user-0
content: 引用 1 楼 寻开心的回复:代码贴文字版的，都弄成图，怎么给你改啊  1 读入数据， scanf   &a【I】 后面不要再scanf个\n         自己先试试，是不是把数据都正确读入了。 a数组读取后，循环输出一次检测     什么时候都不要偷这个懒，一定检查数据正确读入，再做后面的事儿  2 dh函数b数组的处理问题    因为b数组是要被反复用到的，所以一次性把60天的数据都算完就好了    b【0】=0，b【1】=10， 此后b【ℹ️】 = b【I-1】 + b【I-2】 从2循环到60    你还可以再做一个C数组， 根据b数组的数值， 把累计数据也一个循环做完    c【0】 = 0。c【1】 = 10；  c【ℹ️】 = c【I-1】 + b【I】    剩下的反而简单了，根据从a数组读出数据，直接输出c【0】 到 c【a【i】】就完了  这部分代码就自己弄吧 读入数据， scanf   &a【I】 后面的scanf个\n     删了就可以输出了。谢谢

user: user-2
content: 代码贴文字版的，都弄成图，怎么给你改啊  1 读入数据， scanf   &a【I】 后面不要再scanf个\n         自己先试试，是不是把数据都正确读入了。 a数组读取后，循环输出一次检测     什么时候都不要偷这个懒，一定检查数据正确读入，再做后面的事儿  2 dh函数b数组的处理问题    因为b数组是要被反复用到的，所以一次性把60天的数据都算完就好了    b【0】=0，b【1】=10， 此后b【ℹ️】 = b【I-1】 + b【I-2】 从2循环到60    你还可以再做一个C数组， 根据b数组的数值， 把累计数据也一个循环做完    c【0】 = 0。c【1】 = 10；  c【ℹ️】 = c【I-1】 + b【I】    剩下的反而简单了，根据从a数组读出数据，直接输出c【0】 到 c【a【i】】就完了  这部分代码就自己弄吧
user-0 提问: 各位大神，请问一下，线程里面可以创建线程么？

回复:
user: user-0
content: 引用 6 楼 xian_wwq 的回复：既然是线程， 那么就不能默认认为先启动的线程一定先执行 执行顺序是乱序的 而传给线程的参数是局部变量， 那么是不能保证一定不变。 可以在循环中加sleep，然后看效果。循环中是有sleep 1s的，在外面的线程中sleep没什么变化，在里面的线程中sleep，值就没有正确的

user: user-1
content: 既然是线程， 那么就不能默认认为先启动的线程一定先执行 执行顺序是乱序的 而传给线程的参数是局部变量， 那么是不能保证一定不变。 可以在循环中加sleep，然后看效果。

user: user-0
content: 引用 2 楼 自信男孩 的回复：可以呢，在main函数了创建线程，就是在主线程里创建子线程，在自定义函数里创建线程也是在创建子线程。大佬看我下面发的图

user: user-0
content: 引用 1 楼 user-3 的回复：可以，传入的值更改需要你自己保证不被更改，参数以指针结构传入大佬看我下面发的图

user: user-0
content: 附图以及运行结果

user: user-2
content: 可以呢，在main函数了创建线程，就是在主线程里创建子线程，在自定义函数里创建线程也是在创建子线程。

user: user-3
content: 可以，传入的值更改需要你自己保证不被更改，参数以指针结构传入
user-0 提问: PTA中的一个关于指针的一个语法小问题

回复:
user: user-0
content: 引用 1 楼 真相重于对错 的回复:据上面所说 这个函数应该是把 x 拆成 intpart 和 fracpart两部分 你的代码是把后面两部分相加。 逻辑错误 类似 比如X=5.2 那么 intpart =5 fracpart=0.2;了解了，俺把他变成这样就对了，void splitfloat( float x, int *intpart, float *fracpart ){    if(*fracpart<=0.0&&*intpart>=0){     *intpart=x-*fracpart;    *fracpart=x-*intpart;    } }谢谢大佬，大佬天天开心啊

user: user-1
content: 据上面所说 这个函数应该是把 x 拆成 intpart 和 fracpart两部分 你的代码是把后面两部分相加。 逻辑错误 类似 比如X=5.2 那么 intpart =5 fracpart=0.2;
user-0 提问: n的k次方的程序

回复:
user: user-1
content: #include <stdio.h>   double CF(int n, int k) {     if (k > 0)         return n*CF(n, k - 1);     else if (k < 0)         return (1.0/n)*CF(n, k + 1);     else         return 1; } int main() {     int n = 0;     int k = 0;     double ret = 0;     scanf("%d %d", &n,&k);     ret = CF(n, k);     printf("%d^%d=%lf\n", n, k, ret);      return 0; } 供参考～

user: user-1
content: #include <stdio.h>   double CF(int n, int k) {     if (k > 0)         return n*CF(n, k - 1);     if (k < 0)         //return (1.0/n)*CF(1.0/ n, -k - 1);         return (1.0/n)*CF(n, k + 1);     if (k == 0)         return 1;      return 0; } int main() {     int n = 0;     int k = 0;     double ret = 0;     scanf("%d %d", &n,&k);     ret = CF(n, k);     printf("%d^%d=%lf\n", n, k, ret);      return 0; } 供参考～  建议对比一下找出自己的问题～
user-0 提问: #语法错误#

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

user: user-2
content: 引用 3 楼 Kmxs 的回复:[quote=引用 1 楼 @矛盾综合体的回复:]错误原因 1.if成立语句后面没有花括号，即{}，所有只能执行if后面的一条语句，执行后，继续执行，但是下面没有else，而是一条正常执行语句，导致后面的else没办法与if配对造成语法错误 2.x1=b+sqrt(d)/(2a);这里2a也有问题，2*a，不支持2a这种写法 3.printf("当a=%lf,b=%lf,c=%lf"a,b,c);printf("x1=%lf"x1);printf("x2=%lf\n"x2);这三个地方a，x1和x2之前均没有打，隔开 4.b=0这是一个赋值语句，是绝对成立的，判断语句应该是b==0 以上应该就是大致的语法错误（默默表示这些应该编译一下就知道的） 看的很仔细，非常感谢！[/quote] 如果你的问题已经解决，你可以选择对你帮助较好的采纳，如果没有，欢迎私信或者留言，留下你的疑惑，谢谢！

user: user-0
content: 引用 1 楼 @矛盾综合体的回复:错误原因 1.if成立语句后面没有花括号，即{}，所有只能执行if后面的一条语句，执行后，继续执行，但是下面没有else，而是一条正常执行语句，导致后面的else没办法与if配对造成语法错误 2.x1=b+sqrt(d)/(2a);这里2a也有问题，2*a，不支持2a这种写法 3.printf("当a=%lf,b=%lf,c=%lf"a,b,c);printf("x1=%lf"x1);printf("x2=%lf\n"x2);这三个地方a，x1和x2之前均没有打，隔开 4.b=0这是一个赋值语句，是绝对成立的，判断语句应该是b==0 以上应该就是大致的语法错误（默默表示这些应该编译一下就知道的） 看的很仔细，非常感谢！

user: user-3
content: #include<stdio.h> #include<math.h> int main() {     printf("这是一个一元二次求根程序，请依次输入\na=\t,b=\t,c=\t\n");     double a,b,c,d,x1,x2;     scanf("%lf,%lf,%lf",&a,&b,&c);     d=b*b-4*a*c;     //printf("当a=%lf,b=%lf,c=%lf"a,b,c);     printf("当a=%lf,b=%lf,c=%lf", a,b,c);     //if(d>0||d=0)     if (d < 0) {         printf("原式无解");         return -1;     }      //if(d > 0 || fabs(d)< 1e-15)     //x1=b+sqrt(d)/(2a);     x1=b+sqrt(d)/(2 * a);     //x2=b-sqrt(d)/(2a);     x2=b-sqrt(d)/(2 * a);     //printf("x1=%lf"x1);     printf("x1=%lf", x1);     //printf("x2=%lf\n"x2);     printf("x2=%lf\n", x2);     //else     //printf("原式无解");     return 0; } 供参考～  去掉语法错误，是编程的基本功，建议楼主还是要加强基础学习和练习

user: user-2
content: 错误原因 1.if成立语句后面没有花括号，即{}，所有只能执行if后面的一条语句，执行后，继续执行，但是下面没有else，而是一条正常执行语句，导致后面的else没办法与if配对造成语法错误 2.x1=b+sqrt(d)/(2a);这里2a也有问题，2*a，不支持2a这种写法 3.printf("当a=%lf,b=%lf,c=%lf"a,b,c);printf("x1=%lf"x1);printf("x2=%lf\n"x2);这三个地方a，x1和x2之前均没有打，隔开 4.b=0这是一个赋值语句，是绝对成立的，判断语句应该是b==0 以上应该就是大致的语法错误（默默表示这些应该编译一下就知道的）