Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
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: #include <stdio.h> #include <stdlib.h>  typedef struct { 	int weight; 	int parent, lchild, rchild; }HTNode, *HuffmanTree;  void InitTree(HuffmanTree &HT, int n)//初始化 { 	int m, i; 	if (n <= 1)  return; 	m = 2 * n - 1; 	memset(HT, 0, sizeof(HuffmanTree)); 	for (i = 1; i <= m; i++) 	{ 		HT[i].parent = 0; 		HT[i].lchild = 0; 		HT[i].rchild = 0; 		HT[i].weight = 0; 	} 	for (i = 1; i <= n; i++) 		scanf("%d", &HT[i].weight); }  void Select(HuffmanTree &HT, int n, int &s1, int &s2)//选选出数组中的两个最小数 { 	int i = 0; 	int min1 = HT[1].weight; 	int min2 = HT[1].weight; 	for (i = 1; i <= n; i++) 	{ 		if (HT[i].weight < min1) 			min1 = HT[i].weight; 		s1 = i; 	} 	for (i = 1; i <= n; i++) 	{ 		if (HT[i].weight < min2&&min2 != min1) 			min2 = HT[i].weight; 		s2 = i; 	}  }  void CreatHuffmanTree(HuffmanTree &HT, int n,int m)//创建哈夫曼树 { 	int s1 = 0, s2 = 0; 	for (int i = 1; i <= n; i++) 		scanf("%d", HT[i].weight); 	for (int i = n + 1; i <= m; i++) 	{ 		Select(HT, i - 1, s1, s2);//选择出HT中的两个最小值 		HT[s1].parent = HT[s2].parent = i; 		HT[i].lchild = s1; HT[i].rchild = s2; 		HT[i].weight = HT[s1].weight + HT[s2].weight; 	}  }  void PrintHuffmanTree(HuffmanTree &HT, int m) { 	int i = 0; 	for (i = 1; i <= m; i++) 	{ 		printf("节点序号为:\n", i); 		printf("权重:\n", HT[i].weight); 		printf("parent:\n", HT[i].parent); 		printf("lchild:\n", HT[i].lchild); 		printf("rchild:\n", HT[i].rchild); 	} } int main() { 	int n; 	int i = 0, m = 0; 	scanf("%d", &n); 	printf("请输入哈夫曼树中的叶子结点的个数:\n", n); 	m = 2 * n - 1; 	HuffmanTree HT; 	//HT = (int *)malloc(siezof()); 	InitTree(HT,n); 	printf("开始创建哈夫曼树\n"); 	for (i = 0; i < n;i++) 	{ 		printf("请输入每个叶子结点的权值", HT[i].weight); 	} 	 	CreatHuffmanTree(HT, n,m); 	PrintHuffmanTree(HT, n); 	system("pause"); 	return 0; } 把你的错改了，功能没帮你看 说实话代码是太乱了，m,n,i这些个参数都不知道哪个是哪个，各种未初始化就使用，函数中没有定义下面代码就在用（不是在main函数里申明了，其它函数就能直接用的，除非是申明成全局变量或者类成员函数)，还有要输出的入参申明加上&，不然函数结束后是无法带出的，然后参数命名自己规范下，除了for循环这些用的用i，j这些，其他的不要用m，n，不然代码长了自己都不知道参数是做什么的，比如把你的n是节点数量你就写成int iNode_Count，让自己的代码更具有可读性

user: user-0
content: 我的报错，全在定义函数那一行，但是我不知道怎么改了

user: user-0
content: 刚刚学数据结构 可能c也不太好

user: user-3
content: 兄嘚！我复制你的代码进编译器，发现红红的，你是刚学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: 把游戏作为普通的函数，多文件项目而已。游戏中不要有exit退出函数，而要用return语句返回主循环。

user: user-3
content: 多文件编译：https://blog.csdn.net/walle2018/article/details/79765330

user: user-0
content: 引用 4 楼 與蘤舊縐 的回复:[quote=引用 2 楼 與蘤舊縐 的回复:] 搞个简单的，主游戏的主循环内搞个判定进入子游戏的判断（你可以拿全局变量控制），然后子游戏用自己的主循环，卡住主游戏的主循环，然后等你玩够了把变量一改，退出子游戏的主循环，又回到了主游戏的主循环 子游戏的主循环需要一个退出循环的判断，依旧是刚才的变量[/quote] 因为有几个小游戏 所以想各自是一个源文件，以文字游戏为主体，某一个case 清屏运行其他的小游戏再回到文字游戏。。。 刚开始学C，麻烦大大耐心赐教了- -

user: user-0
content: 引用 1 楼 ooolinux 的回复:把独立贪吃蛇游戏的main函数改个名。 我打算把每个游戏都写到一个源文件里，比如文字游戏是一个源文件，贪吃蛇是一个源文件，再放到一个project 在文字游戏的某一个case调用贪吃蛇的函数，请问怎么操作呀，是需要写头文件么？刚开始学习C- - 麻烦大大了

user: user-4
content: 引用 2 楼 與蘤舊縐 的回复:搞个简单的，主游戏的主循环内搞个判定进入子游戏的判断（你可以拿全局变量控制），然后子游戏用自己的主循环，卡住主游戏的主循环，然后等你玩够了把变量一改，退出子游戏的主循环，又回到了主游戏的主循环 子游戏的主循环需要一个退出循环的判断，依旧是刚才的变量

user: user-4
content: 搞个简单的，主游戏的主循环内搞个判定进入子游戏的判断（你可以拿全局变量控制），然后子游戏用自己的主循环，卡住主游戏的主循环，然后等你玩够了把变量一改，退出子游戏的主循环，又回到了主游戏的主循环

user: user-2
content: 把独立贪吃蛇游戏的main函数改个名。
user-0 提问: 输入一串字符然后倒叙输出C语言

回复:
user: user-1
content: printf("%c",ch[a-1]);这里加{}；不然for根本没有循环

user: user-2
content: a已经被i-1赋值了。为什么还要多一步printf赋值呢。

user: user-3
content: 贴代码。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-4
content: 运行结果是什么样的呢？
user-0 提问: 三天打鱼两天晒网问题求助！有一组测试用例总是通不过。程序如下：

