Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: C判断等差数列，输出公差。求大佬帮忙看看这个代码，运行结果有问题啊

回复:
user: user-1
content: 引用 6 楼 Halozsy 的回复:[quote=引用 5 楼 weixin_40290083的回复:]你的flag如果为0了，那么就证明这个数列不是等差数列，就要退出循环了。按你的逻辑，如果1 3 5 7 8 10 12 16这个就是等差数列，因为8-7==1，而你的代码检测到这种情况后继续遍历数组进行判断，而后半段确实是等差数所，所以得到了错误的结果。  按你的代码改：将flag = 1 修改为flag = flag && 1;这样当检查到非等差的一组数时，flag为假，后半断的即使是等差数列，由于“与”运算，结果总为假。 嗯嗯发现问题了。辛苦答主敲字了，谢谢喽～[/quote]  1、如果问题已经得到解决，请及时结贴。结贴教程。 2、如果没有解决，可继续追问。 3、只能在电脑网页上结贴，手机不能结贴。 CSDN论坛新手指南

user: user-0
content: 引用 5 楼 weixin_40290083的回复:你的flag如果为0了，那么就证明这个数列不是等差数列，就要退出循环了。按你的逻辑，如果1 3 5 7 8 10 12 16这个就是等差数列，因为8-7==1，而你的代码检测到这种情况后继续遍历数组进行判断，而后半段确实是等差数所，所以得到了错误的结果。  按你的代码改：将flag = 1 修改为flag = flag && 1;这样当检查到非等差的一组数时，flag为假，后半断的即使是等差数列，由于“与”运算，结果总为假。 嗯嗯发现问题了。辛苦答主敲字了，谢谢喽～

user: user-2
content: 排序部分至少要用到j，你写的都是i。

user: user-1
content: 冒泡排序写错了。怎么写去搜一下。

user: user-3
content: 你的flag如果为0了，那么就证明这个数列不是等差数列，就要退出循环了。按你的逻辑，如果1 3 5 7 8 10 12 16这个就是等差数列，因为8-7==1，而你的代码检测到这种情况后继续遍历数组进行判断，而后半段确实是等差数所，所以得到了错误的结果。  按你的代码改：将flag = 1 修改为flag = flag && 1;这样当检查到非等差的一组数时，flag为假，后半断的即使是等差数列，由于“与”运算，结果总为假。

user: user-3
content: 两种判断方法，注释的也是一种方法，

user: user-4
content: for (int i = 0; i < n; i++)     {         for (int j = 0; j < n - i - 1; j++)          {             if (Arr[j] > Arr[j + 1])             {                 int tmp = Arr[j + 1];                 Arr[j + 1] = Arr[j];                 Arr[j] = tmp;             }         } }
user-0 提问: 可以看看哪里写错了吗？

回复:
user: user-0
content: 引用 4 楼 寻开心的回复:蓝色那一行所在的部分是做a[seat]和a[i]交换数据吧  把蓝色的改成 a[seat]=temp就好了 谢谢，好了。这个错误值得警惕！

user: user-1
content: 把交换里的a[j-1] = a[i];改成： a[seat] = a[i];

user: user-2
content: 蓝色那一行所在的部分是做a[seat]和a[i]交换数据吧  把蓝色的改成 a[seat]=temp就好了

user: user-3
content: 引用 2 楼 up___lqw的回复:[quote=引用 1 楼 黑白判官的回复:]就蓝色那行。你都用seat了，突然用j-1是什么意思 换成seat后依然不对啊  [/quote] 你a[i]数值都改过了当然不对啊

user: user-0
content: 引用 1 楼 黑白判官的回复:就蓝色那行。你都用seat了，突然用j-1是什么意思 换成seat后依然不对啊

user: user-3
content: 就蓝色那行。你都用seat了，突然用j-1是什么意思
user-0 提问: C语言构建数组，最后显示小票问题