回复:
user: user-0
content: 已经成功了非常感谢!(之前没有调试好，错误是在days没有初始化

user: user-0
content: 而且还发现我其实用了continue 之后没有必要引入flag了！（再次蟹蟹！

user: user-1
content: #include <stdio.h>  #define BASE_YEAR 1990  int leapYear(int year) { 	if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) { 		return 1;// 闰年 	} 	return 0;// 平年 }  int daysFromBaseYear(int year, int month, int day) { 	// 平年 	int daysOfMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 	int daysOfYear = 365; 	int i = 0; 	int sum = 0;  	for (i = BASE_YEAR; i < year; ++i) { 		sum += daysOfYear; 		if (1 == leapYear(i)) { 			++sum; 		} 	}  	for (i = 0; i < month - 1; ++i) { 		sum += daysOfMonth[i]; 	} 	if (month > 2 && 1 == leapYear(year)) { 		++sum; 	}  	return sum + day;// 返回从BASE_YEAR.1.1（第1天）开始，今天是第多少天 }  int main(void) { 	int daysOfMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 	int year, month, day; 	int T; 	scanf("%d", &T); 	while ((T--) > 0) { 		scanf("%d %d %d", &year, &month, &day);  		if (year < BASE_YEAR) { 			printf("year is error!\n"); 			continue; 		} 		if (month < 1 || month > 12) { 			printf("month is error!\n"); 			continue; 		} 		int dayOfMon = daysOfMonth[month - 1]; 		if (2 == month && 1 == leapYear(year)) { 			// 二月并且是闰年，加1天 			++dayOfMon; 		} 		if (day < 1 || day > dayOfMon) { 			printf("Day is error!\n"); 			continue; 		}  		int days = daysFromBaseYear(year, month, day) - 1;// 减1是为了后面取余  		if (days % 5 >= 0 && days % 5 <= 2) { 			printf("He was fishing on %d.%d.%d\n", year, month, day); 		} else { 			printf("He was basking on %d.%d.%d\n", year, month, day); 		} 	} 	return 0; }  ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-1
content: 哪一组测试用例不能通过？ ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------
user-0 提问: 报错

回复:
user: user-1
content: 引用 3 楼 『回眸』~浅笑° 的回复:[quote=引用 2 楼 牧牛童子的回复:]我用的是 QT，也可以跑呢。 我用visual studio 也跑不起来[/quote]  呵，QT是  可以  跑的呢。

user: user-2
content: 代码实现的功能有点扯。。。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-2
content: 贴代码。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-0
content: 引用 2 楼 牧牛童子的回复:我用的是 QT，也可以跑呢。 我用visual studio 也跑不起来

user: user-1
content: 我用的是 QT，也可以跑呢。

user: user-1
content: 怎么看着像是 调试环境的问题呢？感觉与代码无关
user-0 提问: c语言怎么让局部变量调用另一个局部变量

回复:
user: user-1
content: 题目没有看懂， 推荐一本书《C语言和指针》

user: user-2
content: 你需要一个指针

user: user-3
content: 什么叫局部变量结束后返回，局部变量没有所谓的调用，调用是函数的概念，你能理解你说的第一句话是什么意思吗
user-0 提问: a+1‖++a

回复:
user: user-1
content: 这是短路或 在英语里，or有“否则”的意思 左边是“否”则执行右边

user: user-2

user: user-3
content: 应该是为什么没有加一吧  这个应该是预判， || 的两侧只要有一个是1 就提前返回了,  所以根本没有执行++a的操作  如果a=-1，你再试试
user-0 提问: 求大佬帮忙看看哪里错了，原谅我菜，请别喷我，运行正确但显示编译错误，

回复:
user: user-1
content: #include <stdio.h> int main() { 	 	char c[81]; 	int i, j; 	while (gets_s(c) != NULL)//-----------改成get_s()函数----------- 	{ 		for (i = 0; c[i] != '\0'; i++) 		{ 			if (c[i] == '*' && (c[i + 1] >= 'a'&&c[i + 1] <= 'z' || c[i + 1] >= 'A'&&c[i + 1] <= 'Z')) 			{ 				break; 			} 		} 		if (c[i] != '\0')//------把c[i]=='\0'改为c[i]!='\0'-------- 		{ 			for (j = i + 1; c[j] != '\0'; j++) 			{ 				printf("%c", c[j]); 			} 		} 		printf("\n"); 	} 	 	return 0; } 以下是VS2015运行结果  对于gets()函数的使用，请参考《scanf()、gets()和getline()读取输入》

user: user-0
content: 我用的啊哈C

user: user-0
content: 还是错误

user: user-2
content: 编译都没过，你拿什么运行的呀

user: user-3
content: 运行正确 但 显示编译错误  #include <stdio.h> #include <string.h> int main() { 	char c[81]; 	int i, j; 	while (gets(c) != NULL) 	{ 		char* str = c;; 		while (*str == '*') str++; 		printf("%s", str); 	} 	return 0; }

user: user-4
content: 运行正确但显示编译错误 别逗我了

user: user-5
content: 应该是自己电脑上的编译器可以运行，但是做题系统上的编译器编译不通过 他的码多了个分号char* str = c;; 你们系统上的编译器莫不是VS的那个，那样的话gets就被打死了

user: user-0
content: 大佬你那个码还是运行正确但交上去显示编译错误
user-0 提问: 有大佬能教我这个Windows的定时器怎么用吗

回复:
user: user-0
content: 引用 1 楼 寻开心的回复:SetTimer之后，还要响应 WM_TIMER消息啊   SetTimer只是启动了定时器， 你还缺少对定时器响应的代码 想问一下在Windows上写c用vc++6.0好吗还是用别的呢

user: user-0
content: 引用 1 楼 寻开心的回复:SetTimer之后，还要响应 WM_TIMER消息啊   SetTimer只是启动了定时器， 你还缺少对定时器响应的代码 嗯嗯我弄好了，在里面用switch分支

user: user-1
content: SetTimer之后，还要响应 WM_TIMER消息啊   SetTimer只是启动了定时器， 你还缺少对定时器响应的代码

user: user-1
content: 用VC没有问题， 只是 VC 6太老了。 VS2017 或者 2019什么的
user-0 提问: 关于文件结尾的问题，求解决？

回复:
user: user-0
content: 引用 1 楼 user-1 的回复：贴代码  顺便随手猜一下 你打开文件没有加b 用文本模式打开文件 大概改成 "rb" 就完事了代码明天粘贴

user: user-0
content: 引用 1 楼 user-1 的回复：贴代码  顺便随手猜一下 你打开文件没有加b 用文本模式打开文件 大概改成 "rb" 就完事了没有用rb

user: user-1
content: 贴代码  顺便随手猜一下 你打开文件没有加b 用文本模式打开文件 大概改成 "rb" 就完事了
user-0 提问: 求助大佬

回复:
user: user-0
content: 引用 12 楼 proorck2019的回复:用gets不好吗？？ 想了解getchar的用法

user: user-1
content: 用gets不好吗？？

user: user-0
content: 懂了，多谢大佬的详细回答！非常感谢！

user: user-2
content: 你的代码 for(i=0; getchar()!='\n'; i++) {   a[i] = getchar(); } 中，调用了两次getchar()，所以a[i]只能读出一半的输入，如下图所示。  修改的方法 #include <stdio.h> #include <string.h> int main() { 	char a[100] = { 0 };//-------给数组a赋初值，这样strlen()函数就可以得到数组a的实际长度了-------- 	int i; 	char temp;//--------使用temp保存读入的字符----------- 	for (i = 0; (temp=getchar()) != '\n'; i++)//-------使用temp------- 	{ 		a[i] = temp;//-------代码中只调用了一次getchar()函数，保证所有的输入都可以保存在数组a中---- 	} 	for (i = 0; i < strlen(a); i++) 	{ 		putchar(a[i]); 	} 	return 0; } 以下是VS2015的运行结果  对于getchar()函数的使用方法，请参考《C++中getchar()的使用方法》 希望能够帮到你！

user: user-0
content: 还是有点迷惑，我写的第一个for循环到底怎么执行的，比如我输入asd再按回车？

user: user-3
content: 引用 7 楼 user-4的回复:[quote=引用 6 楼 weixin_40290083的回复:]&i<100的目的是为了防止数组越界 &&才对 凑齐10个字[/quote] 是的是的，手机输入太不方便

user: user-4
content: 引用 6 楼 weixin_40290083的回复:&i<100的目的是为了防止数组越界 &&才对 凑齐10个字

user: user-3
content: &i<100的目的是为了防止数组越界

user: user-3
content: char ch ch=getchar（） for(i=0;ch != '\n' & i < 100;i++){   a[i] =ch   ch=getchar() } a[i]='\0'  每行的行尾自己加上；，手机切换有点烦

user: user-3
content: 按你的代码a数组只有输入字符的一部分

user: user-0
content: 引用 1 楼 user-4的回复:没什么不对 就是行为比较奇葩 比如 必须是奇数次输入回车才能退出循环  比如 输入2个字符第二个字符才读取到数组里面  不过这都是正常现象 大佬，我是想输入一些字符再输出这些字符，为什么结果很诡异？

user: user-4
content: 另外 你的数组没有 0 结尾  不是C风格字符串  不能用strlen 测试字符串长度

user: user-4
content: 没什么不对 就是行为比较奇葩 比如 必须是奇数次输入回车才能退出循环  比如 输入2个字符第二个字符才读取到数组里面  不过这都是正常现象
user-0 提问: 如何声明一个可以指向任意函数的函数指针

回复:
user: user-1
content: 只能是 void *  使用的时候根据具体情况再做强制转换

user: user-2
content: 没太明白你的要求，任意类型可以用 void * ， 参考C的 malloc的定义和用法。

user: user-3
content: 类型用void,例void *name(void) ，因为不管是那种类型最终都会转换成void类型, 不会冲突

user: user-4
content: 参考脚本语言的做法，参数和返回值都是“元组”，所有函数都是 tuple func(tuple) 这样一来，就能实现你的要求了。

user: user-5
content: 不考虑参数的话  void  * funptr=你的函数的地址;  __asm { mov eax,funptr jmp eax }

user: user-6
content: 没有这种操作，但函数指针之间可以任意进行转换。最符合你要求的类型应该是 int(*)()。
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: char c='f'求  f 的祖先结点

user: user-0
content: 引用 1 楼 user-2的回复:代码一团麻。 不知道这是不是你想要的。https://blog.csdn.net/pfdvnah/article/details/102387839 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 ------------------------------------------------------- 第一次发帖，不知道怎么规范一行一行的发出来。

user: user-2
content: 代码一团麻。 不知道这是不是你想要的。https://blog.csdn.net/pfdvnah/article/details/102387839 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------
user-0 提问: c语言输出输入问题

回复:
user: user-0
content: 引用 3 楼 user-1的回复:[quote=引用 2 楼 weixin_45718499 的回复:] [quote=引用 1 楼 user-1的回复:]在return 0;左侧，点一下，加个断点（圆点），再运行，就鼠标左键单击那条黄绿线左边一点 它的结果是这样： A A 65 a 97 //对吗？[/quote] 对，大写字母的ASCII码加32就是小写字母的ASCII码[/quote] 好的，再问一下在电脑怎么结贴，我去结一下

user: user-1
content: 引用 2 楼 weixin_45718499 的回复:[quote=引用 1 楼 user-1的回复:]在return 0;左侧，点一下，加个断点（圆点），再运行，就鼠标左键单击那条黄绿线左边一点 它的结果是这样： A A 65 a 97 //对吗？[/quote] 对，大写字母的ASCII码加32就是小写字母的ASCII码

user: user-0
content: 引用 1 楼 user-1的回复:在return 0;左侧，点一下，加个断点（圆点），再运行，就鼠标左键单击那条黄绿线左边一点 它的结果是这样： A A 65 a 97 //对吗？

user: user-1
content: 在return 0;左侧，点一下，加个断点（圆点），再运行，就鼠标左键单击那条黄绿线左边一点
user-0 提问: 红绿灯行车问题

回复:
user: user-0
content: int 换成char 还是不能得到结果呀

user: user-1
content: 你这个r,y,g只是变量名，里面是随机值，你可以改成char r,y,g，依次用字符r,y,g赋值

user: user-0
content: 我调试了一下，发现语句不能到printf。就直接结束了，这是为什么啊。

user: user-0
content: 引用 1 楼 user-2的回复:r y g的值是多少呢 交通信号灯有红黄绿分别用ryg来表示。。所以。ryg没有值?

user: user-2
content: r y g的值是多少呢
user-0 提问: C语言作业：输入一句英文，判断有几个单词

回复:
user: user-1
content: 手机上不能结贴，要去电脑上结贴给分数。

user: user-0
content: 原来是这样，谢谢！

user: user-1
content: b没有赋初值， scanf("%c",&b)，加&
user-0 提问: 大一萌新求教

回复:
user: user-1
content: #include <stdio.h> int main() { 	int n,m,i,count=0; 	scanf("%d %d",&n,&m); 	for(i=n;i<=m;++i) 	{ 		if(i%6==0 && i%7!=0) 			count+=1; 	} 	printf("%d\n",count); 	return 0; }

user: user-2
content: 祝你一臂之力 for(i=N;i<=M;i++){...} if(i%2==0 && i%3==0 ...){n++} print n
user-0 提问: C语言精度问题

回复:
user: user-1
content: 找到原因了。你的精度错了。应该是0.001

user: user-1
content: 按照5楼的说法。那你就需要看看题了。可能题目本身进行了取舍。

user: user-1
content: 说个和题目无关的。 第27行和29行的括号着实有趣。成功把我带偏了。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-2
content: 引用 4 楼 翟毛毛 的回复:[quote=引用 3 楼 與蘤舊縐的回复:]少加一次试试，这你总会改吧 少加了一次以后还是不行[/quote]  看你的结果也不大可能是用错了式子，按理说双精度数精确到这几位没问题，否则麻烦就大了，这种题目应该不会这么玩你 我拿计算器给你算了一下，你的结果更精确

user: user-0
content: 引用 3 楼 與蘤舊縐的回复:少加一次试试，这你总会改吧 少加了一次以后还是不行

user: user-2
content: 少加一次试试，这你总会改吧

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:你会不会多加了一次 啊 那应该怎么改呀

user: user-2
content: 你会不会多加了一次
user-0 提问: C语言数组问题

回复:
user: user-1
content: 分配这么大的数组，却只用前100个，为何？

user: user-2
content: 如果项目中确实要申请这么大的数组那么只能int *a = malloc(sizeof(int) * 20190324)；这样你再运行你和程序看看。

user: user-2
content: 直接定义一个数组，如a[SIZE];这个是分配的静态空间，在栈上（局部变量）或全局静态区（全局变量）上分配的，一般栈的内存是1M到2M，所以静态分配的空间不能太大。而a[20190324]所需要的内存空间大约为76M(假定int型占4个字节)，在有的情况下编译时不会报错（ubuntu 16   gcc  eplicse platform ） 编译时根本不报错，但是运行不了。修改为如下代码 main(){     printf("======================\n");     int a[20190324]; } 连同第一条输出语句都不执行。  你的for循环中对数组的访问只访问到下标为99的元素，为什么要定义这么大的数组？

user: user-3
content: 你给20190324赋值了吗。。。
user-0 提问: 希尔排序

回复:
user: user-0
content: 引用 5 楼 user-1的回复:[quote=引用 4 楼 Wab i-sabi 的回复:] 但我感觉是不是增量的选择有某种要求，但是d1<n是满足的啊，其次最后一个增量是1 我也是这么想的。所以我没回答。 我觉得只要最后一个增量是1，那么一定可以排序的，大不了就是直接插入排序。 那只能说明还是代码错了。我可能看漏了。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------[/quote] 增量序列中的值没有除1之外的公因子

user: user-1
content: 引用 4 楼 Wab i-sabi 的回复:但我感觉是不是增量的选择有某种要求，但是d1<n是满足的啊，其次最后一个增量是1 我也是这么想的。所以我没回答。 我觉得只要最后一个增量是1，那么一定可以排序的，大不了就是直接插入排序。 那只能说明还是代码错了。我可能看漏了。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-0
content: 引用 2 楼 user-1的回复:貌似就是严蔚敏的代码。我对了一下，没发现啥。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 ------------------------------------------------------- 但我感觉是不是增量的选择有某种要求，但是d1<n是满足的啊，其次最后一个增量是1

user: user-0
content: 引用 1 楼 user-1的回复:说个与题目无关的。 。。。是不是有点本末倒置了。。。明明代码是重点，你截个这么小的图。输出那么点东西要截那么大个图。。。  另外代码不要截图，直接复制粘贴。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 ------------------------------------------------------- 谢谢提醒，代码有点长，截的图就小了点

user: user-1
content: 貌似就是严蔚敏的代码。我对了一下，没发现啥。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-1
content: 说个与题目无关的。 。。。是不是有点本末倒置了。。。明明代码是重点，你截个这么小的图。输出那么点东西要截那么大个图。。。  另外代码不要截图，直接复制粘贴。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------
user-0 提问: 萌新求助，帮忙看看这位求最小差值的

回复:
user: user-1
content: 最好将以前的帖子结一下。你看看几个小时了都没人愿意回答你的问题。 ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------
user-0 提问: C语言：为什么输入啥都会输出else后面的语句

回复:
user: user-1
content: 引用 4 楼 ??[??的回复:][quote=引用 1 楼 user-1的回复:]你那scanf函数哪里不能用格式控制，所以b没有被复制，所以会一直显示else的内容 我刚把&去掉了，也没用呀[/quote] %.2f把.2去掉，

user: user-0
content: 引用 1 楼 user-1的回复:你那scanf函数哪里不能用格式控制，所以b没有被复制，所以会一直显示else的内容 我刚把&去掉了，也没用呀

user: user-0
content: #include<stdio.h> 	int main() 	{ 		int a; 		float b,Price; 		scanf("%d,%f",&a,&b); 		if((b-(int)b)!=0) 		{ 			(int)b=(int)(b+1); 		} 		switch(a) 		{ 		case 0: 			if(b>1) 			{ 				 				Price=10+(b-1)*3; 				printf("1Price: %.2f\n",Price); 			} 			else{ 				Price=10; 				printf("2Price: %.2f\n",Price); 			} 			break; 		 		case 1: 			if(b>1) 			{ 				 				Price=10+(b-1)*4; 				printf("3Price: %.2f\n",Price); 			} 			else{ 				Price=10; 				printf("4Price: %.2f\n",Price); 			} 			break; 		case 2: 			if(b>1) 			{ 				 				Price=15+(b-1)*5; 				printf("5Price: %.2f\n",Price); 			} 			else{ 				Price=15; 				printf("6Price: %.2f\n",Price); 			} 			break; 		case 3: 			if(b>1) 			{ 				 				Price=15+(b-1)*6.5; 				printf("7Price: %.2f\n",Price); 			} 			else{ 				Price=15; 				printf("8Price: %.2f\n",Price); 			} 			break; 		case 4: 			if(b>1) 			{ 			 				Price=15+(b-1)*10; 				printf("9Price: %.2f\n",Price); 			} 			else 			{ 				Price=15; 				printf("0Price: %.2f\n",Price); 			} 			break; 		default: 			printf("Error in Area\n"); 			break;  		}      return 0;   } 这个程序在运行a=4时会输出else后面的语句但是前面的不会，很奇怪

user: user-1
content: 引用 1 楼 user-1 的回复:你那scanf函数哪里不能用格式控制，所以b没有被复制，所以会一直显示else的内容赋值

user: user-1
content: 你那scanf函数哪里不能用格式控制，所以b没有被复制，所以会一直显示else的内容
user-0 提问: 哪位兄弟麻烦给说一下，这一串烫是怎么回事

回复:
user: user-1
content: https://zhidao.baidu.com/question/503535074.html 还有这里

user: user-1
content: https://bbs.csdn.net/topics/394969459 2楼可以参考一下

user: user-2
content: 字符串末尾没有加终止字符‘\0’，因为字符串以终止字符结尾，没有找到就会一直往后找（即使越界）
user-0 提问: 萌新求助，帮我看看哪里出了问题

回复:
user: user-0
content: 引用 1 楼 user-1的回复:别发截图哦，另外把地址也发一下 什么地址？？？？？？，不懂你意思

user: user-1
content: 别发截图哦，另外把地址也发一下
user-0 提问: c语言输入输出问题

回复:
user: user-1
content: 你可以使用system执行echoshell命令啊，但是使用system很蠢，因为system开销比较大，还可能出现一些问题

user: user-0
content: 引用 3 楼 不闻窗外事的回复:我没怎么使用过windows特有的库，但是这个清屏应该是使用system执行cls命令，其他的就是打印，应该也是window特有的一些命令吧，没用过，你可以研究下 哦哦哦那能不能帮我看一下那个作业三怎么弄，麻烦了

user: user-1
content: 我没怎么使用过windows特有的库，但是这个清屏应该是使用system执行cls命令，其他的就是打印，应该也是window特有的一些命令吧，没用过，你可以研究下

user: user-0
content: 引用 1 楼 不闻窗外事 的回复:你可以使用system执行echoshell命令啊，但是使用system很蠢，因为system开销比较大，还可能出现一些问题 我搞不懂这个要怎么弄= =
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: 温度传感器传回数据，单片机计算距离目标温度的差值，然后根据差值大小生成不同占空比的方波，方波的占空比意味着加热等级，比如要做256级加热等级，连续输出256个1，就是全功率输出，连续256个0，表示不加热。128个1，128个0，代表用1半的功率去加热。越接近目标温度，输出的0越多。然后用方波控制可控硅，可控硅接电热丝。。。。

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-2
content: #include"stdio.h" #include<string.h>  int main() { 	int len,i,sum=0;  // 如果第一个字母也计数的话，sum初始化就要设置为1 	char x,s[100]; 	scanf("%s",s);  // 这里注意 	len=strlen(s); 	for(i=1; i<=len; i++) { 		if(s[0]==s[i]) { 			sum++; 		} 	} 	printf("有%d个\n",sum); }

user: user-3
content: 字符串也得传入函数  你在函数内部另外定义一个数组没用  函数内部新定义的数组占用新的内存块 没有你输入的字符串数据

user: user-4
content: 你scanf那里有问题  把[100]删了

user: user-0
content: 引用 5 楼 自信男孩的回复:#include <stdio.h> #include <string.h>  int main() {     int len,i,sum=0;     char s[100];      scanf("%s",s);      len=strlen(s);     for(i=1;i<len;i++)     {         if(s[0] == s[i] || s[0] == s[i]-32 || s[0] == s[i] + 32)         {             sum++;         }     }     printf("有%d个\n",sum);      return 0; } 供参考～ 不区分大小写～ 劳烦您看一下7楼，是我修改后的代码，可是还是输出有误，可以帮忙看一下是什么原因吗？谢谢

user: user-0
content: #include"stdio.h" #include<string.h> int isleap(int i) { 	int f; 	char s[i]; 	if(s[0]==s[i]+32||s[0]==s[i]-32||s[0]==s[i]) f=1; 	else f=0; 	return f; }  main() { 	int len,i,sum=1; 	char x,s[100]; 	scanf("%s",s); 	len=strlen(s); 	for(i=1;i<len;i++) 	{ 		if(isleap(i)==1) 		{ 			sum++; 		} 	} 	printf("有%d个\n",sum); }

user: user-0
content: 引用 4 楼 自信男孩的回复:#include"stdio.h" #include<string.h>  int isleap(int i) {      /*     int f;     char s[i];     if((s[i]>='a'&&s[i]<='z')&&((s[i]-32==s[0])||(s[i]==s[0]))) f=1;     else if((s[i]>='A'&&s[i]<='Z')&&((s[i]+32==s[0])||(s[i]==s[0]))) f=1;     else f=0;     return f;     */ }  main() {     int len,i,sum=0;     char x,s[100];     //scanf("%s",s[100]);     scanf("%s",s);     len=strlen(s);     //for(i=1;i<=len;i++)     for(i=1;i<len;i++)     {         //if(isleap(i)==1)         if(s[0] == s[i])         {             sum++;         }     }     printf("有%d个\n",sum); } 供参考～ 不需要用自定义函数，用自定义函数反而让程序复杂了。 您好，是我的题目要求用自定义函数的。

user: user-5
content: #include <stdio.h> #include <string.h>  int main() {     int len,i,sum=0;     char s[100];      scanf("%s",s);      len=strlen(s);     for(i=1;i<len;i++)     {         if(s[0] == s[i] || s[0] == s[i]-32 || s[0] == s[i] + 32)         {             sum++;         }     }     printf("有%d个\n",sum);      return 0; } 供参考～ 不区分大小写～

user: user-5
content: #include"stdio.h" #include<string.h>  int isleap(int i) {      /*     int f;     char s[i];     if((s[i]>='a'&&s[i]<='z')&&((s[i]-32==s[0])||(s[i]==s[0]))) f=1;     else if((s[i]>='A'&&s[i]<='Z')&&((s[i]+32==s[0])||(s[i]==s[0]))) f=1;     else f=0;     return f;     */ }  main() {     int len,i,sum=0;     char x,s[100];     //scanf("%s",s[100]);     scanf("%s",s);     len=strlen(s);     //for(i=1;i<=len;i++)     for(i=1;i<len;i++)     {         //if(isleap(i)==1)         if(s[0] == s[i])         {             sum++;         }     }     printf("有%d个\n",sum); } 供参考～ 不需要用自定义函数，用自定义函数反而让程序复杂了。
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: 补充一下，还有除数为0的问题

user: user-0
content: 引用 2 楼 Italink的回复:因为i和reuslt都是int，i/result==1，不一定是因为两个相等，比如(3/2)理论上为1.5，但int/int只能得到int，因此3/2=1，所以上面的两个逻辑表达式不等哦 谢谢你  说的很清晰

user: user-0
content: 引用 1 楼 user-4的回复:[quote=引用 楼主  Pt. 的回复:] i 和result都是int型 if(i/result==1)和if(i==result)有区别吗123/100 一样是 1 你说呢[/quote] 多谢  想了半天没想明白哈哈

user: user-3
content: 因为i和reuslt都是int，i/result==1，不一定是因为两个相等，比如(3/2)理论上为1.5，但int/int只能得到int，因此3/2=1，所以上面的两个逻辑表达式不等哦

user: user-4
content: 引用 楼主  Pt. 的回复:i 和result都是int型 if(i/result==1)和if(i==result)有区别吗123/100 一样是 1 你说呢
user-0 提问: 以下表达式x&&1 用在if的条件中时，和哪个是等价的：求答案和解释

回复:
user: user-1
content: x && 1     不是0的数都表示true，只有0表示false 所以  X&&1    等同于只判定x一项是否为true 答案是A

user: user-2
content: 分情况讨论：x为0时，x为假，x&&1为假。AC都为假 x非零时，x&&1为真。C为真，A仅x为1时真 所以，结果是C

user: user-3
content: C &&判断完前一个若是错的就不再判断后一个 1显然是对的 因此只需要判断x

user: user-3
content: 引用 2 楼 寻开心 的回复:x && 1     不是0的数都表示true，只有0表示false 所以  X&&1    等同于只判定x一项是否为true 答案是A  x只要不是0都是对的，x==1太狭隘了
user-0 提问: 我这样写为啥不对呀  大佬们~

回复:
user: user-0
content: 引用 1 楼 與蘤舊縐的回复:if("m%i == 0")双引号干嘛的 这个确实错了哈哈哈

user: user-0
content: 引用 2 楼 寻开心的回复:因为这句神奇的代码呀    if(flag = 1)  // 这里 永远是1           printf("该正整数m不是质数。");  记住： 要向避免这种初级bug，养成习惯， 判断语句写成  if ( 1 == flag )   这样不小心把==写成=， 编译器就不会让你通过的 谢谢谢谢！！   感谢教诲

user: user-1
content: 因为这句神奇的代码呀    if(flag = 1)  // 这里 永远是1           printf("该正整数m不是质数。");  记住： 要向避免这种初级bug，养成习惯， 判断语句写成  if ( 1 == flag )   这样不小心把==写成=， 编译器就不会让你通过的

user: user-2
content: if("m%i == 0")双引号干嘛的
user-0 提问: 求高手救救孩子吧

回复:
user: user-0
content: 引用 2 楼 user-2的回复:并且，你这个排版看起来太累了，花括号哪个对哪个，要看半天。真该好好改改啊 不好意思  新手刚入行

user: user-1
content: 多试几次？这应该是谭浩强的C语言基础的例子吧？

user: user-2
content: 并且，你这个排版看起来太累了，花括号哪个对哪个，要看半天。真该好好改改啊

user: user-2
content: 楼主能不能把89和121改成'Y'和'y'，这样可读性也好，也一下能看出来是不是正确的？
user-0 提问: 新手求指教 关于判断降序数！

回复:
user: user-0
content: 引用 9 楼 user-1的回复:去看书吧，书上会告诉你一切的 我现在调用了可是输出还是永远yes…

user: user-1
content: 去看书吧，书上会告诉你一切的

user: user-0
content: 引用 7 楼 user-1的回复:你不是没调用p函数吗？length等于多少？有初始化吗？ 初始length是0 我想知道怎么样才算调用了这个函数

user: user-1
content: 你不是没调用p函数吗？length等于多少？有初始化吗？

user: user-0
content: 引用 5 楼 user-1的回复:你的意思是，你每个数字都输过了，发现所有的数字输进去的结果都是yes？ 是的 我就是这个意思

user: user-1
content: 你的意思是，你每个数字都输过了，发现所有的数字输进去的结果都是yes？

user: user-0
content: 引用 3 楼 user-1的回复:我是说，你这个n到底是多少啊？真是晕！ emmm我输入是多少不就是多少……？

user: user-1
content: 我是说，你这个n到底是多少啊？真是晕！

user: user-0
content: 引用 1 楼 user-1的回复:你输入什么都不说，就说输出了？ 我有输入我有输入在倒数第十三行

user: user-1
content: 你输入什么都不说，就说输出了？
user-0 提问: 一道数学题，求大神解

回复:
user: user-1
content: 引用 3 楼 我大E了啊 的回复:[quote=引用 2 楼 单身，欢迎小姐姐来撩的回复:]up。。。。。。。。。。。。 大哥你真是天纵奇才，可惜相见恨晚，他日良辰美景，何不共度春宵[/quote]  又不是女人，度什么春宵？！！！！

user: user-0
content: 引用 2 楼 单身，欢迎小姐姐来撩的回复:up。。。。。。。。。。。。 大哥你真是天纵奇才，可惜相见恨晚，他日良辰美景，何不共度春宵

user: user-1
content: up。。。。。。。。。。。。

user: user-1
user-0 提问: volatile 与序列点

回复:
user: user-0
content: 引用 8 楼 lin5161678 的回复:[quote=引用 7 楼 apkipa1 的回复:]  不好意思，我发现之前自己有些理解不到位的地方，所以再问一下，是否 i /= 2 不算未定义行为，i = i / 2 就属于未定义行为了。不 这就是危险的地方了  i/=2 没问题 i = i/2 是未定义行为  惊不惊喜 意不意外[/quote] 懂了，感谢。

user: user-1
content: 引用 7 楼 apkipa1 的回复:不好意思，我发现之前自己有些理解不到位的地方，所以再问一下，是否 i /= 2 不算未定义行为，i = i / 2 就属于未定义行为了。不 这就是危险的地方了  i/=2 没问题 i = i/2 是未定义行为  惊不惊喜 意不意外

user: user-0
content: 引用 6 楼 lin5161678 的回复:[quote=引用 5 楼 apkipa1 的回复:] [quote=引用 4 楼 lin5161678 的回复:] [quote=引用 楼主 apkipa1 的回复:] 在对 volatile 对象进行访问操作时会产生副作用, 而且 C 语言中对序列点的 UB 是这么说的:  如果设有 volatile i = 10; 那么这是否意味着如下表达式属于未定义行为? i++; i /= 2; i *= i;i++ 和 i/=2 不是未定义行为 i*=i 是未定义行为  [/quote] 看不出来，能解释一下吗？[/quote]  一次访问 没影响 多次访问 副作用无序[/quote] 不好意思，我发现之前自己有些理解不到位的地方，所以再问一下，是否 i /= 2 不算未定义行为，i = i / 2 就属于未定义行为了。

user: user-1
content: 引用 5 楼 apkipa1 的回复:[quote=引用 4 楼 lin5161678 的回复:] [quote=引用 楼主 apkipa1 的回复:] 在对 volatile 对象进行访问操作时会产生副作用, 而且 C 语言中对序列点的 UB 是这么说的:  如果设有 volatile i = 10; 那么这是否意味着如下表达式属于未定义行为? i++; i /= 2; i *= i;i++ 和 i/=2 不是未定义行为 i*=i 是未定义行为  [/quote] 看不出来，能解释一下吗？[/quote]  一次访问 没影响 多次访问 副作用无序

user: user-0
content: 引用 4 楼 lin5161678 的回复:[quote=引用 楼主 apkipa1 的回复:] 在对 volatile 对象进行访问操作时会产生副作用, 而且 C 语言中对序列点的 UB 是这么说的:  如果设有 volatile i = 10; 那么这是否意味着如下表达式属于未定义行为? i++; i /= 2; i *= i;i++ 和 i/=2 不是未定义行为 i*=i 是未定义行为  [/quote] 看不出来，能解释一下吗？

user: user-1
content: 引用 楼主 apkipa1 的回复:在对 volatile 对象进行访问操作时会产生副作用, 而且 C 语言中对序列点的 UB 是这么说的:  如果设有 volatile i = 10; 那么这是否意味着如下表达式属于未定义行为? i++; i /= 2; i *= i;i++ 和 i/=2 不是未定义行为 i*=i 是未定义行为

user: user-2
content: 引用 2 楼 apkipa1的回复:[quote=引用 1 楼 user-2 的回复:] 这不是C++的吗？C语言也支持吗？我真是孤陋寡闻了 是的，C 和 C++ 都有 volatile。[/quote] 受教了。。。。。。。

user: user-0
content: 引用 1 楼 user-2 的回复:这不是C++的吗？C语言也支持吗？我真是孤陋寡闻了 是的，C 和 C++ 都有 volatile。

user: user-2
content: 这不是C++的吗？C语言也支持吗？我真是孤陋寡闻了
user-0 提问: 习题求助

回复:
user: user-0
content: 引用 3 楼 user-1的回复:第一个if和第二个if之间并没有存在什么关系 喔，这样，谢谢你啦😁😁

user: user-1
content: 第一个if和第二个if之间并没有存在什么关系

user: user-0
content: 引用 1 楼 user-1的回复:看清楚了，最后起作用的是if(c)这个是假，所以到最后一个else的 那if（！a）不是为真吗，怎么看是谁起作用？

user: user-1
content: 看清楚了，最后起作用的是if(c)这个是假，所以到最后一个else的
user-0 提问: 求解

回复:
user: user-0
content: 发不了图片了。。。 我重新发一条吧。。。

user: user-1
content: 修改后的代码和运行结果给一下

user: user-0
content: 引用 4 楼 qq_45798109的回复:<string.h> 为何我修改后输出的是（null）

user: user-2
content: <string.h>

user: user-0
content: 引用 1 楼 qq_45798109的回复:你没有包含头文件呀。 好了，谢谢

user: user-0
content: 引用 1 楼 qq_45798109的回复:你没有包含头文件呀。 啥头文件

user: user-2
content: 你没有包含头文件呀。
user-0 提问: 数组问题

回复:
user: user-0
content: 引用 7 楼 user-1 的回复:你在scanf之后，可以清一下输入缓冲区好的，解决了，谢谢，

user: user-1
content: 你在scanf之后，可以清一下输入缓冲区

user: user-0
content: 引用 5 楼 user-1 的回复:应该不是，这是输出，不会影响的。有可能是上面那个scanf，不确定，你要去看看确实不是那个输出的，那怎么看是不是scanf呢，我在前面加个了一个gets_s(p[0],n)，发现就正确了，我要怎么样从程序看是不是scanf这个引起的问题呢，谢谢

user: user-1
content: 应该不是，这是输出，不会影响的。有可能是上面那个scanf，不确定，你要去看看

user: user-0
content: 引用 3 楼 user-1 的回复:会不会是前面的回车漏下来了我也觉得是这样的，  printf("输入的字符数组\n");是这个回车么?为什么呢

user: user-1
content: 会不会是前面的回车漏下来了

user: user-0
content: 引用 1 楼 user-1 的回复:怎么说得不到？在gets之后吗？是的呢，比如我的数组是q[3][6],但在我输入数组内容时，只能得到q[1],q[2]的内容，就是输入两个字符串数组以后，就结束了，为什么呢

user: user-1
content: 怎么说得不到？在gets之后吗？
user-0 提问: C语言题目大神帮帮忙！！！

回复:
user: user-1
content: #include <stdio.h>  int main(void) {     int i;     int sum = 0;     for (i = 10; i <= 1000; i += 2) {         if ( i % 4 == 2 && i % 7 == 3 && i % 9 == 5) {             printf("i=%d\n", i);             sum += i;         }     }     printf("sum=%d\n", sum);      return 0; }

user: user-2
content: 10到1000循环 if判断%4==2且%7==且%9==2 输出
user-0 提问: C语言二维数组问题

回复:
user: user-1
content: 赋初值啊，如果题目没有特殊要求，没啥意义

user: user-2
content: 那两层for是遍历，for里边的怎么写，要看题目。

user: user-3
content: 就是把i*j的值赋给aij

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:就是i乘以j，没别的意思 遍历数组赋值而已 i乘以j，对这个数组遍历有什么意义啊

user: user-4
content: 就是i乘以j，没别的意思 遍历数组赋值而已
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: 缺少;或}  引用 楼主 wangfang6667 的回复:gccx报错，输入结尾应为声明或语句
user-0 提问: C语言 读取TXT文件至双向链表中

回复:
user: user-1
content: // size为申请的data的空间大小 // pfile为FILE指针 fgets(data, size, pfile);  ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-2
content: 祝你一臂之力 scanf("%[^\n]", data) while(p->pNext){...}
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 提问: 为什么输出的是kkkkc，不是stack，如何修改

回复:
user: user-1
content: Status Pop(SqStack *S,SElemType* e) {  // 这里，  要改成这样； 形参和实参啊。不是指针如何返回数据呢 	if(S->top==S->base) 		return 0; 	*e = *--S->top;                              // 这里，要改成这样 	return 1; }  main函数里面那些pop相关的部分也都要改了  此外，建议你自己写一个PrintStack函数，输出当前的堆栈状态，好跟踪问题
user-0 提问: 能否 通过指针 操作数组

回复:
user: user-1
content: *(p+i) p[i] 这两个差不多，可以对指针使用数组操作符

user: user-2
content: 可以，不过要注意数组类型和指针类型的大小必须一致，也就是int型指向int型

user: user-3
content: 当然可以，好多书有专门的章节讲这个

user: user-4
content: 通过指针操作数组完全是可以的。注意指针的指向～

user: user-0
content: 首先你要明白 数组名本身就是一个指针，例如int Arr[3] = {1, 2, 3}; 其中数组名Arr本质就是一个指针。 当然也可以进行这样的操作
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: 引用 5 楼 qq_破晓时分 的回复:for循环里只针对对象i，不能胡乱写入其他的变量，比如sum，这样肯定会出错，这是编程语法问题。 大兄弟，这个还真能，只要把条件写好就行，比如他这个for (i = 1; i <= 3; i++,sum++)这样写就能运行，只是每次循环sum也会加1而已

user: user-4
content: 老师也不是万能的。 出版社的书还经常附带一个纠错的页呢   小白进阶的必要能力是学会debug，调试， 跟踪运行看结果是不是你想要的  此外就是：     要勇敢的怀疑各种老师， 打不过的体育/武术老师除外啊

user: user-5
content: for循环里只针对对象i，不能胡乱写入其他的变量，比如sum，这样肯定会出错，这是编程语法问题。

user: user-3
content: 引用 2 楼 Awake2333 的回复:[quote=引用 1 楼 寻开心的回复:]凭啥说代码没有错， 就是代码错了好不好   for(i=1; i<3; sum++ )     这里是i++好不好，  否则就是死循环了， i始终是1， 如何退出循环啊 谢谢解答，我也不知道啊，这是老师给的题，毕竟我还是个小白[/quote] 老师还能给出这样的代码。。难怪我当年c语言成绩这么差，可能就是老师乱讲（虽然我也不听）

user: user-6
content: 她的意思可能是，代码可以编译通过，可是运行结果出不来。对吧？好好学习一下表达方法

user: user-0
content: 引用 1 楼 寻开心的回复:凭啥说代码没有错， 就是代码错了好不好   for(i=1; i<3; sum++ )     这里是i++好不好，  否则就是死循环了， i始终是1， 如何退出循环啊 谢谢解答，我也不知道啊，这是老师给的题，毕竟我还是个小白😁

user: user-4
content: 凭啥说代码没有错， 就是代码错了好不好   for(i=1; i<3; sum++ )     这里是i++好不好，  否则就是死循环了， i始终是1， 如何退出循环啊
user-0 提问: 求值顺序

回复:
user: user-1
content: 不这么写不就没有这种歧义的结果了吗？

user: user-2
content: 引用 3 楼 qq_44422004 的回复:你试过没有哟！！！还必然是16。什么水货啊。哟 现在新手都这么燥的吗  粗心算错不算什么大问题  粗心算错还自大狂妄 就很可笑了

user: user-3
content: 引用 3 楼 qq_44422004 的回复:你试过没有哟！！！还必然是16。什么水货啊。 我倒是很想知道你在哪里运行出来是8的，a+=a/3等价于a=a+a/3，不是16还能是多少

user: user-0
content: 你试过没有哟！！！还必然是16。什么水货啊。

user: user-2
content: 引用 楼主 qq_44422004 的回复:比如，int a=12；a+=a/3;a的值是多少？这个是依赖于编译器的吧。虽然win 上的gcc，vc ，mac上xcode都是8.但我手机上的c compiler 就是16.  应该是c程序设计语言第二版里明确提出的有副作用的那一种吧！ 当然不是 结果必然是 16 不存在 8

user: user-4
content: 引用 8 楼 qq_44422004 的回复:是我写错了，是a+=a/=3 这个表达式直到 C11 都是未定义行为，C18 的话手头没有文档，从 Draft 来看应该还是 UB。

user: user-0
content: 引用 11 楼 寻开心的回复:应该是编译器的问题，不同的编译器对标准的支持不同， 手机上的那个玩意儿没有经过大众长期检验    此外， 除了神经的老师和一些竞赛外谁会这么写啊 出于研究的目的，可以折腾折腾， 实际做项目你还是省省吧， 代码不是越短越好， 是越容易理解越好， 更何况短也不代表执行效率高，除了让看的人头晕外，屁用没有。 当然！就是有同事出了这样的题目。而我刚刚学生讲过不要这么写，一点意义都没。我想确定一下是不是错的。

user: user-0
content: 引用 10 楼 lin5161678的回复:[quote=引用 8 楼 qq_44422004 的回复:] 是我写错了，是a+=a/=3这个情况 按照旧版标准的未定义行为 编译器随意处理 c++11 应该改了 结果确定是 8[/quote] c呢？不是c++. c呢？不是c++. c呢？不是c++. 有具体出处吗？

user: user-5
content: 应该是编译器的问题，不同的编译器对标准的支持不同， 手机上的那个玩意儿没有经过大众长期检验    此外， 除了神经的老师和一些竞赛外谁会这么写啊 出于研究的目的，可以折腾折腾， 实际做项目你还是省省吧， 代码不是越短越好， 是越容易理解越好， 更何况短也不代表执行效率高，除了让看的人头晕外，屁用没有。

user: user-2
content: 引用 8 楼 qq_44422004 的回复:是我写错了，是a+=a/=3这个情况 按照旧版标准的未定义行为 编译器随意处理 c++11 应该改了 结果确定是 8

user: user-0
content: 是我写错了，是a+=a/=3

user: user-4
content: 就是 16，我猜你实际想问的应该是 a += a /= 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: a==a/b*b+a%b 那么 a%b 的结果就是 a - a/b*b;  -5%2  == -5-(-5/2*2) == -5 - -4 == -1  -5%-2  == -5-(-5/-2*-2) == -5 - -4 == -1  5%-2  == 5-(5/-2*-2) == 5 - 4 == 1

user: user-3
content: 不是明确说了/运算符的结果是代数商丢弃小数部分吗，代数运算，小学生都懂的，-5/2=-2.5、5/-2=-2.5、-5/-2=2.5

user: user-4
content: 引用 3 楼 qq_44422004 的回复:这里定义完备吗？符号根据被模数来定？没有这样说啊。 确实没有直接这么说，但既然规定了 105) 向 0 舍入，相信你可以自己推导出 "符号根据被模数来定" 这个结论。