回复:
user: user-0
content: 引用 3 楼 wowpH 的回复:输入F显示小票？下面这两行逻辑有点奇怪。 		while (strcmp(enter, "F") != 0) {  				if (strcmp(m[i].code, enter) == 0)   单步调试。。。CSDN论坛新手指南   您好，这个系统的意思是，最后一个人输入F点菜结束，自动弹出小票，现在是小票的内容不知道如何表示。这个自己搞了半天了也没弄懂……  #include <stdio.h> #include <string.h>  struct menu {     char code[5];     char name[50];     float price; }; int main(void) {     struct menu m[4]={         {"A1","RICE",23.1},{"B1","BURGER",232.1},{"C1","HOTDOG",21.22},{"D1","MILK",432.1}     };          char enter[15];     char order;     int n,i,j,k;//n=numbers          printf("enter the number of students:");     scanf("%d",&n);          for(j=1;j<=n;j++)     {         printf("\nstudent %d enter:",j);         scanf("%s",enter);                  while(strcmp(enter,"F")!=0)         {              for(i=0;i<4;i++)             {                  if(strcmp(m[i].code,enter)==0)                 printf("\n%s %s %f\n",m[i].code,m[i].name,m[i].price);             }                          printf("\nstudent %d enter:",j);             scanf("%s",enter);                                   }               }          for(k=1;k<=n;k++)     {         printf("\nThe order of student %d is %c",k,order);     }          printf("\n");       return 0; }

user: user-0
content: 引用 2 楼 自信男孩 的回复:建议把每个人点餐记录下来，比如记录一下menu数组的下表，这样输出时就可以根据下表输出对应的点餐信息～  您好！是要单独列出一个char order[ ]吗？  然后在三十九行后面 写 order=order+（m[i].code,m[i].name,m[i].price），最后printf("%s",order)?  这样我试了一下好像出不来  用什么方法记录menu数组下表呢？  谢谢！

user: user-1
content: 输入F显示小票？下面这两行逻辑有点奇怪。 		while (strcmp(enter, "F") != 0) {  				if (strcmp(m[i].code, enter) == 0)   单步调试。。。CSDN论坛新手指南

user: user-2
content: 建议把每个人点餐记录下来，比如记录一下menu数组的下表，这样输出时就可以根据下表输出对应的点餐信息～

user: user-0

user: user-0
user-0 提问: ini文件加密

回复:
user: user-1
content: 要加密可以使用本地数据库，参考http://www.sqlite.org/

user: user-2
content: 猜测是安装程序的配置文件， 一般来说记录的是安装的文件名称和路径，  也许卸载程序会再次用到它 这样的文件一般说来都是文本文件，可以直接阅读 对他加密不加密，取决于实用的安装/卸载程序如何对它进行读写，这两个程序不修改，就无法改造ini文件本身，你改了安装/卸载程序很可能就无法正常工作了。 如果是借助第三方的安装工具生成的，那还是想第三方工具求解吧。 如果是自己的安装卸载程序就很容易做了， 文本加密解密而已， 太多方法了，可以对文本重新编码， 可以向文件里掺杂虚假数据，可以把文件改造成二进制的， 。。。。。。  ps 一般来说， 安装程序是只读的，你把ini文件弄成个 只读/隐藏/系统  这样的属性糊弄糊弄电脑不熟悉的人还是可以
user-0 提问: int=5；a++；a++表达式为什么是5

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

user: user-0
content: 好的，懂了，感谢大佬们

user: user-2
content: 表达式a++;先算表达式的值，再算++

user: user-3
content: a++表达式的值是a，++a的表达式取值a+1

user: user-4
content: a的值是 6 a++的值是 5 注意区分
user-0 提问: C语言如何编写才能使数组的长度自由的变化（等长与控制面板中输入字符串的长度）

回复:
user: user-1
content: 把控制台输入的所有内容都放到一个内存当中吗？ C语言没有简单的函数可以直接做到， 理论上你可以从控制台输入任意长度的字符串进去，内存都可能装不下。 如果恰巧你用gets来获取字符串， 那就很可能冒内存越界的危险 所以，对于用户输入一定要有预期， 限定长度。这样就可以弄一个最大长度的数组来容纳所有的输入。 如果确实是类似字处理软件那样无限的输入，就不要想一次全部输入， 而是要自己建立自己的输入缓冲， 甚至保存到磁盘上去存储数据。

user: user-2
content: 当空间不足时，开辟新空间，将原空间的数据移到新空间，释放原空间

user: user-3
content: 数组一旦定义了之后长度是不能改变的。 可以用指针动态申请内存。  但是：等长与控制面板中输入字符串的长度。这句话什么意思？

user: user-4
content: 你所看到的高级语言中的自由化数组长度都是用后实现的，比如MFC的CString，PHP的$array['0']['1']='hello word!'，用c语言你可以自己写字符串类，无非就是new，delete
user-0 提问: C语言。Xcode 一直报错 球球大佬相助

回复:
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: 应该是那个指针不可更改， 不是malloc的问题是赋值的问题 形参和实参不是一个概念
user-0 提问: 弹弹球小游戏怎么打印边框

回复:
user: user-1
content: 边框呢，唉

user: user-2
content: 引用 2 楼 Guchcx 的回复:[quote=引用 1 楼 轻箬笠的回复:]边框是不是就是星号组成的长方形啊？ 是呀，就是想让小球在框框里面弹[/quote]  两个办法，一个是每次都将要打印的图案存入二维数组，然后输出数组，这样会导致边框频繁刷新，极不稳定 另一个是一次输出边框，改变小球位置时使用设置光标位置来抹去原来的求以及打印当前的球（具体实现自己查吧，不难）

user: user-0
content: 引用 1 楼 轻箬笠的回复:边框是不是就是星号组成的长方形啊？ 是呀，就是想让小球在框框里面弹

user: user-3
content: 边框是不是就是星号组成的长方形啊？
user-0 提问: 求大佬帮忙，，我头要炸了

回复:
user: user-1
content: 及时结贴。CSDN论坛新手指南

user: user-2
content: 给你写一个示例的，还是要学会自己使用搜索引擎啊。  #include <iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> using namespace std;  bool isPrime(int n) { 	// 是否存在因子 	for (int i = 2; i*i <= n; i++) { 		if (n % i == 0) return false; 	} 	return true; } int main() { 	int f[20]; 	f[0] = f[1] = 1; 	for (int i = 2; i < 20; i++) { 		f[i] = f[i - 1] + f[i - 2]; 	} 	int n; 	while (cin >> n) { 		int center = f[n]; 		cout << "该项为" << center << endl; 		cout << "最近质数为:"; 		for (int i = 1;; i++) { // 从中心往两边找 			if (center - i >= 2 && isPrime(center - i)) { 				cout << center - i << endl; 				break; 			} 			if (isPrime(center + i)) { 				cout << center + i << endl; 				break; 			} 		} 	} 	return 0; }

user: user-1
content: int i; for (i = 1; i < y; ++i) {     判断y-i是不是质数         是，退出     判断y+i是不是质数         是，退出 } 输出质数。

user: user-0
content: 引用 2 楼 wowpH的回复:先学会斐波那契数列 再学会判断一个数是不是质数。 那么就可以解决了。       #include<stdio.h>     int fun(int x){ 	if(x == 1)return 1; 	if(x == 2) return 1; 	return fun(x-1) + fun(x-2); }   void main(){   	int num; 	 	printf("please input a number : ");   	scanf("%d",&num); 	 	int y = fun(num); 	 	printf("%d\n",y);   }    这个对不对呢 之后呢

user: user-0
content: 引用 2 楼 wowpH的回复:先学会斐波那契数列 再学会判断一个数是不是质数。 那么就可以解决了。 哥...能不能给瞅一下具体的代码

user: user-1
content: 先学会斐波那契数列 再学会判断一个数是不是质数。 那么就可以解决了。

user: user-0
content: 刚开始学，，菜见谅
user-0 提问: C语言

回复:
user: user-1
content: 引用 9 楼 huangzhixion_g 的回复:[quote=引用 8 楼 user-1的回复:][quote=引用 7 楼 huangzhixion_g 的回复:] 谢谢了，我刚看了几遍发现问题了，我又用float定义了一遍R1， 不客气。麻烦楼主结贴。 CSDN论坛新手指南 [/quote] 我是刚下的这个，不知道怎么结帖[/quote] 电脑结贴。手机不能结贴。

user: user-0
content: 引用 8 楼 user-1的回复:[quote=引用 7 楼 huangzhixion_g 的回复:] 谢谢了，我刚看了几遍发现问题了，我又用float定义了一遍R1， 不客气。麻烦楼主结贴。 CSDN论坛新手指南 [/quote] 我是刚下的这个，不知道怎么结帖

user: user-1
content: 引用 7 楼 huangzhixion_g 的回复:谢谢了，我刚看了几遍发现问题了，我又用float定义了一遍R1， 不客气。麻烦楼主结贴。 CSDN论坛新手指南

user: user-0
content: 引用 6 楼 user-1的回复:这么看着没问题啊。 或者你试试下面这样。  #define R1 0.1  CSDN论坛新手指南 谢谢了，我刚看了几遍发现问题了，我又用float定义了一遍R1，

user: user-1
content: 这么看着没问题啊。 或者你试试下面这样。  #define R1 0.1  CSDN论坛新手指南

user: user-0
content: 引用 3 楼 user-1的回复:不介意的话，将代码展示一下。 #include<stdio.h> #define       R1     0.1

user: user-0
content: #include<stdio.h> #define       R1     0.1

user: user-1
content: 不介意的话，将代码展示一下。

user: user-1
content: #define是宏定义。

user: user-0
content: 引用 楼主 huangzhixion_g的回复:in expansion of macro 是什么意思 在#define  中出现的
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: ⑴最多可以写3次，用for循环 ⑵整数和字符串转换iota, atoi 函数

user: user-3
content: 会用while，for，do while就知道怎么整了吧
user-0 提问: c语言比较运算符求逻辑值问题

回复:
user: user-1
content: 引用 5 楼 a149979032 的回复:修改程序如下: #include＂stdio.h＂ int main() {     int i = 5,j = 10,k = 1;     int sum;     sum = k > i < j;     printf("%d\n",sum);     return 0; } 此时k>i<j,即有1>5为假，故为0，然后0跟后面的j 比较，有0<10为真，所以等于1 真正的程序别这样写！

user: user-2
content: 修改程序如下: #include＂stdio.h＂ int main() {     int i = 5,j = 10,k = 1;     int sum;     sum = k > i < j;     printf("%d\n",sum);     return 0; } 此时k>i<j,即有1>5为假，故为0，然后0跟后面的j 比较，有0<10为真，所以等于1

user: user-3
content: 引用 3 楼 杭城彭于晏 的回复:[quote=引用 2 楼 proorck2019 的回复：]1>(5<10) 1>0 1关系运算符自左向右[/quote] 解决了就结贴。CSDN论坛新手指南

user: user-0
content: 引用 2 楼 proorck2019 的回复：1>(5<10) 1>0 1关系运算符自左向右

user: user-4
content: 1>(5<10) 1>0 1

user: user-1
content: c语言能不能直接写1<=x<10？ 关系运算符 8级<、<=、>、>=关系运算符。相等运算符 9级“ == ”等于运算符；“ != ”不等于运算符。他们是左结合，也就是从左到右运算。所以等价于(1<=x)<10。1<=x如果为假值为0，为真，也就是为1（注意虽然非0即真，但是c语言逻辑运算符结果真的取值标准中规定直接取1，而不是任意非的值）。最终结果是1<10，也就是1。
user-0 提问: #include 
#include 

int main()
{
int a,b,c;
for(a=1;a<34;a++

回复:
user: user-1
content: =赋值运算符 ==关系运算符  CSDN论坛新手指南

user: user-2
content: 你第三层循环可以删了 还有你这个有bug的，c/2在这边是整除号

user: user-0
content: #include <stdio.h> #include <stdlib.h>  int main() { int a,b,c; for(a=1;a<34;a++)     for(b=1;b<50;b++)     for(c=1;c<100;c++) {c=100-a-b;     if((3*a+2*b+c/2)==100)         printf("大马是%d匹，中马是%d匹，小马是%d匹。\n",a,b,c); }  return 0; }
user-0 提问: c#wds窗体应用入门求助

回复:
user: user-1
content: 创建一个c#窗体，先把界面做出来。给按钮做个clik事件，提取textbox中的内容，做一下简单的处理就好了。

user: user-2
content: ⑴图形用户界面 ⑵字符串操作

user: user-3
content: 这个不就是拖拖控件的事情吗？
user-0 提问: 各位大佬输出不了 程序也没错  就是计算组合数

回复:
user: user-1
content: 解决了就结贴。 CSDN论坛新手指南

user: user-2
content: int z(int a) { int y; return a*z(a-1) ;	 }  陷入了死循环，你需要重新实现以下阶乘  long long z(int a){ long long result = a; while(a--)     result*=a; return result; }

user: user-3
content: 一个int类型的k为什么要输出%ld
user-0 提问: 能不能解释一下这个代码是啥意思？

回复:
user: user-1
content: 第8行代码应该是打印错误吧？在英文输入法中，是不区分左右双引号的

user: user-2
content: 只有代码，没有需求吗？建议根据需求，分析代码可能会更快些～

user: user-3
content: 自己动手打一下就知道了呀

user: user-4
content: 自己动手打一下就知道了呀

user: user-5
content: 加1 CSDN论坛新手指南

user: user-6
content: 自己动手打一下就知道了呀
user-0 提问: 为什么第四题是这个答案，求解？

回复:
user: user-1
content: 引用 11 楼 qq_45865479 的回复:[quote=引用 9 楼 wowpH的回复:][quote=引用 8 楼 qq_45865479 的回复:] [quote=引用 6 楼 wowpH的回复:][quote=引用 5 楼 qq_45865479 的回复:] 哦，我知道了，这样啊，谢谢大佬。 不客气。CSDN论坛新手指南 [/quote] 这个结贴给分是自动的吗，大佬？[/quote] 不是自动的。只能电脑手动结贴。[/quote] 啊。那我用的是手机怎么办？[/quote] 买个电脑。

user: user-0
content: 引用 9 楼 wowpH的回复:[quote=引用 8 楼 qq_45865479 的回复:] [quote=引用 6 楼 wowpH的回复:][quote=引用 5 楼 qq_45865479 的回复:] 哦，我知道了，这样啊，谢谢大佬。 不客气。CSDN论坛新手指南 [/quote] 这个结贴给分是自动的吗，大佬？[/quote] 不是自动的。只能电脑手动结贴。[/quote] 啊。那我用的是手机怎么办？

user: user-0
content: 啊，那我用的是手机怎么办？

user: user-1
content: 引用 8 楼 qq_45865479 的回复:[quote=引用 6 楼 wowpH的回复:][quote=引用 5 楼 qq_45865479 的回复:] 哦，我知道了，这样啊，谢谢大佬。 不客气。CSDN论坛新手指南 [/quote] 这个结贴给分是自动的吗，大佬？[/quote] 不是自动的。只能电脑手动结贴。

user: user-0
content: 引用 6 楼 wowpH的回复:[quote=引用 5 楼 qq_45865479 的回复:] 哦，我知道了，这样啊，谢谢大佬。 不客气。CSDN论坛新手指南 [/quote] 这个结贴给分是自动的吗，大佬？

user: user-0
content: 这个结贴和分是自动的吗，大佬？

user: user-1
content: 引用 5 楼 qq_45865479 的回复:哦，我知道了，这样啊，谢谢大佬。 不客气。CSDN论坛新手指南

user: user-0
content: 哦，我知道了，这样啊，谢谢大佬。

user: user-2
content: 这个有啥的一步一步分析不就行了

user: user-3
content: 图片没法看，歪头，挤眼都不行呢

user: user-4
content: 要不然呢，3—2不就是等于1，while ！--1，不就是while !0，为真，继续执行，然后减2，不就得-2，然后while -3不就是假，就退出了

user: user-5
content: 你这图片是故意放上来难为人的？
user-0 提问: 请问这类题是怎么做的？

回复:
user: user-1
content: 这类程序不用做，连最基本的大小端都没说明

user: user-2
content: 引用 4 楼 黑白判官的回复:引用 1 楼 SuperDay 的回复:int是32位的啊，这题目是错的为啥这么说 int和long都是32位的，最后k的值是0x39

user: user-3
content: 引用 1 楼 SuperDay 的回复:int是32位的啊，这题目是错的为啥这么说

user: user-1
content: 在这个程序里，int是16位，long是32位，应该

user: user-4
content: 题目应该是很老的题目了，应该是16位系统的时候出的题目～

user: user-2
content: int是32位的啊，这题目是错的
user-0 提问: 初学菜鸟 求大神帮助

回复:
user: user-0
content: 引用 1 楼 自信男孩的回复:不是很难的，为啥不自己写写呢 怎么同时表示n个元素最大的m个并且求这m个元素的和

user: user-1
content: 输入字符串str; 整型sum 初始化为0; for (整型i=0; 不是结束符; i自增) {     if (当前字符是数字) {         sum += (字符 - '0');     } } 输出sum;

user: user-2
content: 不是很难的，为啥不自己写写呢，自己查资料的过程也是学习的过程，也是培养自我的过程

user: user-3
content: 这个不会的话 可以先去学习下基本的语法

user: user-4
content: 不是很难的，为啥不自己写写呢
user-0 提问: 帮帮忙

回复:
user: user-1
content: 厉害，居然还有Turbo C

user: user-2
content: 楼上厉害。我刚看提示，还在找哪里少分号呢。原来是楼主粗心大意了。

user: user-3
content: while不是whlie 单词拼写错误～
user-0 提问: 大神帮帮忙，算法我是找不出来哪有问题了

回复:
user: user-1
content: 重新学习下字符串的输入输出

user: user-2
content: 1、考虑输入的字符串不足100个字符的情况。 2、考虑输入字符串时使用tab间隔单词 3、考虑输入时使用换行符间隔单词。

user: user-2

user: user-3
content: char a[100],*p; //用字符数组 int i,f; scanf( "%[^\n]", a)； p=a; for (f=1, p=a;*p!='\0';p++) //f是单词开头标志 {     if (*p == ' ') f=1; //如果遇到空格，就设置单词开头标志    else if (f == 1) //如果是单词开头    {         if (*p<='z'&&*p>='a') *p=*p-32; //如果单词开头是小写字母，则变为大写         f = 0; //     } } printf("%s ", a)

user: user-4
content: #include <stdio.h> #include <ctype.h>  //void main() int main() {     char str[128];     int i = 0, flag = 0;      fgets(str, 128, stdin);      while (str[i] && !isalpha(str[i]))         i++;      while (str[i]) {         if (i == 0 &&islower(str[i]))                 str[i] -= 32;         if (flag) {             if (islower(str[i])) {                 str[i] -= 32;                 flag = 0;             }         }         if (str[i] == ' ')             flag = 1;         i++;     }      printf("%s", str);     /*     int a[100],i,*p;     for (i=0;i<100;i++)         scanf("%d",a+i);     p=a;     for (p=a;*(p+i)!='\0';p++)     {         if (*p<='z'&&*p>='a')             *p=*p-32;         else if (*(p+i-1)==' '&&*(p+i)<='z'&&*(p+i)>='a')             *(p+i)=*(p+i)-32;         printf ("%4d",a[i]);     }     */     return 0; } 供参考～  楼主的代码和字符串没有关系呢
user-0 提问: 单片机AVR寄存器

回复:
user: user-0
content: 引用 1 楼 user-1的回复:就是PORTC=PORTC & 0b11111000  &的作用该位都为1则为1，反之为0，比如PORTC如果为0b10100001,则得到的结果为0b10100000 还是不怎么懂？我那个0b11111000不也是个还没得出的结果嘛？

user: user-1
content: 就是PORTC=PORTC & 0b11111000  &的作用该位都为1则为1，反之为0，比如PORTC如果为0b10100001,则得到的结果为0b10100000
user-0 提问: C语言用do   while语法求e

回复:
user: user-1
content: #include <stdio.h>  int main() {  	double x = 1.0; 	double dResult = 1.0; 	int n; 	printf("请输入n的值："); 	scanf("%d", &n); 	do  	{ 		x = 1.0; 		if (n>0) 		{ 			for (int j = 1; j <= n; j++) 			{ 				x *= j; 			} 		} 		dResult += 1 / x; 		n--; 	} while (n); 	 	printf("%f", dResult); 	return 0; }

user: user-2
content: #include <stdio.h> int main() {  	float i,e=1; 	int n; 	printf("请输入n的值："); 	scanf("%d",&n); 	for(i=1;i<=n;i++)         e+=1/i; 	printf("%f",e); 	return 0; }

user: user-0
content: 引用 6 楼 user-5的回复:可以用递归，再用都while调用 不会呀，咋搞，只会for

user: user-3
content: ⑴求阶乘的函数 ⑵x=1/fact(n) ⑶sum+=x ⑷循环的退出条件

user: user-0
content: 引用 1 楼 自信男孩的回复:自己写写吧，起码动动手 不会啊，要是会就不用来问了，自己写了但出来结果

user: user-4
content: 自己写写吧，起码动动手

user: user-5
content: 可以用递归，再用都while调用
user-0 提问: c 萌新

回复:
user: user-1
content: 引用 4 楼 weixin_45838623 的回复:[quote=引用 3 楼 自信男孩的回复:]只有多写多练，没有其他方法。如果自己不会写，那就抄写书本或别人的代码，然后自己学着调试～ 大佬，哪里可以找到别人的代码？有没有具体的网址啥的，[/quote] 1、自己写（包括调试） 2、搜索，（百度等等）。 3、问别人  另外谁会搞个网址，就为了发你们课本的代码啊。。。。。百度基本都能解决的。

user: user-0
content: 引用 3 楼 自信男孩的回复:只有多写多练，没有其他方法。如果自己不会写，那就抄写书本或别人的代码，然后自己学着调试～ 大佬，哪里可以找到别人的代码？有没有具体的网址啥的，

user: user-2
content: 只有多写多练，没有其他方法。如果自己不会写，那就抄写书本或别人的代码，然后自己学着调试～

user: user-3
content: 从最简单的程序开始练手，慢慢积累，自然就熟悉了

user: user-0
content: 各位路过的大佬帮帮忙呀
user-0 提问: 各位老师，帮我看看，我着实不知那儿有错误

回复:
user: user-1
content: 代码没太大问题，简单修改了以下 #include <stdio.h> #include <stdlib.h> #define N 10 int main() { 	int a[N], *p, *q, t, i; 	for (i = 0; i<10; i++) 		scanf("%d", a + i); 	p = a; q = a + N - 1; 	while (p<q) 	{ 		t = *p; *p = *q; *q = t; 		p++; q--; 	} 	printf("%d", a[0]);//-----输出第一个元素时前面不加空格----- 	for (i = 1; i<10; i++)//-----------从第二个元素开始，前面加空格------- 		printf("%4d", a[i]); 	system("pause");//-----------窗口暂停------------- 	return 0; } VS2015调试结果

user: user-0
content: 我要是用指针将一个字符串逆序输出

user: user-2
content: 你是要对10个元素的数组排序吗？

user: user-3
content: 没说明编程目标，算法问题别人也不好猜。

user: user-4
content: 引用 5 楼 0^??^0 的回复:之前少了头文件，但运行结果却是错的 #include <stdio.h> #define N 10 void main() { int a[N],*p,*q,t,i;   for(i=0;i<10;i++) 	  scanf("%d",a+i);  p=a;q=a+N-1;  while(p<q)  { t=*p;*p=*q;*q=t;    p++;q--;  }  for(i=0;i<10;i++) 	 printf("%4d",a[i]); } 楼主把预期的结果和自己实际运行的结果贴出来看看

user: user-0
content: 之前少了头文件，但运行结果却是错的 #include <stdio.h> #define N 10 void main() { int a[N],*p,*q,t,i;   for(i=0;i<10;i++) 	  scanf("%d",a+i);  p=a;q=a+N-1;  while(p<q)  { t=*p;*p=*q;*q=t;    p++;q--;  }  for(i=0;i<10;i++) 	 printf("%4d",a[i]); }

user: user-5
content: 没什么错，如果是完全的话 加个输入输出的头文件

user: user-6
content: #include <stdio.h>   #define N 10   //void main() int main() {     int a[N],*p,*q,t,i;      for(i=0;i<N;i++)         scanf("%d", a+i);     p = a;     q = a+N-1;     while(p < q) {         t  = *p;         *p = *q;         *q = t;         p++;         q--;     }     for(i=0;i< N;i++)         printf("%4d", a[i]);      return 0; } 供参考～  程序没什么问题。

user: user-7
content: 输出时候加个空格之类的，看不出什么问题，调试一下看看
user-0 提问: PTA关于组合数的问题

回复:
user: user-0
content: 引用 1 楼 早打大打打核战争的回复:double C(int n, int m) {   double r = n;    if (n < 1 || m < 1 || n < m) return 0;   if (n == m) return 1;   if (m > n - m) m = n - m;   for (int i = 2; i <= m; i++) r = r * --n / i;    return r; } 谢谢大佬，大佬天天开心

user: user-0
content: 引用 1 楼 早打大打打核战争的回复:double C(int n, int m) {   double r = n;    if (n < 1 || m < 1 || n < m) return 0;   if (n == m) return 1;   if (m > n - m) m = n - m;   for (int i = 2; i <= m; i++) r = r * --n / i;    return r; } 大佬，你给的参考我会输入进去查看答案，没问题之后给你结贴

user: user-1
content: double C(int n, int m) {   double r = n;    if (n < 1 || m < 1 || n < m) return 0;   if (n == m) return 1;   if (m > n - m) m = n - m;   for (int i = 2; i <= m; i++) r = r * --n / i;    return r; }
user-0 提问: 写程序

回复:
user: user-0
content: 引用 3 楼 Philomath丶的回复:题主以后是不想写程序了吗？ 是不知道怎么写啊，不是不想写，写错了，自己也知道哪错了，刚学

user: user-1
content: 引用 2 楼 yangcxyy 的回复:[quote=引用 1 楼 user-3的回复:]自己搜。。。。 去哪搜，怎么才能搜得到？[/quote] 使用关键字呢，百度，google等等都可以的～

user: user-2
content: 题主以后是不想写程序了吗？

user: user-0
content: 引用 1 楼 user-3的回复:自己搜。。。。 去哪搜，怎么才能搜得到？

user: user-3
content: 自己搜。。。。
user-0 提问: 求助，Makefile小白，能帮助写一个Makefile文件吗

回复:
user: user-0
content: 引用 1 楼 这是一个正经昵称 的回复:CC       = gcc TARGET   = test SOURCES  = a.c b.c main.c OBJECTS  = a.o b.o main.o   all:$(TARGET)         chmod 777 $(TARGET)         ./$(TARGET) &  $(TARGET):$(OBJECTS)         $(CC) $(SOURCES) -o $(TARGET)  clean:         rm *.o $(TARGET) 这样吗？我不是很确定  谢谢了，已经搞定了

user: user-1
content: CC       = gcc TARGET   = test SOURCES  = a.c b.c main.c OBJECTS  = a.o b.o main.o   all:$(TARGET)         chmod 777 $(TARGET)         ./$(TARGET) &  $(TARGET):$(OBJECTS)         $(CC) $(SOURCES) -o $(TARGET)  clean:         rm *.o $(TARGET) 这样吗？我不是很确定
user-0 提问: 求100~200的全部素数

回复:
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: i >= k+1；其实也可以写成i > k;都是可以的。因为如果是i > k；说明i的循环次数是遇到i <= k不满足退出的，而不是break出来的。  所以可以认为是素数～

user: user-3
content: 如果i<k说明它是break出来的就是说找到了他的因数， i>=k说明他是循环到头出来的即没有找到他的因数
user-0 提问: 大哥帮我看一下为啥只能输出407

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

user: user-2
content: #include"stdio.h" int main() {     int a,b,c,d;      for(a=100; a<1000 ;a++)     {         b = a % 10;    //个位         c = a / 10 % 10;   //十位         d = a / 100 % 10;    //百位         /*         c = a/100;         //b=(a-c*100)/10;         b = (a/10) % 10;         d = a%100;         //printf("a = %d, b = %d, c = %d\n", a, b, c);         */         if(a==b*b*b+c*c*c+d*d*d)             printf("%d\t",a);     }     putchar(10);      return 0; } 供参考～

user: user-3
content: d=a%100 这是个位数吗？应该模10吧？
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=0放到第二层循环外面，即第二层循环前，第一层循环里就可以了。  或者把第二层循环里的if里加一个break，即跳出第二层循环。

user: user-3
content: 相让别人替你改原来的程序的话最好贴出来码 #include <stdio.h> #include <math.h> bool isPrime(int n) { 	if (n < 2) return 0; 	for (int i = 2; i <= (int)sqrt(n); ++i) 		if (n % i == 0) 			return false; 	return true; } int main() { 	int count = 0; 	for (int i = 2; i < 100; ++i) { 		if (isPrime(i)) { 			printf("%d ", i); 			count++; 			if (count == 5) { 				printf("\n"); 				count = 0; 			} 		} 	} 	return 0; }

user: user-4
content: 引用 3 楼 user-4 的回复:[quote=引用 2 楼 qq_45744248 的回复:] [quote=引用 1 楼 qq_45798109的回复:]运行的出来，你也不说你想干嘛，谁知道有什么问题 输出100以内的所有素数，满五个素数换行[/quote] 所以问题是啥呢？其次将以前的帖子结一下。CSDN论坛新手指南 [/quote] 看到问题了。。。。我眼瞎。

user: user-4
content: 引用 2 楼 qq_45744248 的回复:[quote=引用 1 楼 qq_45798109的回复:]运行的出来，你也不说你想干嘛，谁知道有什么问题 输出100以内的所有素数，满五个素数换行[/quote] 所以问题是啥呢？其次将以前的帖子结一下。CSDN论坛新手指南

user: user-0
content: 引用 1 楼 qq_45798109的回复:运行的出来，你也不说你想干嘛，谁知道有什么问题 输出100以内的所有素数，满五个素数换行

user: user-3
content: 运行的出来，你也不说你想干嘛，谁知道有什么问题
user-0 提问: 我想写用独立按键，控制液晶12864显示汉字和数字。一个键，显示一行

回复:
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-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: while(x>e) {sum+=...}
user-0 提问: status未定义标识符

回复:
user: user-1
content: typedef int Startus;//获得元素的操作 对比一下，看这个拼写是否和status有差别。可以再细心一些～

user: user-2
content: 既然是没定义标识符 那你定义一下啊  为什么这样的问题需要问? 肚子饿 需要问怎么处理吗? 你吃东西啊

user: user-3
content: typedef int Startus;//获得元素的操作 注意拼写错误

user: user-4
content: 拼写错误 Status  ，是状态的意思 Startus  这儿定义错了

user: user-5
content: #include<stdio.h> #define OK 1 #define ERROR 0 #define TURN 1 #define  FALSE 0 #define MAXSIZE 20  typedef int ElemType; typedef struct //线性表顺序存储空间 { 	ElemType data[MAXSIZE]; 	int length;  }SqList; typedef int Startus;//获得元素的操作 Startus GetElem(SqList L, int i, ElemType *e) { 	if (L.length == 0 || i<1 || i>L.length) 		return ERROR; 	*e = L.data[i - 1]; 	return OK; } /*初始条件：顺序表线性表存在，1<=i<=ListLength(L),*/ /*操作结果：在L中第i个位置之前插入一个新的数据元素e，L的长度加一*/ Status ListInsert(SqList *L, int i, ElemType e) { 	int k; 	if (L->length == MAXSIZE) 		return  ERROR; 	if (i<1 || i>L->length + 1) 		return ERROR;  	if (i <= L->length) 	{ 		for (k = L->length - 1; k >= 1; k--) 			L->data[k + 1] = L->data[k];  	} 	L->data[i - 1] = e; 	L->length++; 	return OK; } Status未定义标识符怎么处理

user: user-1
content: 贴代码吧 你看一下status是不是typedef或define了？如果没有确实是未定义的～

user: user-6
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: 直接贴代码吧  最后的一个程序，ptr指向了L, 在Makenode里为什么还要malloc呢? 要么就不要指向L，直接接收Makenode里申请空间即可。
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: undefined reference to “sprt“ 找不到sprt这个名字

user: user-3
content: sqrt
user-0 提问: 萌新求助 ，大佬们帮我看看这个怎么写

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

user: user-2
content: for(p=0,j=1;j<n;j++)     if(a[p]>a[j]) p=j print p

user: user-3
content: 去搜索冒泡排序，很简单

user: user-2
content: 用p记录最小值，循环一遍后，a[p]最小。

user: user-0
content: 引用 2 楼 proorck2019的回复:for(p=0,j=1;j<n;j++)     if(a[p]>a[j]) p=j print p 能详细一点吗能详细一点吗。。。。我好菜的
user-0 提问: 最古老的树

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

user: user-2
content: 这题考的不是编程，是语文和数学
user-0 提问: PAT (乙级)1013 数素数 遇到问题，M N之间过大时会运行超时

回复:
user: user-1
content: #include<stdio.h> #include <math.h> #include"malloc.h"   int isprime(int num) { 	int i, rt;  	rt = (int)sqrt(num);  	for (i = 2; i < rt; i++) 		if (num % i == 0) 			return 0; 	return 1; }  int main() { 	int m, n; 	int cnt = 0, tmp, i;  	scanf("%d %d", &m, &n);  	if (m > n) { 		tmp = m; 		m = n; 		n = tmp; 	}  	for (i = m; i <= n; i++) { 		if (isprime(i)) { 			printf("%d\t", i); 			cnt++; 		if (cnt % 10 == 0) 			putchar(10); 		} 	} 	  #if 0 	int i=0,m,n; 	int k=2,flag=0; 	int q,*a; 	scanf("%d %d",&m,&n); 	a = (int*)malloc(n*sizeof(int)); 	while(i!=n+1){ 		flag=1; 		for(q=2;q<k-1;q++){ 			if(k%q==0) 				flag=0; 		}  		if(flag==1){ 			a[i]=k; 			i++; 		} 		k++; 	} 	k=0; 	for(i=m-1;i<n;i++){ 		if(a[i]<=0 ){ 			continue; 		} 		printf("%d",a[i]); 		k++; 		if(k%10==0){  			printf("\n"); 			continue; 		} 		if(i!=n-1) 			printf(" "); 	} #endif 	return 0; }  供参考～ 不需要申请空间吧

user: user-2
content: 优化的话你可以先把10000以内的素数先求出来，方法就用 int a[10010]={0}; a[0]=a[1]=1; for(int i=2;i<=10000;i++) {     if(a[i]==0){         for(int j=2;j*i<=10000;j++) a[i*j]=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: #include <stdio.h> int main(void) {     int n, i;     int count = 0;     int digit[10];      scanf("%d", &n);     while (n) {         digit[count++] = n % 10;         //++count;         //printf("%d", n % 10);         n /= 10;     }     printf("%d\n", count);     for (i = count-1; i >= 0; i--)         printf("%d ", digit[i]);      putchar(10);     for (i = 0; i < count; i++)         printf("%d ", digit[i]);     putchar(10);     return 0; } 供参考～

user: user-3
content: itoa   atoi 这两个函数，百度一下。

user: user-3
content: int转字符串的函数叫什么名字来着？

user: user-0
content: 就是，怎么把那几问合在一起？？？

user: user-4
content: 引用 5 楼 weixin_45857580 的回复:嗯，学了，学到了循环 CSDN论坛新手指南  #include <stdio.h> int main(void) {     int n;     scanf("%d", &n);     int count = 0;     while (n > 0) {         ++count;         n /= 10;     }     printf("%d\n", count);     return 0; }

user: user-0
content: 嗯，学了，学到了循环

user: user-4
content: 循环学了没？

user: user-0
content: 我还不会做数组

user: user-0
content: 不用数组的话可以怎么做呢？

user: user-5
content: 定义字符数组，存入数组，你可为所欲为

user: user-6
content: ```c #include <stdio.h>  void how_many_digits(int number); void output_each_didhts(int number); void reversed_order(int number);  int main() { 	int num; 	printf("Please input your number: \n"); 	scanf("%d",&num);  	how_many_digits(num);  	printf("\nOutput each dight: \n"); 	output_each_didhts(num);  	printf("\n\nOut put the reversed order: \n"); 	reversed_order(num);  	return 0; }  void how_many_digits(int number) //求一个整数的位数 { 	int count=0; 	while(number>=1) 	{ 		number/=10; 		count++; 	} 	printf("%d\n",count);; }   void output_each_didhts(int number) //利用递归求这个数字的每一个数字（正序输出） { 	int r; 	r=number%10; 	if(number >= 10) 		output_each_didhts(number/10); 	printf("%d ",r); }   void reversed_order(int number) //求一个数每个数字逆序的输出 { 	int temp; 	while(number > 0) 	{ 		temp = number % 10; 		printf("%d ",temp); 		number/=10; 	} } ```
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: 这是小学算术吧。 50÷(4×2)=6...2 50÷4=12...2
user-0 提问: C语言初学者if else比大小

回复:
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: 引用 2 楼 自信男孩的回复:scanf("%c%c",&a,&b); 根据你的提示语，此处应该去掉逗号 好的  我if else 还不怎么样 感谢

user: user-0
content: 好的  我if else 还不怎么样 感谢

user: user-2
content: scanf有可能失败，当输入格式不对时 判断它的返回值，并要求重新输入。

user: user-3
content: scanf("%c%c",&a,&b); 根据你的提示语，此处应该去掉逗号

user: user-4
content: 提示里面说是用空格分隔，下面代码却是个逗号，咋整？
user-0 提问: 求助(大佬帮忙看看我哪错了，谢谢)

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

user: user-2
content: 调试的方法： ⑴设断点、单步调试 ⑵添加print显示变量值 ⑶仔细翻译错误信息（英文的）

user: user-3
content: 那就是逻辑问题了，需要时间慢慢调试的

user: user-0
content: 引用 楼主 qq_45692024的回复: 我不会发图片，我给你描述一下吧 2 100 1 100.00 50.00 100 2 0.00 0.00

user: user-3
content: 引用 2 楼 qq_45692024的回复:[quote=引用 1 楼 user-3的回复:]!EOF 改成 !=EOF 没用啊，大佬[/quote] 这个地方毫无疑问是错的，怎么说没用呢？说明你别的地方还有问题，你应该把错误发上来

user: user-0
content: 引用 1 楼 user-3的回复:!EOF 改成 !=EOF 没用啊，大佬

user: user-3
content: !EOF 改成 !=EOF
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: 把你以前的帖子结了吧。CSDN论坛新手指南

user: user-3
content: 按照显示应该是45,46行有问题，咱也没学过线代，咱啥也不知道，你自己找找吧。

user: user-0
content: 引用 3 楼 qq_45798109的回复:你先说说你这个程序是要干嘛的吧 我这个程序是求数学的迭代解的

user: user-3
content: 你先说说你这个程序是要干嘛的吧

user: user-0
content: 引用 1 楼 qq_45798109的回复:自己翻译一下啊 第一：等号左边必须是左值 第二：用下表的话他需要是一个数组或者指针 我的第一个就是对数组进行赋值，第二个就是输出数组，实在看不出来究竟是哪里出的错

user: user-3
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: #include<stdio.h> #include <math.h>   int isprime(int num) { 	int i, rt;  	rt = (int)sqrt(num);  	for (i = 2; i < rt; i++) 		if (num % i == 0) 			return 0; 	return 1; }  int main() { 	int m, n; 	int cnt = 0, tmp, i;  	scanf("%d %d", &m, &n);  	if (m > n) { 		tmp = m; 		m = n; 		n = tmp; 	}  	for (i = m; i <= n; i++) { 		if (isprime(i)) { 			printf("%d\t", i); 			cnt++; 		if (cnt % 10 == 0) 			putchar(10); 		} 	}  	return 0; }   在这个基础上改吧

user: user-3
content: 本质上就是怎么找素数

user: user-4
content: 因为素数越大越稀疏，20亿已经接近int的最大值（32位），所以，应该用unsigned int。或者是64位机用int也行。

user: user-5
content: 搞个while循环，循环中让m++，搞个变量记录找到的素数的数目，到5个的时候退出，求和退出来再求或者直接找到就加进去都可以

user: user-0
content: 哪位大神帮帮刚刚学C语言的小学弟啊
user-0 提问: 为什么（手机上）是死循环？（题目是金字塔问题）

回复:
user: user-1
content: while(l<=2*(9-l))         {             printf(" ");             i++;         } 这个循环是死循环，看一下你的逻辑，这个地方是不是改成i < 2 * (9-l)呢？

user: user-2
content: 引用 13 楼 qq_45814010 的回复:[quote=引用 12 楼 wowpH的回复:]解决了就结贴。CSDN论坛新手指南 里面写了，手机上不能结贴。[/quote] 等你有电脑的时候再回来结贴吧。我会看看你什么时候有点电脑。

user: user-0
content: 引用 12 楼 wowpH的回复:解决了就结贴。CSDN论坛新手指南 里面写了，手机上不能结贴。

user: user-2
content: 解决了就结贴。CSDN论坛新手指南

user: user-3
content: #include <stdio.h> #define SPACE ' ' int main() { 	int i, j, n=1; 	for(i=0;i<=8;++i) 	{ 		for(j=1;j<9-i;++j) 			printf("%c ",SPACE);  		for(j=9-i, n=1;j<9;++j) 		{ 			printf("%d ",n); 			n++; 		}  		for(j=9;j<=9+i;++j) 		{ 			printf("%d ",n); 			n--; 		}  		for(j=9+i+1;j<19;++j) 			printf("%c ",SPACE);  		printf("\n"); 	} 	return 0; }

user: user-0
content: 引用 9 楼 自信男孩的回复:while(l<=2*(9-l))         {             printf(" ");             i++;         } 这个循环是死循环，看一下你的逻辑，这个地方是不是改成i < 2 * (9-l)呢？ 哦。。。果然'字母容易出错就会误导我。

user: user-4
content: 不要怕多敲几个字母，在公司你的代码要挨批的

user: user-0
content: 引用 6 楼 user-4的回复:不要用这种似是而非的名字line和count ok。以后会记住的。c和l

user: user-4
content: 不要用这种似是而非的名字line和count

user: user-0
content: 引用 3 楼 user-4的回复:为什么要用大小写的两个i变量名呢？没有别的字母了吗？这种代码风格有走歪了的倾向 i是计数，l表示行数

user: user-0
content: 一个是L（l）,一个是I（i）,真的不是故意的，都是书面体惹的祸。。

user: user-4
content: 为什么要用大小写的两个i变量名呢？没有别的字母了吗？这种代码风格有走歪了的倾向

user: user-0
content: 第四个位置的i*2，我知道错了，改为l*2，但还是不能运行

user: user-0
content: 每行前面空2*（9-l）格，再开始输入1。然后17格之前偶位按+1递增输出，奇位按空格输出。后面反过来，知道第15＋2*l格。在后面输出空格，如果是第33格输出空格切换行，否则只输空格
user-0 提问: Format specifies type 'char *' but the argument has type 'char (*)[12]'如何解决

回复:
user: user-1
content: 引用 1 楼 user-3 的回复:不要用&符号，order本来就是数组首地址

user: user-2
content: 参考：https://baike.baidu.com/item/scanf/10773316?fr=aladdin#5_1  解决了就结贴，不要点赞。  CSDN论坛新手指南

user: user-3
content: 不要用&符号，order本来就是数组首地址
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语言很难？那你觉得哪种语言要容易一些呢？

user: user-3
content: 贪心算法。 我们取第一棵树上取1根香蕉，我们可能还会获得第二棵树上的2根香蕉，但是我们会损失第三棵树上的4个香蕉，因为第二棵树上没有了2根香蕉； 代价1 + 2 - 4 = -1 我们从第二棵树上取1根香蕉，我们可能还会从第三棵树上取2棵香蕉，同时我们会在第一棵树上少取1/2棵香蕉；代价，1 + 2 - 0.5 = 2.5  所以，贪心并且聪明的人应该先取第2棵树和第3棵树的香蕉，再考虑取第一棵树和第二棵树的香蕉。  或者，可以这样思考。无论如何，我们都会从第二课树上取香蕉，假设取单位1， 则如果选择第一个方案，可以再从第一棵树上取0.5个香蕉。 但是如果选择方案2，可以再从第三棵树上取2个香蕉。
user-0 提问: 关于优化排序方法、降低程序运行时间的问题

回复:
user: user-0
content: 引用 2 楼 Philomath丶的回复:排序上可以考虑使用一下C语言和C++中自带的快速排序。 即C语言中的qsort()和C++中的sort()，题主可以百度一下具体用法。 而且，虽然我没有仔细看你的代码，但是我见过的最慢的冒泡排序也就O（n^2）的复杂度而已。 我可以给你贴段示例代码，但是你也不一定要这样写 你也可以给每一类再定义一个类别编号，然后写排序函数cmp的时候多写一个就行了， 不用多开4个数组。  #include <iostream> #include <algorithm> #include <vector> using namespace std; struct node { 	int num, de, cai; }; int cmp(struct node a, struct node b) { 	if ((a.de + a.cai) != (b.de + b.cai)) 		return (a.de + a.cai) > (b.de + b.cai); 	else if (a.de != b.de) 		return a.de > b.de; 	else 		return a.num < b.num; } int main() { 	int n, low, high; 	scanf("%d %d %d", &n, &low, &high); 	vector<node> v[4]; 	node temp; 	int total = n; 	for (int i = 0; i < n; i++) { 		scanf("%d %d %d", &temp.num, &temp.de, &temp.cai); 		if (temp.de < low || temp.cai < low) 			total--; 		else if (temp.de >= high && temp.cai >= high) 			v[0].push_back(temp); 		else if (temp.de >= high && temp.cai < high) 			v[1].push_back(temp); 		else if (temp.de < high && temp.cai < high && temp.de >= temp.cai) 			v[2].push_back(temp); 		else 			v[3].push_back(temp); 	} 	printf("%d\n", total); 	for (int i = 0; i < 4; i++) { 		// 自带排序 		sort(v[i].begin(), v[i].end(), cmp); 		for (int j = 0; j < v[i].size(); j++) 			printf("%d %d %d\n", v[i][j].num, v[i][j].de, v[i][j].cai); 	} 	return 0; }  谢谢您的解答 因为我在排序的外边又套了一个for循环，所以复杂度才会是n3。 qsort我现在还不会，我之前看那个cmp的函数感觉有些吃力

user: user-0
content: 引用 1 楼 黑白判官的回复:C语言的话用qsort C++的话可以用sort 都是自带的，到时候把条件写一下就好了 谢谢您的解答～qsort我还得再学习一下哈哈哈

user: user-1
content: 排序上可以考虑使用一下C语言和C++中自带的快速排序。 即C语言中的qsort()和C++中的sort()，题主可以百度一下具体用法。 而且，虽然我没有仔细看你的代码，但是我见过的最慢的冒泡排序也就O（n^2）的复杂度而已。 我可以给你贴段示例代码，但是你也不一定要这样写 你也可以给每一类再定义一个类别编号，然后写排序函数cmp的时候多写一个就行了， 不用多开4个数组。  #include <iostream> #include <algorithm> #include <vector> using namespace std; struct node { 	int num, de, cai; }; int cmp(struct node a, struct node b) { 	if ((a.de + a.cai) != (b.de + b.cai)) 		return (a.de + a.cai) > (b.de + b.cai); 	else if (a.de != b.de) 		return a.de > b.de; 	else 		return a.num < b.num; } int main() { 	int n, low, high; 	scanf("%d %d %d", &n, &low, &high); 	vector<node> v[4]; 	node temp; 	int total = n; 	for (int i = 0; i < n; i++) { 		scanf("%d %d %d", &temp.num, &temp.de, &temp.cai); 		if (temp.de < low || temp.cai < low) 			total--; 		else if (temp.de >= high && temp.cai >= high) 			v[0].push_back(temp); 		else if (temp.de >= high && temp.cai < high) 			v[1].push_back(temp); 		else if (temp.de < high && temp.cai < high && temp.de >= temp.cai) 			v[2].push_back(temp); 		else 			v[3].push_back(temp); 	} 	printf("%d\n", total); 	for (int i = 0; i < 4; i++) { 		// 自带排序 		sort(v[i].begin(), v[i].end(), cmp); 		for (int j = 0; j < v[i].size(); j++) 			printf("%d %d %d\n", v[i][j].num, v[i][j].de, v[i][j].cai); 	} 	return 0; }

user: user-2
content: C语言的话用qsort C++的话可以用sort 都是自带的，到时候把条件写一下就好了
user-0 提问: 我这个程序为啥会奔溃

回复:
user: user-1
content: 也没说在哪里崩溃。也不知道 qsort(folder, sizeof(char*), folderSize, cmp);这个是干嘛，，，，，，，提问就要提供稍详细点信息，要不然谁看
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: 整数和字符串的转换函数是 itoa   atoi 你自己搜索一下
user-0 提问: 请教大家一道C语言编程。 （计算机大一萌新。我很笨希望各位前辈多多指教）

回复:
user: user-1
content: 不要贴图片，请发代码。CSDN论坛新手指南

user: user-1
content: 输入示例和输出示例都不知道你写的什么东西。 题目说的输入2行，你只有1行。 题目说n个数不重复，你给的3组数据中有2组里面有重复的。 题目说交换，并没有减少个数，你的第2组数据怎么少了1个？

user: user-0
content: 我知道可能错误很严重 麻烦请前辈指出并修改 感谢各位前辈
user-0 提问: C指针-数组指针-指针数组

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

user: user-2
content: 指针作为参数时是比较有效和节省空间的

user: user-3
content: 引用 楼主 网字 的回复: 	double rates[5] = { 22.22,33.33,44.44,55.55,66.66 };//数组 	double * pd = rates;//指针 	double(*pds)[5] = &rates;//数组指针 	double *pdd[5] = { &rates[0], &rates[1], &rates[2], &rates[3], &rates[4] };//指针数组 	rates[0] = 10.00; 	pd[1] = 20.00; 	pds[2] = 30.00;//not allowed.         *pds[2] = 30.00;// 可编译通过，但不生效 	*pdd[3] = 40.00;  问题：大神，数组指针的用武之地在哪里？ 数组指针可以用来使用二维数组，就好比用普通指针操作一维数组类似
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: 当i=0时，执行 printf("%d", ++i); 此时，i的值变为1，之后在if循环中还要执行 for(i=0; i<=3; i++)  此时i的值变为2，所以再次执行时直接执行default语句了

user: user-2
content: 第一次循环，case 0 的++i 执行后 i=1，然后for(;;i++)里面的 i++ 也要执行，i=2

user: user-3
content: for里边还有一个i++
user-0 提问: a=3,5这个表达式是什么意思?

回复:
user: user-0
content: a=3,5  输出3

user: user-0
content: a=(3,5)  输出5

user: user-1
content: 逗号表达式 最终a=5

user: user-2
content: 逗号运算符（comma operator）含有两个运算对象，按照从左向右的顺序依次求值。例如：  i=20, j=2*i  首先对逗号左侧的表达式求值，然后将求值结果丢弃掉，之后对逗号右侧的表达式求值。而逗号运算符真正的结果是右侧表达式的值。以上表达式的值是40，因为j=2*i的值是40。 以上节选自《C++之逗号运算符》 希望能够帮到你！

user: user-3
content: 逗号表达式，1楼和楼主都不对！ a=3,5  它整体是一个逗号表达式，由逗号分成两个部分：a=3和5，前者没有什么问题，就是把幅值给a，5本身也是一个表达式，逗号表达式的整体值是5。前面好象说了一大堆废话，其实还得继续说下去，因为对于他们的使用不同得讨论一下： 第一种： a=3,5; 这种情况逗号表达式整体的值没有使用，所以逗号及5是没有屁用的，就相当于 a=3;  第二种： b=(a=3,5); 这个时候a是3而b是5！

user: user-0
content: #include<stdio.h> int main() {   int i,a;     i=(a=2*3,a*5),a+6;     printf("%d",a);      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-0
content: 错在b这个变量身上，但我感觉没有错，运行结果什么都没有，就只有一个按任意键继续

user: user-0
content: 我知道错误了，b变量一直在变
user-0 提问: PTA中关于阶乘序列的两个语法

回复:
user: user-0
content: 引用 4 楼 proorck2019的回复:编个函数求阶乘，再从for里边调用，结构上能好一点。 是的大佬我在用两种方法试

user: user-1
content: 编个函数求阶乘，再从for里边调用，结构上能好一点。

user: user-0
content: 引用 1 楼 qq_45798109的回复:第一个问题：这是一个循环，经过一次循环之后item已经不是1了 第二个问题：任何数乘以1都是他本身，所以有没有1可以说没有影响 感谢大佬祝你开心^_^

user: user-0
content: 感谢大佬祝你开心^_^

user: user-2
content: 第一个问题：这是一个循环，经过一次循环之后item已经不是1了 第二个问题：任何数乘以1都是他本身，所以有没有1可以说没有影响

user: user-0
content: 引用 6 楼 user-3 的回复:有用函数的话，程序变简洁了，但是效率却低了，如果有时间限制的话，就不要用函数了嗦嘎，多谢大佬提醒！

user: user-3
content: 有用函数的话，程序变简洁了，但是效率却低了，如果有时间限制的话，就不要用函数了
user-0 提问: 求解，大佬们

回复:
user: user-1
content: 先除以十，很巧妙。 或者用好几个if-else。

user: user-2
content: 自己改一下  #include <stdio.h> int main() { 	int n; 	scanf("%d", &n); 	if (n < 0 || n > 100) 		printf("输入有误！\n"); 	else { 		n /= 10; 		switch (n) { 		case 10: 		case 9: 			printf("优秀"); 			break; 		case 8: 			printf("良好"); 			break; 		case 7: 			printf("中等"); 			break; 		case 6: 			printf("及格"); 			break; 		default: 			printf("不及格"); 			break; 		} 	} 	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-0
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: 这是错误的图片

user: user-2
content: 引用 6 楼 jiht594 的回复:467和496行错了, 我这已经改好了. 你看看 哦 说错了, 你先让我看你的, 我就让你看我的

user: user-2
content: 467和496行错了, 我这已经改好了. 你看看

user: user-3
content: 请截图出现错误的位置。。。。

user: user-4
content: 不是有行号吗？你就不能将代码调整到那一行？

user: user-5
content: 大概是前面少了或者错了个什么符号。 你要注意全角和半角符号。

user: user-4
content: 请截图。。。

user: user-0
content: 引用 2 楼 wowpH的回复:不是有行号吗？你就不能将代码调整到那一行？ 这行就是一个｛｝，他错误就显示在这行
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: 这两种写法基本上没啥区别。另外，不建议第一种写法，建议这样：  while ((ch = getchar()) != '@')

user: user-2
content: 引用 3 楼 proorck2019 的回复:while((ch=getchar())!=...) 这样似乎也行。 不是似乎也行，而是就是可以的。建议这种写法～

user: user-3
content: 引用 6 楼 你坚果腿的回复:[quote=引用 2 楼 wowpH的回复:]不建议方法一。 为什么呀，这也是我在一个地方看到的，我平时都是用第二种去写[/quote] 第5行那样不便于阅读。

user: user-0
content: 引用 2 楼 wowpH的回复:不建议方法一。 为什么呀，这也是我在一个地方看到的，我平时都是用第二种去写

user: user-0
content: 引用 1 楼 user-6的回复:都是while循环，只是把结束循环的位置改变了 是的呢是的呢，不过我刚开始写的时候，没有想到另一个位置，所以就记下来了

user: user-0
content: 引用 9 楼 wowpH的回复:[quote=引用 8 楼 你坚果腿 的回复:] SO嘎，谢谢啦，那以后还是多用第二种方法好啦 CSDN论坛新手指南 [/quote] 原来写个帖子那么多规矩呀，emmm，其实我只是写了个心得而已，见笑啦

user: user-3
content: 引用 8 楼 你坚果腿 的回复:SO嘎，谢谢啦，那以后还是多用第二种方法好啦 CSDN论坛新手指南

user: user-0
content: 引用 7 楼 wowpH的回复:[quote=引用 6 楼 你坚果腿的回复:][quote=引用 2 楼 wowpH的回复:]不建议方法一。 为什么呀，这也是我在一个地方看到的，我平时都是用第二种去写[/quote] 第5行那样不便于阅读。[/quote] SO嘎，谢谢啦，那以后还是多用第二种方法好啦

user: user-4
content: 这样有什么问题吗？？

user: user-5
content: while((ch=getchar())!=...) 这样似乎也行。

user: user-3
content: 不建议方法一。

user: user-6
content: 都是while循环，只是把结束循环的位置改变了
user-0 提问: c语言二维数组去重复值  为什么不对

回复:
user: user-0
content: 引用 10 楼 proorck2019的回复:if(*(a+p+k)==*(a+i+j)){ 这行不能是a[p][k]吗？ 另外，二维数组应该是int**a。 传过来的实参是 a[0]    形参是int *a

user: user-0
content: 引用 9 楼 proorck2019的回复:四层循环，把我给吓住了。 工作中，可别编这样的代码！ 好的老哥，我也知道不能写这么多循环

user: user-0
content: 引用 8 楼 wowpH的回复:我在想是我语文不好，还是你语文不好。  数组去除重复值示例： 原始数据：1 2 3 1 2 4 5 去重后的：1 2 3 4 5 这是你的标题想要的效果。  输出重复数据示例： 原始数据：1 2 3 1 2 4 5 输出重复数据：1 2 这是你代码体现出来的效果（虽然你写错了，但是表达的是这个意思）  我没看懂你想要哪种？ 老哥是第一种。但是我想的是从a[0][0]作为基准，一次比较后面的元素是否和a[0][0]相同，然后第二次以a[0][1]作为基准，后面同理。但是效果不是这样

user: user-1
content: if(*(a+p+k)==*(a+i+j)){ 这行不能是a[p][k]吗？ 另外，二维数组应该是int**a。

user: user-1
content: 四层循环，把我给吓住了。 工作中，可别编这样的代码！

user: user-2
content: 我在想是我语文不好，还是你语文不好。  数组去除重复值示例： 原始数据：1 2 3 1 2 4 5 去重后的：1 2 3 4 5 这是你的标题想要的效果。  输出重复数据示例： 原始数据：1 2 3 1 2 4 5 输出重复数据：1 2 这是你代码体现出来的效果（虽然你写错了，但是表达的是这个意思）  我没看懂你想要哪种？

user: user-0
content: 引用 6 楼 wowpH的回复:你这是输出重复的值吧。没看到哪儿“去除”了。 不是每次先选定一个元素，依次遍历看后面有哪个元素和它相同吗。最后打印出来？

user: user-2
content: 你这是输出重复的值吧。没看到哪儿“去除”了。

user: user-0
content: 引用 1 楼 user-3的回复:可否把代码发出来，这样方便查错 去掉一个二维数组里重复值

user: user-0
content: 引用 1 楼 user-3的回复:可否把代码发出来，这样方便查错 int ContainSameElem(int *a,int m,int n){     int i,j,p=0,k=0;     while(p<m){         while(k<n){             for(i=0;i<m;i++){                 for(j=0;j<n;j++){                     if(*(a+p+k)==*(a+i+j)){                         printf("%d",*(a+p+k));                         return 1;                     }                     else{                         return 0;                     }                 }             }             k++;         }         p++;     } }

user: user-0
content: int ContainSameElem(int *a,int m,int n){     int i,j,p=0,k=0;     while(p<m){         while(k<n){             for(i=0;i<m;i++){                 for(j=0;j<n;j++){                     if(*(a+p+k)==*(a+i+j)){                         printf("%d",*(a+p+k));                         return 1;                     }                     else{                         return 0;                     }                 }             }             k++;         }         p++;     } }

user: user-2
content: 这不是人看的。CSDN论坛新手指南

user: user-3
content: 可否把代码发出来，这样方便查错

user: user-2
content: 算了，这个问题我解决不了。。。不要引用我了。

user: user-0
content: 引用 14 楼 wowpH的回复:我有个问题，去掉之后，那个地方该咋办。。。。emmm 不用管，最后不是输出数组而是重复的元素。还有它的下标比如a[0][2]=13  a[2][0]=13   这样输出就行

user: user-2
content: 引用 14 楼 wowpH 的回复:我有个问题，去掉之后，那个地方该咋办。。。。emmm 空出来的地方

user: user-2
content: 我有个问题，去掉之后，那个地方该咋办。。。。emmm
user-0 提问: "输入一个分数，输出最简式",测试不对，不知道哪儿错了，求各位大神帮帮我，谢谢！

回复:
user: user-1
content: 应该判断一下a，b的大小才行

user: user-2
content: 测试不对，就将那个不对的结果写出来。以更快的找到问题。

user: user-3
content: 还有你scanf函数用错了

user: user-3
content: 我认为还可以优化一下，就是i小于等于min(a,b)

user: user-4
content: 你写的这个如果ab恰好是整倍数关系的话你这个输出的不是整数，而是分母为一的分数，除了这个没有别的问题了吧
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: StackNode,*LinkStackPt;  前者是结构体类型，后者是结构体指针类型

user: user-3
content: 引用 6 楼 宵暗的露米娅 的回复：[quote=引用 5 楼 dominis 的回复：][quote=引用 4 楼 宵暗的露米娅 的回复:] (*L)=(LinkStackPtr)malloc(sizeof(StackNode)); 分配内存的时候就不用*L,直接L就行把  改了以后，后面什么就没了[/quote]L不加*，你括号里的LinkStackPtr后加个*试一试[/quote]哦，没看到结构体那里已经加了*号...

user: user-3
content: 引用 5 楼 dominis 的回复：[quote=引用 4 楼 宵暗的露米娅 的回复:] (*L)=(LinkStackPtr)malloc(sizeof(StackNode)); 分配内存的时候就不用*L,直接L就行把  改了以后，后面什么就没了[/quote]L不加*，你括号里的LinkStackPtr后加个*试一试

user: user-4
content: void InitStack(LinkStackPtr *L) 这一句似乎不用加* 你在typedef时已经加上了

user: user-0
content: 引用 4 楼 宵暗的露米娅 的回复:(*L)=(LinkStackPtr)malloc(sizeof(StackNode)); 分配内存的时候就不用*L,直接L就行把  改了以后，后面什么就没了

user: user-3
content: (*L)=(LinkStackPtr)malloc(sizeof(StackNode)); 分配内存的时候就不用*L,直接L就行把

user: user-0
content: 引用 1 楼 proorck2019 的回复:void InitStack(LinkStackPtr *L) 这一句似乎不用加* 你在typedef时已经加上了  改了以后 就什么都输不出来了..........
user-0 提问: 关于while循环无法通过编译的问题

回复:
user: user-1
content: undefined reference to `WinMain' 期待有一天，编译器变得聪明了，直接告诉我们， “你main写错了”

user: user-0
content: 引用 4 楼 與蘤舊縐的回复:[quote=引用 2 楼 weixin_45855436 的回复:] [quote=引用 1 楼 與蘤舊縐的回复:]  [Error] ld returned 1 exit status  这玩意似乎不是你的程序问题，重启电脑试试，如果不行重建项目或者文件后再重启再试试 谢谢您的回答... 但是我重启了、新建了个文件好像没啥用啊，还是无法通过编译[/quote]  是哦你的main写错了 不过我自己有过这样的经历，就算一点没错，也是这种错误，你把main改过来再试试，没准能行[/quote] 嗯嗯，长知识了，多谢～

user: user-0
content: 引用 3 楼 qq_45798109的回复:你main写错了....不是mian md！woc！谢谢您了！

user: user-2
content: 引用 2 楼 weixin_45855436 的回复:[quote=引用 1 楼 與蘤舊縐的回复:]  [Error] ld returned 1 exit status  这玩意似乎不是你的程序问题，重启电脑试试，如果不行重建项目或者文件后再重启再试试 谢谢您的回答... 但是我重启了、新建了个文件好像没啥用啊，还是无法通过编译[/quote]  是哦你的main写错了 不过我自己有过这样的经历，就算一点没错，也是这种错误，你把main改过来再试试，没准能行

user: user-3
content: 你main写错了....不是mian

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:  [Error] ld returned 1 exit status  这玩意似乎不是你的程序问题，重启电脑试试，如果不行重建项目或者文件后再重启再试试 谢谢您的回答... 但是我重启了、新建了个文件好像没啥用啊，还是无法通过编译

user: user-2
content: [Error] ld returned 1 exit status  这玩意似乎不是你的程序问题，重启电脑试试，如果不行重建项目或者文件后再重启再试试
user-0 提问: PTA中关于完数题的两个迷惑小问题

回复:
user: user-1
content: 先编写一个函数，判断一个数是不是，再循环调用这个函数从m到n， 这样写不容易出错。

user: user-0
content: 引用 10 楼 qq_45798109的回复:就是说：就i=6来说第一个for循环结束j是等于5的不是3 大佬昨晚崩溃了所以没回哈哈哈哈，大佬您太强了，那么祝你天天开心

user: user-2
content: 就是说：就i=6来说第一个for循环结束j是等于5的不是3

user: user-2
content: 引用 7 楼 乔碧萝大魔王 的回复:[quote=引用 4 楼 qq_45798109的回复:]首先没看懂你第一个问题想表达什么意思 第二个问题你h没有初始化 大佬你太有才了，就是没初始化我补充一下第一个问题      假如 i 等于6，那么在的第一个for循环里面，j 等于1，2，3；那么在第二个for循环里面，因为k小于 j 岂不是k只能取2不能取3了吗；为什么运行结果还是能够取3？[/quote]虽然你那个循环得j=1,2,3但是在for (j = 1; j < i; j++)中j是从1取到5的4,5只是不满足下面if的条件而已j还是在自增的，只不过什么都不执行

user: user-0
content: 引用 3 楼 weixin_45855436的回复:老哥你这是哪一道题目啊 老哥这是找完数那道题，楼下大佬完美解答了哈哈哈，谢谢老哥

user: user-0
content: 引用 4 楼 qq_45798109的回复:首先没看懂你第一个问题想表达什么意思 第二个问题你h没有初始化 大佬你太有才了，就是没初始化我补充一下第一个问题      假如 i 等于6，那么在的第一个for循环里面，j 等于1，2，3；那么在第二个for循环里面，因为k小于 j 岂不是k只能取2不能取3了吗；为什么运行结果还是能够取3？

user: user-0
content: 大佬你太有才了，就是没初始化我补充一下第一个问题      假如 i 等于6，那么在的第一个for循环里面，j 等于1，2，3；那么在第二个for循环里面，因为k小于 j 岂不是k只能取2不能取3了吗；为什么运行结果还是能够取3？

user: user-3
content: 我看老哥的提问，也是饱受PAT折磨的菜鸟有志青年…

user: user-2
content: 首先没看懂你第一个问题想表达什么意思 第二个问题你h没有初始化

user: user-3
content: 老哥你这是哪一道题目啊

user: user-4
content: #include<stdio.h> #include<math.h> bool judge(int i) { 	int j, sum = 1; 	for (j = 2; j <= sqrt(i); j++) { 		if (i % j == 0) 			sum += j + i / j; 	} 	return i == sum; } int main(){ 	int n, m, i, j; 	scanf("%d%d", &m, &n); 	for (i = m; i <= n; i++) { 		if (judge(i)) { 			printf("%d = 1", i); 			for (j = 2; j < i; j++) { 				if (i % j == 0) 					printf(" + %d", j); 			} 			printf("\n"); 		} 	} 	return 0; }

user: user-0
content: 好痛苦又漏字了，第一个问题中因为第二个for循环中k岂不是只能取2不能取3?
user-0 提问: 新手提问，小数点后显示问题

回复:
user: user-1
content: 整数除以整数，结果可能是小数。 楼上正解。

user: user-2
content: 楼主别光点赞啊，解决了就结贴。没解决就追问。。。。。 CSDN论坛新手指南

user: user-3
content: int/int只能得到int,可以做一个类型转换 修改语句： average=sum/(double)n;

user: user-2
content: sum也定义为double型的。