user: user-0
content: 听编译器的？可我没有全部的编译器啊！！

user: user-0
content: 这里定义完备吗？符号根据被模数来定？没有这样说啊。

user: user-4
content: C99 已经定义得很完备了。

user: user-5
content: 听编译器的.

user: user-6
content: 引用 7 楼 lin5161678 的回复:a==a/b*b+a%b 那么 a%b 的结果就是 a - a/b*b;  -5%2  == -5-(-5/2*2) == -5 - -4 == -1  -5%-2  == -5-(-5/-2*-2) == -5 - -4 == -1  5%-2  == 5-(5/-2*-2) == 5 - 4 == 1 学习了！收藏

user: user-0
content: 引用 7 楼 lin5161678的回复:a==a/b*b+a%b 那么 a%b 的结果就是 a - a/b*b;  -5%2  == -5-(-5/2*2) == -5 - -4 == -1  -5%-2  == -5-(-5/-2*-2) == -5 - -4 == -1  5%-2  == 5-(5/-2*-2) == 5 - 4 == 1 懂了！谢谢！正解！十个字。
user-0 提问: c语言

回复:
user: user-0
content: 引用 7 楼 自信男孩的回复:#include<stdio.h>   //输出100以内的所有素数 int main() {     int n=2,i=2,a=0;      //for(n;n<=100;n++)     for(;n<=100;n++) {         //for(i;i<n;i++)         for(i = 2;i<n;i++)             if(n % i == 0)                 a++;         if(a==0 && i >= n)             printf("%d  ", n);         a = 0;  // reinit     }     putchar(10);      return 0; } 供参考~ 谢谢了，不好意思，打扰了

user: user-1
content: 引用 3 楼 user-2 的回复:#include<stdio.h>   //输出100以内的所有素数  int main() { 	int n = 0, i = 2, a = 0; 	for (n; n <= 100; n++) 	{ 		a = 0; 		for (i=2; i < n; i++) 		{ 			if (n%i == 0) 				a++; 		} 		if (a == 0) 			printf("%d  ", n); 	} 		 	return 0; } 你两层循环，第二层的循环参数没重置 供参考 n是不是应该从2开始呢？

user: user-1
content: #include<stdio.h>   //输出100以内的所有素数 int main() {     int n=2,i=2,a=0;      //for(n;n<=100;n++)     for(;n<=100;n++) {         //for(i;i<n;i++)         for(i = 2;i<n;i++)             if(n % i == 0)                 a++;         if(a==0 && i >= n)             printf("%d  ", n);         a = 0;  // reinit     }     putchar(10);      return 0; } 供参考~

user: user-0
content: 引用 3 楼 user-2 的回复:#include<stdio.h>   //输出100以内的所有素数  int main() { 	int n = 0, i = 2, a = 0; 	for (n; n <= 100; n++) 	{ 		a = 0; 		for (i=2; i < n; i++) 		{ 			if (n%i == 0) 				a++; 		} 		if (a == 0) 			printf("%d  ", n); 	} 		 	return 0; } 你两层循环，第二层的循环参数没重置 供参考 感谢

user: user-0
content: 引用 4 楼 user-2 的回复:其实应该只要到 i<= n/2 就行，没必要循环到后面去 谢谢

user: user-2
content: 其实应该只要到 i<= n/2 就行，没必要循环到后面去

user: user-2
content: #include<stdio.h>   //输出100以内的所有素数  int main() { 	int n = 0, i = 2, a = 0; 	for (n; n <= 100; n++) 	{ 		a = 0; 		for (i=2; i < n; i++) 		{ 			if (n%i == 0) 				a++; 		} 		if (a == 0) 			printf("%d  ", n); 	} 		 	return 0; } 你两层循环，第二层的循环参数没重置 供参考

user: user-0
content: 引用 1 楼 user-2 的回复:代码规范：所有的for循环，if判断后面都加上花括号，避免后面的代码没有在你的条件里面  谢谢

user: user-2
content: 代码规范：所有的for循环，if判断后面都加上花括号，避免后面的代码没有在你的条件里面
user-0 提问: 为什么VC++可以运行，而Devc++不行?

回复:
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个以上的数据是有输出的啊  给出你认为出错的时候输入的数据样例看看   毕竟是两个不同的编译器，对c++标准的支持不完全一样。

user: user-0
content: 引用 1 楼 proorck2019的回复:源代码帮你看了一遍，没问题。 可是只能输入数字，输出不了

user: user-3
content: 源代码帮你看了一遍，没问题。
user-0 提问: C语言问题

回复:
user: user-1
content: #include <stdio.h>   int main() {     int line, max_ch, ch;     int cnt, i;     int flag = 0;      scanf("%d", &line);     getchar();   //for '\n'      for (i = 0; i < line; i++) {         cnt = 0;         while ((ch = getchar()) != '\n') {             if (flag == 0) {                 max_ch = ch;                 flag = 1;             }             if (max_ch < ch)                 max_ch = ch;             cnt++;         }         printf("No.%d has %d characters!\n", i+1, cnt);     }      printf("Max char is %c\n", max_ch);      return 0; #if 0     int c, n, i,max;     char ch;     scanf("%c",&n);     for(i=0;i<=n;i++)     {         max=0;         c=0;         while ((ch=getchar())!='\n')         {             c++;             if(ch>max)                 max=ch;         }         printf("%d%c",c,max);     } #endif }

user: user-2
content: 要么用 getchar  要么改成 char类型  scanf %c 会写入1个字节的数据  而你的 n有4个字节 只写入1个字节 那么剩下的3个字节是垃圾值  后面的比较没有意义

user: user-0
content: 引用 7 楼 寻开心的回复:#include <stdio.h> int main() { 	int c,n,i,max; 	char ch; 	scanf("%d\n",&n); 	for(i=0; i<n; i++) { 		max=0; 		c=0; 		while ((ch=getchar())!='\n') { 			c++; 			if(ch>max) 				max=ch; 		} 		printf("%d %c\n",c,max); 	} } 我自己也解决了，很感谢

user: user-3
content: 按照题目要求，你其实不应该用一边输入一边输出的交互模式处理  应该是把n行字符串都读入到内存变量，然后挨个处理后，一块儿输出。 或者一次读入一行把处理结果保存起来，最后一块儿输出

user: user-3
content: #include <stdio.h> int main() { 	int c,n,i,max; 	char ch; 	scanf("%d\n",&n); 	for(i=0; i<n; i++) { 		max=0; 		c=0; 		while ((ch=getchar())!='\n') { 			c++; 			if(ch>max) 				max=ch; 		} 		printf("%d %c\n",c,max); 	} }

user: user-3
content: char ch; scanf("%c",&n);  int n； scanf("%d", &n);

user: user-0
content: 本关任务:编写程序，输入n行ASCII字符，计算每行字符的个数(不包括换行符)，并找出最大的字符。例如  输入: 2 Where are you? I'min classroom. 输出↑ 14 y 175

user: user-4
content: #include <stdio.h> int main() { 	int c, n, i; 	char ch,max; 	scanf("%d", &n); 	getchar();//读取掉回车符 	for (i = 0; i <= n; i++) 	{ 		printf("请输入你的字符:"); 		max = 0; 		c = 0; 		ch = getchar(); 		while (ch != '\n') 		{ 			c++; 			if (ch > max) 				max = ch; 			ch = getchar(); 		} 		printf("c=%d,max=%c\n", c, max); 	} 	return 0; }  供参考

user: user-0
content: scanf的%c改成%d

user: user-0
content: 不是我要得到字母。。。。。

user: user-4
content: 你n和max都是int，输入输出用%d
user-0 提问: int类型值赋给char型指针问题。

回复:
user: user-0
content: 引用 2 楼 自信男孩 的回复:把a的值用16进制输出，看一下最低字节是否为0xff，然后从低向高的第二个字节是不是值1；就能理解 输出的结果为啥是-1和1了还是学艺不精，感谢解答。

user: user-1
content: 511 的二进制是 ‭0000 ‭0000 ‭0000 ‭0000 ‭0000 0001 1111 1111‬ 1111 1111 的地址是 62FE0C 0000 0001 的地址是 62FE0D ptr 指向的是 62FE0C ，这个地址存储的是 1111 1111 （十进制是 -1），由于 ptr 是 char 型的指针，所以输出 -1 。  ptr1 指向的是 62FE0D ，这个地址存储的是 0000 0001 （十进制是 1），由于 ptr1 是 char 型的指针，所以输出 1 。   ------------------------------------------------------- 1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南 -------------------------------------------------------

user: user-0
content: 引用 1 楼 user-3 的回复:ptr1的地址改变？怎么改变呢？你的表达让人无解 程序里面输出的最后一行，第一个数字是@1，这是511的高位，低位是255，就是说255+256=511表述不太清楚，不好意思，也就是说那个-1和1是进位，至于为什么是后面一个地址是因为使用的是大端存储。

user: user-2
content: 把a的值用16进制输出，看一下最低字节是否为0xff，然后从低向高的第二个字节是不是值1；就能理解 输出的结果为啥是-1和1了

user: user-3
content: ptr1的地址改变？怎么改变呢？你的表达让人无解 程序里面输出的最后一行，第一个数字是@1，这是511的高位，低位是255，就是说255+256=511
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: 首先可以使用轮询的方法找到大于m和小于m的两个位置，然后把大于m的所有的值向后移一位，把m放到移出来的位置
user-0 提问: C代码调用DLL报错

回复:
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: 改扩展名多没创意呀，VS可以把C文件作为C++来编译的

user: user-3
content: 把扩展名从.c改成.cpp

user: user-2
content: 有的C编译器只能在语句块的前部定义变量的，把output定义跟fun放在同一个区域试试
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: 引用 6 楼 qq_45798109的回复:你输入的是字符型，运算的时候，你要把它转化为整型呀 谢谢，感谢帮助😁😁

user: user-2
content: 你输入的是字符型，运算的时候，你要把它转化为整型呀

user: user-0
content: 引用 2 楼 qq_45798109的回复:#include <stdio.h> #include <string.h> #define MAX 9999 int main(){ 	int sum = 0; 	char str[MAX]; 	scanf("%s",&str); 	for(int i = 0; i < strlen(str); ++i){ 		sum += (str[i] - '0'); 	} 	printf("%d", sum); 	return 0; } 为什么要-‘0’呢，，，，

user: user-3
content: 引用 3 楼 qq_45817801 的回复:[quote=引用 1 楼 壹抹尘埃的回复:]提取字符串中的数字，然后累加？ 应该是吧，我是这么理解的，但是[/quote] 网上应该有例子吧，你找找。

user: user-0
content: 引用 1 楼 壹抹尘埃的回复:提取字符串中的数字，然后累加？ 应该是吧，我是这么理解的，但是

user: user-2
content: #include <stdio.h> #include <string.h> #define MAX 9999 int main(){ 	int sum = 0; 	char str[MAX]; 	scanf("%s",&str); 	for(int i = 0; i < strlen(str); ++i){ 		sum += (str[i] - '0'); 	} 	printf("%d", sum); 	return 0; }

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-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 楼 weixin_45917216的回复:定义的char类型的数组在读入时不需要写取地址符&，它的名字本身就是地址 我就是这个意思，发帖的时候顺手给写上了

user: user-2
content: 定义的char类型的数组在读入时不需要写取地址符&，它的名字本身就是地址

user: user-0
content: 引用 1 楼 自信男孩的回复:#include<stdio.h>  #define N 30  struct student {     int num;     //char name[3];     char name[16];     float g1;/*三科成绩g1g2g3*/     float g2;     float g3;     float total; };  //void main() int main() {     struct student st[N];     int i;     printf("请依次输入学号，姓名，三科成绩");     for(i=0;i<N;i++)     {         //scanf("%d%s%f%f%f",&st[i].num,&st[i].name,&st[i].g1,&st[i].g2,&st[i].g3);         scanf("%d%s%f%f%f",&st[i].num, st[i].name, &st[i].g1, &st[i].g2, &st[i].g3);         st[i].total=st[i].g1+st[i].g2+st[i].g3;/*计算三科成绩*/     }     for(i=0;i<N;i++)         printf("num:%d,name:%s,g1:%.2f,g2:%.2f,g3:%.2f,total:%.2f\n",st[i].num,st[i].name,st[i].g1,st[i].g2,st[i].g3,st[i].total); } 供参考～ 这个char name【】在scanf函数时应该是没有&的

user: user-3
content: #include<stdio.h>  #define N 30  struct student {     int num;     //char name[3];     char name[16];     float g1;/*三科成绩g1g2g3*/     float g2;     float g3;     float total; };  //void main() int main() {     struct student st[N];     int i;     printf("请依次输入学号，姓名，三科成绩");     for(i=0;i<N;i++)     {         //scanf("%d%s%f%f%f",&st[i].num,&st[i].name,&st[i].g1,&st[i].g2,&st[i].g3);         scanf("%d%s%f%f%f",&st[i].num, st[i].name, &st[i].g1, &st[i].g2, &st[i].g3);         st[i].total=st[i].g1+st[i].g2+st[i].g3;/*计算三科成绩*/     }     for(i=0;i<N;i++)         printf("num:%d,name:%s,g1:%.2f,g2:%.2f,g3:%.2f,total:%.2f\n",st[i].num,st[i].name,st[i].g1,st[i].g2,st[i].g3,st[i].total); } 供参考～
user-0 提问: c指针从方法里出来就变为默认了？

回复:
user: user-0
content: 引用 9 楼 Italink的回复:[quote=引用 8 楼 l210148678 的回复:] 可是传进去方法的就是指针呀 对，没错，你传的是指针，传指针就是可以修改吗？无论如何，函数无法修改实参，传指针说到底是将变量的地址传进去，但并不修改这个地址，而是根据这个地址来修改变量的值，你传的是一个指针进去，但是你直接修改指针可以改吗？比如你要修改一个int类型的值 void fun(int *i){     *i=5;   //这里没有更改i的值，而是更改了*i的值 } 所以，好好想想，你想修改一个指针，那么是不是应该传入一个指针的指针[/quote] 嗷嗷，就是方法里不会改动变量的地址，但是可以把这个地址指向的值改了。应该是这样子吧。 谢谢谢谢，我好像懂了

user: user-1
content: 引用 8 楼 l210148678 的回复:可是传进去方法的就是指针呀 对，没错，你传的是指针，传指针就是可以修改吗？无论如何，函数无法修改实参，传指针说到底是将变量的地址传进去，但并不修改这个地址，而是根据这个地址来修改变量的值，你传的是一个指针进去，但是你直接修改指针可以改吗？比如你要修改一个int类型的值 void fun(int *i){     *i=5;   //这里没有更改i的值，而是更改了*i的值 } 所以，好好想想，你想修改一个指针，那么是不是应该传入一个指针的指针

user: user-0
content: 引用 1 楼 Italink的回复:掩耳盜鈴 就跟 void fun(int i) { 	i = 5; } 一樣，实参会改变吗，不会吧 可以改变的是实参的内部结构，你可以传入List*格式的参数，赋值时使用*PtrL 可是传进去方法的就是指针呀

user: user-0
content: 引用 3 楼 不知则问的回复:建议你先抽些时间，仔细并全面的学习或复习一下 函数传引用、传数组、传指针和传普通参数的具体过程。 一定要弄明白每个传参方式的内存分配问题，不能只知其一不知其二，囫囵吞枣可不行，这样对你以后的学习都会有很大的帮助。 好的谢谢谢谢，我去好好看看

user: user-2
content: 学习下传值运算和传址运算的区别

user: user-3
content: 用参数传指针赋值之前要保证这个指针已经指向了一块分配好的内存，后续操作就是通过传入的指针对那块内存写值，你想直接对参数分配内存再传回去，那是不行的，指针其实就是个变量，只不过这个变量放的不是普通值而是地址罢了，你对指针参数分配内存就相当于对一般参数赋值，还希望这个值能返回给原变量一样，这怎么可能？ 而分配了内存之后传入的指针，函数内可以通过这个地址去访问那块不属于此函数的内存的，改变的值也不是参数本身，是那块分配好的内存

user: user-1
content: 掩耳盜鈴 就跟 void fun(int i) { 	i = 5; } 一樣，实参会改变吗，不会吧 可以改变的是实参的内部结构，你可以传入List*格式的参数，赋值时使用*PtrL

user: user-4
content: 建议直接贴代码吧

user: user-5
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: 引用 1 楼 與蘤舊縐的回复:正序和逆序都算排序吧 遍历数组，判断前一个值是否始终大于、小于后一个值，设一个变量，当出现错误时，使变量的值改变，遍历结束后判断该变量的值，输出 谢谢，我写出来了，nice!

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 main(void) {     int i, j, n;      n = 9;     for (i = 1; i <= n; i++) {         for (j = 1; j <= i; j++)             printf("%dx%d=%-*d ", j, i, j==1?1:2, j * i);         printf("\n");     }      return 0; }

user: user-3
content: 网上搜一下吧，应该有很多的说明，介绍和代码～
user-0 提问: PTA中的小问题

回复:
user: user-1
content: 不要那么夸张，我是看你很勤快的写程序，算是一种鼓励吧

user: user-0
content: 引用 12 楼 SuperDay的回复:没事，我用不上，你要好好写程序，发挥它的用处，就是对得起这分数了 天啊，大佬你是天使嘛，真是太有爱了，希望大佬越来越nb

user: user-0
content: 天啊，大佬你是天使嘛，真是太有爱了，希望大佬越来越nb

user: user-1
content: 没事，我用不上，你要好好写程序，发挥它的用处，就是对得起这分数了

user: user-0
content: 引用 9 楼 SuperDay的回复:转给你了，有没收到？要多写程序，多练习多调试 大佬我才看到，竟然还有这种操作，好人一生平安好人一生平安好人一生平安好人一生平安好人一生平安好人一生平安好人一生平安，祝你好梦！

user: user-2
content: 没事的，反正闲着也是闲着，看你们的错多了，自己就不会犯了

user: user-1
content: 转给你了，有没收到？要多写程序，多练习多调试

user: user-1
content: 引用 6 楼 乔碧萝大魔王的回复:[quote=引用 5 楼 SuperDay的回复:]两个if里面都有=号，都要改成==号 大佬，我又错在了这种弱智地方，你太强了[/quote] 爱自己亲自动手写程序的都是好孩子啊，你看看坛子里面多少个伸手党啊。我给你点分数吧，反正我拿着也没什么用

user: user-0
content: 引用 3 楼 qq_45798109的回复:   if(digit=number)你确定是=不是==？ 你说的太对了，可惜我没有积分了只能给你十分，isososorry

user: user-0
content: 引用 5 楼 SuperDay的回复:两个if里面都有=号，都要改成==号 大佬，我又错在了这种弱智地方，你太强了

user: user-1
content: 两个if里面都有=号，都要改成==号

user: user-0
content: 引用 3 楼 qq_45798109的回复:   if(digit=number)你确定是=不是==？ 大佬，救我。我改成那样也是不对的

user: user-2
content: if(digit=number)你确定是=不是==？

user: user-0
content: 引用 1 楼 SuperDay的回复:又是你！你发的两个CountDigit，是哪个？ 大佬救我，我第一个是对的，第二个不知道错在哪

user: user-1
content: 又是你！你发的两个CountDigit，是哪个？
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: 但是，VS有一个比较奇葩的地方就是，在for里面定义的变量，外面仍然有效，所以，如果两个for里面定义同名的变量是不允许的，一般这种最好移动到前面去定义

user: user-3
content: 在外面定义的话，他只是第一次循环时x的初始值为零 内部定义的话，就是每一次循环，它的初始值都为零

user: user-2
content: 一般来说，在定义之后的区域内有效，也就是所谓的作用域，而循环内定义的变量，相当于语句块里面的，只对当前语句块有效
user-0 提问: 完数。输入两个数，输出两数之间的所有完数。不知哪里有问题，不运行

回复:
user: user-0
content: 引用 1 楼 user-1的回复:对于每一轮的n循环，sum都要置0 并且这个是a到b的闭区间，你把范围也搞错了 哦哦哦题目搞错了。题中那个不等式只是端点值的范围，我自己糊涂了。每次循环sum都要置0 ，这个真的没搞清。谢谢喽~

user: user-1
content: 对于每一轮的n循环，sum都要置0 并且这个是a到b的闭区间，你把范围也搞错了
user-0 提问: 关于linux执行的疑问

回复:
user: user-0
content: 已经改过来了，谢谢！！！

user: user-1
content: 引用 3 楼 自信男孩 的回复:[quote=引用 1 楼 apkipa1 的回复:] 除了对 z 的访问越界，没看出来其它问题。 x,y数组也都越界了。[/quote] 对的，我看漏了。

user: user-2
content: sum建议定义为double类型～ i < 3;不是i <=3

user: user-2
content: 引用 1 楼 apkipa1 的回复:除了对 z 的访问越界，没看出来其它问题。 x,y数组也都越界了。

user: user-3
content: 要学会调试程序，请参考调试程序的一亿种方法

user: user-1
content: 除了对 z 的访问越界，没看出来其它问题。