Mxode/CSDN-C_Language-2013_2023 huggingface dataset:
user-0 提问: 一个获取唯一流水号的函数. 对于一个自增的局部静态变量,多个线程访问这个函数需要加锁吗?

回复:
user: user-1
content: 引用 6 楼 baidu_28726667 的回复:每一个线程进去的事情基本就是+1了,意思是这还有可能两个线程同时读取到同一个数值然后++ ？ ++ 至少要分成3个步骤 1. 内存数据 mov到寄存器 2. 寄存器数据 + 1 3. 寄存器数据 mov到内存  第三步完成之前 切换到另一个线程 读取到一样的内存数据 是完全正常的

user: user-2
content: 引用 6 楼 baidu_28726667 的回复:每一个线程进去的事情基本就是+1了,意思是这还有可能两个线程同时读取到同一个数值然后++ ？ 为什么不可能

user: user-0
content: 引用 5 楼 lin5161678 的回复:[quote=引用 3 楼 baidu_28726667 的回复:] [quote=引用 2 楼 自信男孩 的回复:] 需要加的，因为用的是静态变量，每个线程调用该函数，对静态变量操作（写）就会修改其值。如果另一个线程也在调用这个函数， 要读取该静态变量可能读到的值可能是另一个线程写之后的或者写之前的。  修改前和修改后我没所谓的,只要没有线程读出来是一样的就可以了[/quote]不加锁的话 不保证读出来不一样的 有可能得到相同id [/quote]  引用 5 楼 lin5161678 的回复:[quote=引用 3 楼 baidu_28726667 的回复:] [quote=引用 2 楼 自信男孩 的回复:] 需要加的，因为用的是静态变量，每个线程调用该函数，对静态变量操作（写）就会修改其值。如果另一个线程也在调用这个函数， 要读取该静态变量可能读到的值可能是另一个线程写之后的或者写之前的。  修改前和修改后我没所谓的,只要没有线程读出来是一样的就可以了[/quote]不加锁的话 不保证读出来不一样的 有可能得到相同id [/quote]  每一个线程进去的事情基本就是+1了,意思是这还有可能两个线程同时读取到同一个数值然后++ ？

user: user-1
content: 引用 3 楼 baidu_28726667 的回复:[quote=引用 2 楼 自信男孩 的回复:] 需要加的，因为用的是静态变量，每个线程调用该函数，对静态变量操作（写）就会修改其值。如果另一个线程也在调用这个函数， 要读取该静态变量可能读到的值可能是另一个线程写之后的或者写之前的。  修改前和修改后我没所谓的,只要没有线程读出来是一样的就可以了[/quote]不加锁的话 不保证读出来不一样的 有可能得到相同id

user: user-1
content: 可以加锁  但不建议  这种情况 显然 原子操作就足够了

user: user-0
content: 引用 2 楼 自信男孩 的回复:需要加的，因为用的是静态变量，每个线程调用该函数，对静态变量操作（写）就会修改其值。如果另一个线程也在调用这个函数， 要读取该静态变量可能读到的值可能是另一个线程写之后的或者写之前的。  修改前和修改后我没所谓的,只要没有线程读出来是一样的就可以了

user: user-3
content: 理论上是要加的

user: user-4
content: 需要加的，因为用的是静态变量，每个线程调用该函数，对静态变量操作（写）就会修改其值。如果另一个线程也在调用这个函数， 要读取该静态变量可能读到的值可能是另一个线程写之后的或者写之前的。
user-0 提问: 把字符串中所有的a变成b，然后输出。我可以正常输出，但是有乱码是为什么？

回复:
user: user-1
content: 存储字符串的char需要分配空间，C语言字符串的结尾是\0

user: user-2
content: s[i]! ='\0'

user: user-3
content: 引用 3 楼 Italink 的回复:char*是定义了一个制作，而不是字符串（数组），你需要定义空间大小，比如100，改为char s[1000]; char*是定义了一个指针，而不是字符串（数组），你需要定义空间大小，比如100，改为char s[1000];

user: user-3
content: char*是定义了一个制作，而不是字符串（数组），你需要定义空间大小，比如100，改为char s[1000];

user: user-0
content: 引用 1 楼 ggglivw 的回复:你这样玩居然没崩溃。看看基础语法书再说吧. 请问我哪里有错误？

user: user-1
content: 你这样玩居然没崩溃。看看基础语法书再说吧.

user: user-4
content: #include<stdio.h> #include<string.h>  int main() {     char s[128];     int i,len=0;     printf("输入：");     scanf("%s", s);      //len = strlen(s);     printf("输出：");     for(i=0;s[i]!='0';i++)     {         if(s[i]=='a')         {             s[i]='b';         }         printf("%c", s[i]);     }      return 0; } 供参考～
user-0 提问: C语言基础求助QWQ

回复:
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> void main() { 	int n, he = 0; 	for (n = 1; n <= 200; n++) 		if (n % 2 == 0 && n % 9 == 0) { 			he = he + n; 		} 	printf("%d\n", he); 	return; }

user: user-0
content: 引用 1 楼 user-2的回复:scanf("&d%d", &a, &b); 改为 scanf("%d%d", &a, &b); #include <stdio.h> void main() { 	int n,he=0,i; 	for(n=1;n<=200;n++) 		if(n%2==0&&n%9==0); 		i=n;	 		he=he+i; 	printf("%d\n",he); } 大佬大佬这个呢qwq

user: user-2
content: scanf("&d%d", &a, &b); 改为 scanf("%d%d", &a, &b);
user-0 提问: 从键盘输入一个字符，然后再从键盘输入一个字符串，查找该字符是否存在于字符串中。为啥我程序崩溃了？

回复:
user: user-1
content: 应该是if (i == len-1)

user: user-1
content: if (i == len)  两个等号

user: user-0
content: 引用 3 楼 不闻窗外事 的回复:char s1,*s2；改为 char s1, s2[100]; 可当我输入e skelsckde时，输出字符不存在，是不是我代码还有错误？

user: user-1
content: char s1,*s2；改为 char s1, s2[100];

user: user-0
content: 引用 1 楼 不闻窗外事 的回复:因为你的s2没有申请空间，要么定义成数组，要么malloc 请问那怎么修改呢？

user: user-1
content: 因为你的s2没有申请空间，要么定义成数组，要么malloc

user: user-2
content: #include<stdio.h> #include<string.h> int main() {     char s1, s2[128];     int i,len=0;     printf("输入字符和字符串：");     scanf("%c%s",&s1,s2);     len=strlen(s2);     for(i=0;i<len;i++)     {         if(s1==s2[i])         {             printf("字符存在\n");             break;         }     }     if(i==len)         printf("字符不存在\n");      return 0; } 供参考～
user-0 提问: 将第一个字符串的前5个字符与第二个字符串的前5个字符串的组成一个新的字符串，并输出这个字符串。为啥我程序崩溃了？

回复:
user: user-1
content: 9楼高人！！ 楼主不应该在 指针和数组 间纠缠，大部分情况下，能数组不指针。这样，写的那个不乱，读的那个也不乱，项目后期做维护的兄弟也不会爆粗口

user: user-2
content: #include<stdio.h> #include<string.h>  #define MAX_ARR_SIZE    32 int main() {     //char *s1,*s2,s3;     char s1[MAX_ARR_SIZE], s2[MAX_ARR_SIZE], s3[MAX_ARR_SIZE];     int i, j;     printf("输入：");     scanf("%s%s", s1,s2);     printf("输出：");      for(i=0;i<5 && s1[i];i++)     {         //s3=s3+s1[i];         s3[i] = s1[i];     }     //for(i=0;i<5;i++)     for(j = 0; j < 5 && s2[j]; j++)     {         s3[i++] = s2[j];     }     s3[i] = 0;     //printf("输出：%c\n",s3);     printf("%s\n",s3);      return 0; } 供参考～

user: user-2
content: 引用 3 楼 ljn20010724 的回复:[quote=引用 2 楼 fireyou的回复:]char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存 请问不用指针应该怎么改这段代码呢？[/quote] 不用指针就用字符数组～

user: user-3
content: 参考楼上 引用 5 楼 ljn20010724 的回复:[quote=引用 4 楼 fireyou的回复:]1楼不是告诉你了吗，用数组啊  [quote=引用 3 楼 ljn20010724 的回复:] [quote=引用 2 楼 fireyou的回复:]char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存 请问不用指针应该怎么改这段代码呢？[/quote][/quote] 可是我输入进去还是错误的。。[/quote]

user: user-3
content: #include<string.h> #include<stdio.h> #define STR_LENGTH 20 int main() {     char s1[STR_LENGTH], s2[STR_LENGTH], s3[STR_LENGTH];      memset(s1, 0, sizeof(s1));     memset(s2, 0, sizeof(s2));     memset(s3, 0, sizeof(s3));     printf("输入：\n");     scanf("%s%s", s1, s2);     printf("输出：\n");     strncpy(s3, s1, 5);     strncat(s3, s2, 5);          printf("输出：%s\n", s3);      getchar();     getchar();     return 0; }

user: user-0
content: 引用 4 楼 fireyou的回复:1楼不是告诉你了吗，用数组啊  [quote=引用 3 楼 ljn20010724 的回复:] [quote=引用 2 楼 fireyou的回复:]char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存 请问不用指针应该怎么改这段代码呢？[/quote][/quote] 可是我输入进去还是错误的。。

user: user-3
content: 1楼不是告诉你了吗，用数组啊  引用 3 楼 ljn20010724 的回复:[quote=引用 2 楼 fireyou的回复:]char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存 请问不用指针应该怎么改这段代码呢？[/quote]

user: user-0
content: 引用 2 楼 fireyou的回复:char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存 请问不用指针应该怎么改这段代码呢？

user: user-3
content: char *s1,*s2,s3; 要用指针，在使用之前需要先 malloc分配内存，使用完毕后用 free 释放内存

user: user-4
content: char *s1;这样不是定义字符串，是定义的了一个指针，字符串就是字符数组，需要定义空间大小 比如 #define MAX 1000 char s1[MAX];
user-0 提问: 从键盘输入一个字符串，然后将该字符串中每个字符反向输出。我为啥程序会崩溃？

回复:
user: user-1
content: 供参考  #include <stdio.h> #include <stdlib.h> #define MAX_LENTH 128  void reverse(char* str) {     if (*str)     {         reverse(str + 1);         printf("%c", *str);     } }  int main(void) {     char *s1;     s1 = malloc(MAX_LENTH);     printf("输入长度在128个字符以内的字符串：\n");     scanf("%s", s1);     printf("逆序后字符串: \n");     reverse(s1);      return 0; }

user: user-1
content: 1. 指针s1没有分配内存 s1 = malloc(size); 2.  for(i=len;i>0;i--) { printf("%s",s1[i]);	 }  数组下标从0开始，所以你这里 s1[i]越界了，崩溃正常 3. printf("%s",s1[i]);	   这里你想打印一个字符的话，请用  printf("%c",s1[i]);

user: user-2
content: for(i=len-1;i>=0;  ... 更好

user: user-2
content: s1[i]等于0，显示地址0上的字符串，就崩溃了。 %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: 作业？ 自己看书吧！

user: user-3
content: 第一个空行填for循环体的第一句。 第二个空行天fahr++; 因为fahr需要自增了，根据for循环
user-0 提问: 请问大佬sin（x）-e^-5x=0用C语言怎样迭代求解？

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

user: user-2
content: 试下牛顿切线法 这个是常用的求解方程的方法
user-0 提问: 求助，c语言 n个数，两两数相加 ，不重复，怎么实现？

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

user: user-2
content: 引用 1 楼 user-4 的回复:换个角度，从总的来看，第一个数总共只加了一次，第二个数只加了两次...第n个数加了n次，已经很明显了吧 用循环计算一下就行 说得对！正如我最近在其他帖子吐槽的，有些小同志啊，学习C语言不能把数学、逻辑这些丢在一边，应该是先用数学等方法找出一个解题的方法来再编程实现，而不是一上来就去遍历、循环这些笨办法，系统资源不是这样糟践的

user: user-3
content: 先自己动手写一下，然后不行再贴出你的代码来问。

user: user-4
content: 换个角度，从总的来看，第一个数总共只加了一次，第二个数只加了两次...第n个数加了n次，已经很明显了吧 用循环计算一下就行
user-0 提问: VS

回复:
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-0
content: 引用 1 楼 user-3的回复:很明显，答案错误，输入输出不符 能不能仔细的说一下，我对VS不是很熟

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: 把第二层排序循环的语句改一下改成：  k = a[k] > a[j] ? j : k; 其他不变。  楼主这样直接对a[k]赋值会导致把a[k]之前的值给覆盖了，导致存在多个相同的值。

user: user-0
content: 引用 1 楼 user-3的回复:把a[k] = (a[k]>a[j]) ? a[j] : a[k];改成 k = (a[k]>a[j]) ? j : k; 你的k一直没变过，永远不会走进k!=i，而且a[k] = (a[k]>a[j]) ? a[j] : a[k];还会改变a[i]的值（因为k=i） 知道了  对了  谢谢大佬

user: user-3
content: 把a[k] = (a[k]>a[j]) ? a[j] : a[k];改成 k = (a[k]>a[j]) ? j : k; 你的k一直没变过，永远不会走进k!=i，而且a[k] = (a[k]>a[j]) ? a[j] : a[k];还会改变a[i]的值（因为k=i）
user-0 提问: C语言中关于实数计算误差的问题。

回复:
user: user-1
content: 计算机都是二进制的，整数二进制了解吗？如果了解那么想想小数的二进制怎么回事？

user: user-2
content: 刚学到需要用数学函数库的，第一个函数就是取绝对值大于某个数的，上面举的例子就是说实型有误差，只要差的绝对值小于10^6就可以看做等于，但不能直接==。+++输出的结果有误差（r=9，答案应该是254.34，但变成了254.340012；1017.36变成了1017.360034。）#include<stdio.h>int main(){float r,s,S;float a=3.14;printf("--%f--\n",a);                //【输出π的地方】printf("输入半径r；");scanf("%f",&r);s=arr;S=4ar*r;printf("如果是一个圆的话，面积为%f\n如果是一个球的话，面积则为%f\n\n",s,S);return 0;}不过我还发现3466.6，输出整数部分3467，这不是误差能解决的吧不知道你说的是不是这种

user: user-3
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: C语言

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

user: user-0
content: 引用 2 楼 qq_45798109的回复:还有你这个输出有换行的有不换行的，建议你改下 谢谢谢谢谢谢谢谢谢谢

user: user-2
content: 楼主是如何区分奇偶的，看到楼主都是直接输出的。 另外，奇偶没必要用双层循环，单层循环即可。直接用m % 2判断即可。  另外，建议用数组存放奇偶数，最后分别输出。

user: user-3
content: 还有你这个输出有换行的有不换行的，建议你改下

user: user-3
content: 第八行m改成&m。。
user-0 提问: 求一个数是不是素数

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

user: user-2
content: 去除重复计算哦

user: user-3
content: 判断2 ~sqrt(n)之间的数，因为循环次数减少了，减少了时间复杂度。  你对比一下2~sqrt(n)之间的个数与2~n-1之间的个数。n越大，时间复杂度越低

user: user-4
content: 若2都不能除尽，还要试4, 6, 8, …吗？ 若3都不能除尽，还要试9, 15, 21, …吗？等等。 一个数如果有因子的话，那么在它的平方根数以内就应该有，否则就没有因子。 所以必定有一个因子不大于n的平方根。 故判断n是否为素数，只要试除到n的平方根就可以了，不必一直到n-1。

user: user-5
content: 10 1×10=10 2×5=10 3×3=9 5×2=10 10×1=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: #include<stdio.h>  int main() {     int T, N;     int i, j;     unsigned long long mol, deno, new_deno;     double sum = 0;      scanf("%d", &T);      if (T > 2000)         return 0;     i = 0;     while (i < T) {         scanf("%d", &N);          if (N > 10000)             continue;         sum = 0;         mol = 2;         deno = 1;         j = 0;         while (j < N) {             sum += mol*1.0/deno;             if (j > 0)                 printf("+");             printf("%llu/%llu ", mol, deno);             new_deno = mol;             mol = mol + deno;             deno = new_deno;             j++;         }         printf(" = %.2lf\n", sum);         i++;     }      return 0;  } 考虑分子和分母有可能溢出，所以还可以考虑用double类型表示分子分母～或者long double

user: user-2
content: #include<stdio.h>  int main() {     int T, N;     int i, j;     int mol, deno, new_deno;     double sum = 0;      scanf("%d", &T);      i = 0;     while (i < T) {         scanf("%d", &N);          sum = 0;         mol = 2;         deno = 1;         j = 0;         while (j < N) {             sum += mol*1.0/deno;             if (j > 0)                 printf("+");             printf("%d/%d ", mol, deno);             new_deno = mol;             mol = mol + deno;             deno = new_deno;             j++;         }         printf(" = %.2lf\n", sum);         i++;     } #if 0     int a,b;      scanf("%d",&a);     for(b=1;b<=a;b++)     {         long double n=2,m=1,N,t,sum=0.00;         scanf("%llf",&N);          while(N)         {             sum=sum+n/m;             t=m;             m=n;             n=n+t;             N--;         }         printf("%.2llf\n",sum);     } #endif     return 0;  } 供参考～

user: user-3
content: scanf("%llf",&N); 改为  scanf("%lf",&N); l或者ll指定了scanf()函数参数N的大小，其中ll表示的是long long类型，而l表示的long类型，因为N的类型是long double，所以要用lf,而不是llf。 以下为VS2015调试结果

user: user-4
content: 看下吧 #include "pch.h" #include "stdio.h" #include "stdlib.h" #include "math.h" #include "head.h" /*前沿技术-嵌入式 720363947 编程语言C / C++ 718801748 编程算法与数据结构群15035519 */ int main_suliesum(){ 	int T, temp; 	int fen_zi, fen_mu; 	double sum = 0.0; 	int *N = NULL; 	int i, j;  	scanf("%d", &T); 	if((T == 0) || (T > 2000)) { 		printf("input T is not right\n"); 		return -1; 	} 	N = (int*)malloc(T * sizeof(int)); 	if (N == NULL) { 		printf("malloc fail\n"); 		return -2; 	}  	for (i = 0; i < T; i++){ 			scanf("%d", &N[i]); 		if ((N[i] == 0) || (N[i] > 10000)) { 			printf("input N is not right\n"); 			goto EIXT_FUN; 		} 	}  	for (i = 0; i < T; i++){ 		fen_zi = 2; 		fen_mu = 1; 		sum = 0.0; 		for(j = 0; j < N[i]; j++){ 			sum = sum + ((double)fen_zi / (double)fen_mu); 			temp = fen_zi; 			fen_zi = temp+ fen_mu; 			fen_mu = temp; 		} 		printf("%.2llf\n", sum); 	} EIXT_FUN: 	if (N) { 		free(N); 		N = NULL; 	} 	return 0; }
user-0 提问: OJ2910 提取数字(哪里有问题呀)

回复:
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() {     char a[128];     int x[128];     int len;     int i, t = 0;      gets(a);     len = strlen(a);      for (i = 0; i < len; i++)     {         if (a[i] >= '0' && a[i] <= '9') {             x[t++] = a[i] - '0';             continue;         }         printf("%c", a[i]);     }     putchar(10);     for (i = 0; i < t; i++)         printf("%d", x[i]);     putchar(10);      return 0; }  优化后，供参考～0也是数字范畴里的吧

user: user-2
content: #include<stdio.h> #include<string.h>  int main() {     char a[109];     int x[109];      gets(a);     int len = strlen(a);     int i, t = 0, j, k, y = 0;     for (i = 0; i < len; i++)     {         if (a[i] >= '1' && a[i] <= '9') {             x[t++] = a[i] - '0';             continue;         }         printf("%c ", a[i]);         /*         if (a[i] >= 49 && a[i] <= 57)         {             for (j = i; a[j] >= 48 && a[j] <= 57; j++)             {                 x[t] = a[j] - 48;                 t++;             }             //i = j;    //此处会改变外层循环             if (y > 0)             {                 for (k = y+1; k < t; k++)                 {                     printf("%d", x[k]);                     y = k;                 }             }             else if (y == 0)             {                 for (k = 0; k < t; k++)                 {                     printf("%d", x[k]);                     y = k;                 }             }             printf("\n");         }         else if (a[i] == 48 && (a[i + 1] > 57 || a[i + 1] < 48))         {             printf("%c\n", a[i]);         }         */     }     putchar(10);     for (i = 0; i < t; i++)         printf("%d ", x[i]);     putchar(10);      return 0; }  供参考～  提取出数字，不要考虑的太复杂了。

user: user-3
content: 你这代码没啥问题，VS上可以运行，结果也没错。。。

user: user-4
content: 我觉得你可以把题目贴出来，只有答案谁看得懂你想干嘛

user: user-0
content: 在VJ上直接WA 改了很多次了

user: user-3
content: 有什么问题吗？
user-0 提问: c语言两个二维数组在调用函数的时候，形参和实参怎么写。

回复:
user: user-1
content: 不能返回数组的，只能返回指针，楼主要好好学习一下，程序不能乱写

user: user-0
content: 引用 10 楼 SuperDay 的回复:把前面的换成后面的就可以了，前面有分号，后面没分号，就这个差别懂了，那要怎么returen数组D，int E[5][3]=C(A,B); return D; 这两句错在哪

user: user-1
content: 把前面的换成后面的就可以了，前面有分号，后面没分号，就这个差别

user: user-2
content: 引用 7 楼 weixin_45794895 的回复:[quote=引用 3 楼 user-2 的回复:] int C(int A[],int B[]);// 这是声明 int C(int (*A)[5],int (*B)[5])// 这是定义 这两个不一样你看不出来吗？那怎么改[/quote]问问题能不能过过脑子。。。

user: user-2
content: 引用 6 楼 user-2 的回复:[quote=引用 5 楼 SuperDay 的回复:] [quote=引用 4 楼 user-2的回复:]另外，把你以前的帖子结了。  CSDN论坛新手指南 必须给你点赞，每天都这么积极[/quote]顺带而已，1秒钟不到就搞定[/quote]复制粘贴

user: user-0
content: 引用 3 楼 user-2 的回复:int C(int A[],int B[]);// 这是声明 int C(int (*A)[5],int (*B)[5])// 这是定义  这两个不一样你看不出来吗？那怎么改

user: user-2
content: 引用 5 楼 SuperDay 的回复:[quote=引用 4 楼 user-2的回复:]另外，把你以前的帖子结了。  CSDN论坛新手指南 必须给你点赞，每天都这么积极[/quote]顺带而已，1秒钟不到就搞定

user: user-1
content: 引用 4 楼 user-2的回复:另外，把你以前的帖子结了。  CSDN论坛新手指南 必须给你点赞，每天都这么积极

user: user-2
content: 另外，把你以前的帖子结了。  CSDN论坛新手指南

user: user-2
content: int C(int A[],int B[]);// 这是声明 int C(int (*A)[5],int (*B)[5])// 这是定义  这两个不一样你看不出来吗？

user: user-0
content: 引用 1 楼 SuperDay 的回复:你这个函数声明和定义不一致的写错了。。  引用 1 楼 SuperDay 的回复:你这个函数声明和定义不一致的我对函数的调用还不熟悉，哪里错了，改怎么改

user: user-1
content: 你这个函数声明和定义不一致的
user-0 提问: c语言转义字符怎么识别

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

user: user-2
content: /*-  * Copyright (C), 1999-2019, mymtom.  *                     _  *  ____  _   _ ____ _| |_ ___  ____   * |    \| | | |    (_   _) _ \|    \  * | | | | |_| | | | || || |_| | | | |  * |_|_|_|\__  |_|_|_| \__)___/|_|_|_|  *       (____/   *  * vi:set ts=4 sw=4:  */  /**  * @file    LetterCount.c  * @brief     */  #include <stdio.h>  static int unescape(int ch) {     int ret = 0;     if ('a' == ch)         ret = '\a';     else if ('b' == ch)         ret = '\b';     else if ('f' == ch)         ret = '\f';     else if ('n' == ch)         ret = '\n';     else if ('r' == ch)         ret = '\r';     else if ('t' == ch)         ret = '\t';     else if ('v' == ch)         ret = '\v';     return ret; }  static char * escape(int ch, char *buf) {     int ret = 0;     if ('\a' == ch)         ret = 'a';     else if ('\b' == ch)         ret = 'b';     else if ('\f' == ch)         ret = 'f';     else if ('\n' == ch)         ret = 'n';     else if ('\r' == ch)         ret = 'r';     else if ('\t' == ch)         ret = 't';     else if ('\v' == ch)         ret = 'v';      if (0 == ret) {         buf[0] = ch;         buf[1] =0;     } else {         buf[0] = '\\';         buf[1] = ret;         buf[2] = 0;     }      return buf; }  int main(int argc, char *argv[]) {     int i;     int ch;     char buf[3];     int count[256] = {0};      while (EOF != (ch = fgetc(stdin))) {         if ('#' == ch)             break;         if ('\\' == ch) {             ch = fgetc(stdin);             if ('#' == ch)                 break;             ch = unescape(ch);         }         count[ch]++;     }      for (i = 0; i < 256; i++) {         if (count[i] > 0) {             printf("%2.2s: %4d\n", escape(i, buf), count[i]);         }     }      return 0; }

user: user-3
content: 看不懂。。。什么怎么识别，一个个比较就行了吧。

user: user-0
content: 引用 楼主 weixin_45846821的回复:输入字符串，计算其中转义字符/n，/a，/b，/t的个数如12d/nb#，输入#即停止打印。求大神解答 还有/反了，那个要怎么识别？

user: user-0
content: 引用 1 楼 user-3的回复:那不就是统计/的个数？ 但是还要统计字母个数

user: user-3
content: 那不就是统计/的个数？
user-0 提问: C语言数组问题

回复:
user: user-1
content: 数组可以理解为相同类型元素的一个集合，这个集合有大有小，根据数组长度来定。数组在内存中是连续的。

user: user-2
content: 单个变量和数组就是你要买一个阿尔卑斯糖和要买一串阿尔卑斯糖的区别
user-0 提问: 运行在windows系统上的软件，可以绕过windows自己来显示图形和动画吗？

回复:
user: user-1
content: 好比一辆汽车，所有的零部件全部自己生产，不能采购别家的零部件。

user: user-1
content: 直接操作显卡编程，好比一个公司100个人的活，全部你一个人干。

user: user-1
content: 你想直接操作显卡编程吗？一般都要通过GDI、DirectX、OpenGL之类的库吧。

user: user-2
content: 通常应该是不能的，这和dos下面不一样，现代操作系统对资源管理得更好且注重权限
user-0 提问: 为什么我输出的是中文

回复:
user: user-1
content: 通过查看ASCII可以知道它的范围是0~127，即[0,127]，你的219是超过了。 char ch = 219，输出%d是-37，无法匹配ASCII码  #include<stdio.h>  int main() {     int i, j;     for (i = 0; i < 8; i++)     {         for (j = 0; j < 8; j++)             if ((i + j) % 2 == 0)                 printf("%c%c", 42, 42);             else                 printf(" ");         printf("\n");     }      return 0; }

user: user-2
content: 引用 2 楼 user-2 的回复:[quote=引用 1 楼 user-2 的回复:] 1、最后少了一个} 2、219是什么鬼，你想干什么？ 通常来说ascii中的可见字符范围是好多研究一下，219不在这个范围！另外，我们通常是在中文系统中运行这个，219的话最高位又是1，这样就在中文编码范围内了。 219的16进制是DB，去某些查编码的网站查询DBDB可以得到对应的汉字是：圹  https://www.qqxiuzi.cn/bianma/zifuji.php[/quote]  再补充一下：把两个%c之间多加点空格再试一下呢？

user: user-2
content: 引用 1 楼 user-2 的回复:1、最后少了一个} 2、219是什么鬼，你想干什么？ 通常来说ascii中的可见字符范围是好多研究一下，219不在这个范围！另外，我们通常是在中文系统中运行这个，219的话最高位又是1，这样就在中文编码范围内了。 219的16进制是DB，去某些查编码的网站查询DBDB可以得到对应的汉字是：圹  https://www.qqxiuzi.cn/bianma/zifuji.php

user: user-2
content: 1、最后少了一个} 2、219是什么鬼，你想干什么？
user-0 提问: 大哥们 求助

回复:
user: user-0
content: 引用 6 楼 weixin_40290083 的回复:否则会当为链表倒数第二节点时，p->next为null，你确要取data值，就异常了  那应该怎么改呢

user: user-1
content: 否则会当为链表倒数第二节点时，p->next为null，你确要取data值，就异常了

user: user-1
content: output_list中p->data

user: user-2
content: #include<stdio.h> #include<malloc.h> typedef struct LNode { 	int data; 	struct LNode *next; }List, *LinkList; void InitList(List **L) { 	*L = (List *)malloc(sizeof(List)); 	if (*L == NULL) 		printf("分配失败"); 	else 		(*L)->next = NULL; } void HeadInitList(List *L, int n) { 	List *s; 	int i; 	for (i = 0; i < n; i++) 	{ 		s = (LinkList)malloc(sizeof(List)); 		printf("请输入第%d个数", i + 1); 		scanf("%d", &s->data); //输入元素值 		s->next = L->next; 		L->next = s;     //插入 	} } void output_List(List *L) { 	List *p = L; 	while (p->next != NULL) 	{ 		printf("%d\n", p->next->data); 		p = p->next; 	} } void main() { 	LinkList L; 	int n; 	InitList(&L); 	printf("请输入链表的长度：\n"); 	scanf("%d", &n); 	HeadInitList(L, n); 	output_List(L); 	printf("请输入要删除的元素的位置：\n"); }

user: user-2
content: 引用 2 楼 dominis 的回复:应该没有吧，我这个照着书上打的  #include<stdio.h> #include<malloc.h> typedef struct LNode { 	int data; 	struct LNode *next; }List, *LinkList; void InitList(List *L) { 	L = (List *)malloc(sizeof(List)); 	if (L == NULL) 		printf("分配失败"); 	else 		L->next = NULL; }  void main() { 	List L; 	int n; 	InitList(&L); }  就不说别的，你定义了一个List L，然后在InitList中又要malloc，这个有意义吗？这个地方绝对不是书上的吧

user: user-0
content: 应该没有吧，我这个照着书上打的

user: user-2
content: 是不是死循环了
user-0 提问: 一个关于“是否能同时被两个数整除”的C语言编程。

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

user: user-2
content: 我觉得要判断既能被5整除又能被7整除，然后输出YES会好一点，如果你把这个放在else那里，会有很多种情况，如果你这样写，既不能被5整除也不会被7整除的数也会输出YES    (并且的符号是&&)

user: user-3
content: 5 和 7都是质数 直接判断能不能被 35整除就可以了

user: user-4
content: 引用 7 楼 printf("奶思！\n");的回复:[quote=引用 2 楼 Italink的回复:]d% -> %d 学艺不精，没看懂是什么意思[/quote] 格式控制符写错了哟，不是d%，是%d

user: user-5
content: 引用 6 楼 printf("奶思！\n"); 的回复:[quote=引用 3 楼 liups的回复:]&& 才是与 嗯嗯嗯，我相信这点我没搞错。 假如输入一个数既可以被5整除也可以被7整除(即“||”左边右边都为0)，那么if后边的判断是不是应该为假(逻辑或:同时为假才为假)，然后输出“YES”,刚好是对的呀。[/quote] 程序的逻辑应该清晰！你这虽然逻辑是对的，但是不便于理解，不提倡

user: user-0
content: 引用 2 楼 Italink的回复:d% -> %d 学艺不精，没看懂是什么意思

user: user-0
content: 引用 3 楼 liups的回复:&& 才是与 嗯嗯嗯，我相信这点我没搞错。 假如输入一个数既可以被5整除也可以被7整除(即“||”左边右边都为0)，那么if后边的判断是不是应该为假(逻辑或:同时为假才为假)，然后输出“YES”,刚好是对的呀。

user: user-6
content: 引用 4 楼 printf("奶思！\n"); 的回复:[quote=引用 1 楼 不闻窗外事的回复:]AI说有问题就有问题啊？？？    相信自己 哈哈哈，希望吧，谢谢你呀[/quote] 哈个毛线啊，二楼那不是给你指出问题了，%d不是d%

user: user-0
content: 引用 1 楼 不闻窗外事的回复:AI说有问题就有问题啊？？？    相信自己 哈哈哈，希望吧，谢谢你呀

user: user-5
content: && 才是与

user: user-4
content: d% -> %d

user: user-6
content: AI说有问题就有问题啊？？？    相信自己
user-0 提问: 请问这道题是怎么算的？

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

user: user-2
content: 第一个，%x以16进制输出，后面的p(注意不是*p)为a的首地址或a[0]地址。p+9则是a[9]地址。  如果假设int为2字节，则第二个输出应该为0x194+18，也就是1a6。解答完毕，好象很完美！   但是，我要告诉你，这是错的！不能肯定int就是2字节！  所以正确答案是：题目错了！
user-0 提问: Java调用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 楼 走走道疯了_!的回复:[quote=引用 2 楼 SuperDay 的回复:] jni发这边也可以，从信息里面看，似乎是string编码utf有点问题  crypt函数返回值可能有问题，不知道咋回事，直接printf都崩溃[/quote] 现在都没搞了，这里貌似搞的人不多，估计要自己解决了

user: user-0
content: 引用 2 楼 SuperDay 的回复:jni发这边也可以，从信息里面看，似乎是string编码utf有点问题  crypt函数返回值可能有问题，不知道咋回事，直接printf都崩溃

user: user-2
content: jni发这边也可以，从信息里面看，似乎是string编码utf有点问题

user: user-3
content: 这里是C/C++的板块吧，你确定发java的问题到这里合适？
user-0 提问: 求教学C语言

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

user: user-0
content: 引用 3 楼 fireyou的回复:     int bit = 0;     int n;     printf("请输入一个整数：\n");     scanf("%d", &n);     while (n != 0)     {         bit++;         n /= 10;     }     printf("你输入的是%d位数 \n", bit);  我知道了，刚刚脑子没转过来

user: user-0
content: 引用 3 楼 fireyou的回复:     int bit = 0;     int n;     printf("请输入一个整数：\n");     scanf("%d", &n);     while (n != 0)     {         bit++;         n /= 10;     }     printf("你输入的是%d位数 \n", bit);  n /=10是什么意思

user: user-2
content: int bit = 0;     int n;     printf("请输入一个整数：\n");     scanf("%d", &n);     while (n != 0)     {         bit++;         n /= 10;     }     printf("你输入的是%d位数 \n", bit);

user: user-3
content: 大于9的是2位数 大于99的是3位数 ……

user: user-4
content: 取余，循环，＋1，除
user-0 提问: 将字符串中的所有数字加起来，我的输出怎么会错？

回复:
user: user-1
content: 用malloc还要配合使用free char s[100]也可以

user: user-2
content: 类似这样 s = malloc(100);  然后后面要计算数字的相加，需要转换一下  sum = sum + s[i] - '0';

user: user-0
content: 引用 1 楼 user-2 的回复:指针s没有分配空间，直接使用会有问题，要么分配空间，要么用数组 请问这样应该怎么改呢？

user: user-2
content: 你这种是直接用asc码值相加了。

user: user-2
content: 指针s没有分配空间，直接使用会有问题，要么分配空间，要么用数组
user-0 提问: DerectX 和 windows是什么关系？

回复:
user: user-0
content: 运行在windows系统上的软件，可以绕过windows自己来显示图形和动画吗？

user: user-1
content: 图形编程，难度好大的。多年前我尝试了，以失败告终。

user: user-2
content: DerectX 是微软的多媒体编程接口 windows是微软的操作系统 显示图形，可以理解DerectX 是一个辅助软件，可以提高性能，没有DerectX ，windows也能显示动画

user: user-3
content: 不要DirectX，有OpenGL，GDI Plus等等，当然也可以全都不要，那就要自己来封装各种模块，就是工作量比较大
user-0 提问: Time Limited Exceeded问题求助

回复:
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 楼 张福泰zzz 的回复:其他的就只有两个例子啦每一行 少一两个字

user: user-0
content: 其他的就只有两个例子啦

user: user-2
content: 截图题目不全

user: user-3
content: 首先a建议用动态申请空间（new/delete, malloc/free);因为数组的长度有输入决定。  第二点，z函数建议增加两个参数，分别是row, col用于接收main函数里的n和m，因为n， m的值可能小于900， 450 所以，如果小于，那么z函数里用900, 450就不可以了。因为多出的元素是随机数。超时可能是这个原因导致的。  第三点：函数名不建议用一个字母表示，这样一来和一个参数名基本上没有区别，不易理解代码；
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: 引用 18 楼 不闻窗外事的回复:[quote=引用 17 楼 qq_30821735 的回复:] [quote=引用 15 楼 不闻窗外事的回复:][quote=引用 12 楼 qq_30821735 的回复:] 如果不过滤回车是会被下面的scanf接收吗 是的[/quote] 使用多个scanf是要注意这一点的吗[/quote] 对，最好不要连续使用scanf，连续使用就要注意[/quote] 好  我记住了  谢谢谢谢

user: user-2
content: 引用 17 楼 qq_30821735 的回复:[quote=引用 15 楼 不闻窗外事的回复:][quote=引用 12 楼 qq_30821735 的回复:] 如果不过滤回车是会被下面的scanf接收吗 是的[/quote] 使用多个scanf是要注意这一点的吗[/quote] 对，最好不要连续使用scanf，连续使用就要注意

user: user-0
content: 引用 15 楼 不闻窗外事的回复:[quote=引用 12 楼 qq_30821735 的回复:] 如果不过滤回车是会被下面的scanf接收吗 是的[/quote] 使用多个scanf是要注意这一点的吗

user: user-0
content: 引用 14 楼 proorck2019的回复:你用的这个PTA的APP叫什么名字？ 我搜索PTA，没有啊！ pta是网站，你百度一下就知道了

user: user-2
content: 引用 12 楼 qq_30821735 的回复:如果不过滤回车是会被下面的scanf接收吗 是的

user: user-3
content: 你用的这个PTA的APP叫什么名字？ 我搜索PTA，没有啊！

user: user-3
content: 引用 2 楼 fireyou的回复:能运行？ 编译就有错吧！ float s [r]; C语言定义数组要指定长度，这里需要用一个常量，不能用r char x[r];  这里一样。 他的意思是动态数组，我上学的时候也喜欢这么写。 用malloc/free p=(...)malloc(sizeof(...)*r) free(p)

user: user-0
content: 如果不过滤回车是会被下面的scanf接收吗

user: user-4
content: C99支持VLA，float s[r];是可以的

user: user-5
content: 那句不明白？还是都不明白？ 人不是写清楚了吗，过滤回车。

user: user-0
content: 引用 5 楼 不闻窗外事的回复:scanf("%d", &r); getchar();   scanf("%c %f", c++, p++); getchar();  这两个scanf后面加上getchar()；过滤掉回车 ! 可以了 可为什么要这样，我还是不太懂

user: user-0
content: 不是，书上写过这种用法，我就想试试。。。

user: user-0
content: 引用 2 楼 fireyou的回复:能运行？ 编译就有错吧！ float s [r]; C语言定义数组要指定长度，这里需要用一个常量，不能用r char x[r];  这里一样。 是能运行，但是结果不对，但我在pta的另一道题上也这样用了。。通过了。。这是为什么。。

user: user-6
content: #include<stdio.h> #include <stdlib.h>  int main() {     int r;     scanf("%d", &r);     //float s [r];     float *s;     //char x[r];     char *x;     s = (float *)malloc(sizeof(float) * r);     if (!s)         exit(0);     x = (char *)malloc(sizeof(char) * r);     if (!x)         exit(0);      char *c = x;     float *p = s;          getchar();    //for '\n'     for(int i=0;i<r;i++){         //scanf("%c %f",c++,p++);         scanf("%c %f", c+i, p+i);         getchar();    //for '\n'     }     p=s;     c=x;     for(int i=0;i<r;i++,p++,c++){         if(*c=='F'){             printf("%-1.2f\n",*p*1.09);         }         else{             printf("%-1.2f\n",*p/1.09);         }     }      free(s);     free(x);      return 0; }  供参考～

user: user-2
content: scanf("%d", &r); getchar();   scanf("%c %f", c++, p++); getchar();  这两个scanf后面加上getchar()；过滤掉回车

user: user-7
content: 首先我你如果用的是dve 我建议你去安装stdio或者查询让dve调试的方法，调试一下就可以了。

user: user-8
content: 这两个++放在for里面，i++的右边不好吗？

user: user-5
content: 能运行？ 编译就有错吧！ float s [r]; C语言定义数组要指定长度，这里需要用一个常量，不能用r char x[r];  这里一样。

user: user-8
content: scanf里面c++  p++，为什么非要这么写？出于过度的自信吗？
user-0 提问: 关于结构体与结构体类型指针的相互赋值问题

回复:
user: user-1
content: 搞定了就好，出错之后找出错误然后把它解决了，就会进步了

user: user-0
content: 我弄懂了 之前一直把p当成了上一个节点的指针域，想着把pNew的地址赋给p就把节点插进去了，但是p只是一个变量，并没有同多级指针，这样把pNew的地址赋过去也是直接把下面节点的弄丢了，更不可能把节点插进去了。

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

user: user-0
content: 引用 1 楼 user-1 的回复:可以的，复制结构体内容可以用memcpy，请自行百度 我这里有两张图，你看看

user: user-1
content: 可以的，复制结构体内容可以用memcpy，请自行百度
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: 表示没看懂你的筛法，确定有用吗？
user-0 提问: 为什么我的这个算法会出现abort trap:6？

回复:
user: user-0
content: 引用 4 楼 林多的回复:[quote=引用 3 楼 qq_45838041 的回复:] [quote=引用 2 楼 林多的回复:]abort trap:6，数组越界。 Ubuntu GCC环境下没有问题。。 你用的是XCode？  尝试把数组的长度，申请大一点，看看？ 我用的是sublime text [/quote] 我说的是，编译环境或者IDE（GCC、VS、XCode）。不是编辑器（Sublime、VSCode）。[/quote] 应该是gcc，我好像没有其它的

user: user-0
content: 引用 1 楼 自信男孩的回复:没发现什么问题，可以贴出代码（不要图片），可以帮你试一下～（Linux 环境下） #include <stdio.h> #include <string.h> int main() { 	char in[10][20]={'\0'}, temp[200]={'\0'}; 	int i, j, max; 	for(i=1; i<=5; i++){ 		gets(in[i]); 	} 	for(i=1; i<=4; i++){ 		strcpy(temp, in[i]);     //strcpy函数是把字符串in复制到temp中 		max = i; 		for (j=i+1; j<=5; j++){ 			if(strcmp(in[max],in[j])<0) max=j;  //strcmp函数的作用是比较字符串大小 		} 		strcpy(in[i], in[max]); 		strcpy(in[max], temp); 	} 	for( i=1; i<=5; i++)printf("%s\n", in[i]); }

user: user-1
content: if(i != max) {     strcpy(in[i], in[max]); }   mac 下面GCC 应该是按照C99编译的，不能对相同地址使用strcpy，会起冲突。 因为C99 下面的 char *strcpy( char *restrict dest, const char *restrict src ); 有restrict限定

user: user-2
content: 没发现什么问题，可以贴出代码（不要图片），可以帮你试一下～（Linux 环境下）

user: user-3
content: 引用 3 楼 qq_45838041 的回复:[quote=引用 2 楼 林多的回复:]abort trap:6，数组越界。 Ubuntu GCC环境下没有问题。。 你用的是XCode？  尝试把数组的长度，申请大一点，看看？ 我用的是sublime text [/quote] 我说的是，编译环境或者IDE（GCC、VS、XCode）。不是编辑器（Sublime、VSCode）。

user: user-0
content: 引用 2 楼 林多的回复:abort trap:6，数组越界。 Ubuntu GCC环境下没有问题。。 你用的是XCode？  尝试把数组的长度，申请大一点，看看？ 我用的是sublime text

user: user-3
content: abort trap:6，数组越界。 Ubuntu GCC环境下没有问题。。 你用的是XCode？  尝试把数组的长度，申请大一点，看看？
user-0 提问: C语言

回复:
user: user-0
content: 引用 12 楼 xianming3的回复:谢谢你让我第一次得分 另外说一句，这段代码其实你如果都理解了，或者再过一段时间，你就不会觉得太复杂了。 好的谢谢，确实能搞明白简单点的

user: user-1
content: 引用 13 楼 weixin_45839025 的回复:[quote=引用 12 楼 xianming3的回复:]谢谢你让我第一次得分 另外说一句，这段代码其实你如果都理解了，或者再过一段时间，你就不会觉得太复杂了。 好的谢谢，确实能搞明白简单点的[/quote] 不客气

user: user-1
content: 谢谢你让我第一次得分 另外说一句，这段代码其实你如果都理解了，或者再过一段时间，你就不会觉得太复杂了。

user: user-1
content: 这是我第一次回答问题，谢谢20分！

user: user-1
content: 当然如果你想在程序里面自己输入两个数的话，可以在定义x和y的后面加上scanf 比如scanf("%d,%d",&x,&y); 这个你应该也会，你最好把整个这些代码搞明白

user: user-2
content: 直接百度得了。。。。。。

user: user-3
content: 太简单了，自己学吧

user: user-0
content: 引用 6 楼 weixin_45837369的回复:我先现写一段，供参考。  #include<stdio.h> int main(){ int x=45; int y=87; int maxn=max(x,y); printf("%d",maxn); getchar();  }   int max(int num1,int num2) {if (num1>num2) return num1; else return num2; }  很简单，不过我没有亲自试。 非常谢谢不好意思啊，让你打了那么长的代码

user: user-0
content: 引用 7 楼 weixin_45837369的回复:成功的话记得给我一点分。 对不对不是问题，态度是个问题🤗

user: user-1
content: 成功的话记得给我一点分。

user: user-1
content: 我先现写一段，供参考。  #include<stdio.h> int main(){ int x=45; int y=87; int maxn=max(x,y); printf("%d",maxn); getchar();  }   int max(int num1,int num2) {if (num1>num2) return num1; else return num2; }  很简单，不过我没有亲自试。

user: user-1
content: 求最大值很简单啊，用if判断，如果第一个数比第二个数大，返回第一个数，如果第一个数比第二个数小，返回第2个数，

user: user-4
content: 建议自己写写，不是很难得～基础的题目，上课的时候在考虑怎么就业吗？
user-0 提问: 路过的大佬看一眼，求解答

回复:
user: user-1
content: 我来插一脚：CSDN论坛新手指南

user: user-2
content: 跟我没什么关系了，我去吃饭了。

user: user-0
content: 引用 1 楼 不闻窗外事的回复:因为你的if判断之前，sum已经加了num了，所以判断是0或者负的后，要把加的减去，主要是你程序写的不好，才需要这样 大佬，你太强了，秒答，膝盖留给你，祝天天开心！

user: user-3
content: 因为你的if判断之前，sum已经加了num了，所以判断是0或者负的后，要把加的减去，主要是你程序写的不好，才需要这样

user: user-4
content: #include<stdio.h>  int main() {     int num, sum=0;      for(int i; ;i++){         scanf("%d", &num);         if (num <= 0)             break;         if(num % 2 != 0)             sum+=num;     }      printf("%d", sum);      return 0; } 供参考～  先判断num是否为负数和0.然后在考虑是否为奇数～
user-0 提问: Lua require module, Erro:./common.lua: version mismatch in precompiled chunk

回复:
user: user-0
content: 问题解决了，分享给大家： 1、使用的lua版本不太对，使用的是5.1.4版本的，我的是最新的      主要是common.lua里边加载了dylib动态库，      而开发dylib的哥们儿使用的是5.1.4版本，所以我这儿怎么都不通过  2、加载dylib设置package路径时，应该使用package.cpath，  虽发错了位置，也给自己个交代吧。

user: user-0
content: 🙄是选错位置了，谁哪儿有答案

user: user-1
content: 是不是发错误位置了？这是C/C++问题吗？
user-0 提问: 编一个程序，能实现功能就行，周五要交作业啦

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html
user-0 提问: 看到一个位操作的代码中间有段没明白，有没有人帮忙解释一下

回复:
user: user-1
content: 2楼说的对，建议自己动手敲一遍。不想敲可以下载源码自己跑一下也行。  图片歪了。

user: user-0
content: 引用 2 楼 自信男孩的回复:如果可以，建议贴代码。可能会想到这是书本上的代码，我怎么（把源码）给贴出来。看书本上的代码 不如再加上输入到机器上，自己编译运行一下，另外，再改改，加一些调试信息，这样对源码可能会有 更深的认识，在输入到机器上时，你也会学到一些编程技巧等等。 晚上结帖。。。。。。。。。

user: user-0
content: 引用 2 楼 自信男孩的回复:如果可以，建议贴代码。可能会想到这是书本上的代码，我怎么（把源码）给贴出来。看书本上的代码 不如再加上输入到机器上，自己编译运行一下，另外，再改改，加一些调试信息，这样对源码可能会有 更深的认识，在输入到机器上时，你也会学到一些编程技巧等等。 大佬无处不在哈哈，我知道了，

user: user-0
content: 引用 1 楼 wowpH的回复:a?b:c  这是三目运算符，不是位操作。  若a为真，则返回b，否则返回c。  CSDN论坛新手指南 我有遵守吧，大佬"""

user: user-2
content: 如果可以，建议贴代码。可能会想到这是书本上的代码，我怎么（把源码）给贴出来。看书本上的代码 不如再加上输入到机器上，自己编译运行一下，另外，再改改，加一些调试信息，这样对源码可能会有 更深的认识，在输入到机器上时，你也会学到一些编程技巧等等。

user: user-1
content: a?b:c  这是三目运算符，不是位操作。  若a为真，则返回b，否则返回c。  CSDN论坛新手指南
user-0 提问: C语言输出9×9矩阵右下三角

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

user: user-2
content: N维 数组，每个元素是 a[i][j]  只输出 i+j>N的数据 for( int i=0;i<9;i++)    for(int j=0;j<9;j++)     {        if(i+j>=9)      cout>>a[i][j]; else   cout>>" ";    }

user: user-3
content: 楼上说的对，二维形状用两层for对应坐标输出就行

user: user-4
content: 好像两层for可以，具体的，可以在二维数组里先抹去左上三角，再输出。
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 楼 proorck2019的回复:for(i=0;i<N-1;i++) for(j=i+1;j<N;j++)     if(a[i]>a[j]){          t=a[i], a[i]=a[j], a[j]=t;     } 哥们你在好好想想 这能行吗

user: user-2
content: for(i=0;i<N-1;i++) for(j=i+1;j<N;j++)     if(a[i]>a[j]){          t=a[i], a[i]=a[j], a[j]=t;     }

user: user-3
content: int b[u]是错的 建议你的max2函数换个思路

user: user-2
content: 我记得排序用两层for就OK了，怎么搞的这么复杂？
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: 引用 2 楼 Eleven 的回复:1 获取输入的字符串数据 2 标准输出字符串数据 3 比较2个字符串的数据感谢！

user: user-0
content: 引用 1 楼 user-4 的回复:scanf(“%s”,地址值); 输入一个值，存入该地址    %s表示将输入的值按字符串的方式存入 解释语句printf("%s",地址值)  打印该值的内容，按字符串的方式打印 strcmp(str1，str2) 比较两个字符串str1和str2 如果str1和str2相同，返回0 如果 str1 < str2, 返回负数 str2 > str2， 返回正数谢谢！

user: user-2
content: 你还缺少一本文档，文档里都有。

user: user-3
content: 1 获取输入的字符串数据 2 标准输出字符串数据 3 比较2个字符串的数据

user: user-4
content: scanf(“%s”,地址值); 输入一个值，存入该地址    %s表示将输入的值按字符串的方式存入 解释语句printf("%s",地址值)  打印该值的内容，按字符串的方式打印 strcmp(str1，str2) 比较两个字符串str1和str2 如果str1和str2相同，返回0 如果 str1 < str2, 返回负数 str2 > str2， 返回正数
user-0 提问: 输入int类型数据m,n，计算m的n次幂，并输出

回复:
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循环比递归函数高效。 for(i=0,r=1;i<n;i++)     r*=m

user: user-3
content: double deep(double m, double n) {     if (n == 0)         return 1;     return m * deep(m, n - 1); } 这样更简洁一些～  引用 1 楼 user-5 的回复: #include<stdio.h>  double deep(double m, double n) {     if (n == 0)     {         return 1;     }     else     {         return m * deep(m, n - 1);     } }  int main(void) {     int m, n;     double ret;      scanf("%d%d", &m, &n);     ret = deep(m, n);     printf("ret = %lf", ret);      return 0; }

user: user-4
content: 需要考虑一下溢出的问题~

user: user-5
content: #include<stdio.h>  double deep(double m, double n) {     if (n == 0)     {         return 1;     }     else     {         return m * deep(m, n - 1);     } }  int main(void) {     int m, n;     double ret;      scanf("%d%d", &m, &n);     ret = deep(m, n);     printf("ret = %lf", ret);      return 0; }
user-0 提问: 这回为什么只能输出两个数？

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

user: user-2
content: 输入可能不正常吧。。。

user: user-0
content: 😭😭还是只有两个数。。迷

user: user-2
content: 嗯，看错了，先不交换，输出三个字符看看

user: user-0
content: 我给你看看流程图你就不会这么说了。。。可惜不能传照片，我手打你仔细看看吧 我是先比较ch1，ch2，两这者中小的一个给ch1，大的给ch2。 再将ch3与上一步得到的ch2比较，小的给ch2，大的给ch3。 再将ch1与上一步得到的ch2比较，较小的给ch1，大的给ch2。

user: user-2
content: 比如大的1传给2，2传给3或者相反。但你这个是大的都传给2，然后比较13，或者是小的都传给2，总之就是次序问题

user: user-0
content: 引用 1 楼 user-2的回复:你交换的方向不一致，然后同一个变量不需要自己给自己赋值 自己给自己赋值我知道可以省，你说的交换方向不一致是什么意思？

user: user-2
content: 你交换的方向不一致，然后同一个变量不需要自己给自己赋值
user-0 提问: 输出2－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: 首先要解决判断一个数是不是素数，再循环200次，每行输出五个是另一道题，难啊！

user: user-0
content: 嗯嗯                。。。。。。。。。。

user: user-3
content: 网上太多相关的介绍和代码了，建议自己动手查一查

user: user-4
content: 自己动手写一写，有问题再问。 CSDN论坛新手指南
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 楼 user-2的回复:需要了解一些调试手段，比如把问题隔离出来处理等等 谢谢你，我到处去看看

user: user-2
content: 需要了解一些调试手段，比如把问题隔离出来处理等等

user: user-0
content: 引用 1 楼 user-2的回复:出现什么错误？不能调试一下吗？ 我调试过了，是逻辑错误了，所以看不出来

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: 引用 6 楼 qq_45842206的回复:他们之间的转换关系是什么啊？ 楼主如果三个口袋，一个装满大米，一个装满大豆，还有一个空的，那么你有什么办法可以让那两个装满东西的口袋里面的东西掉个个吗？就是原先装大米的口袋装满玉米，装玉米的口袋装满大米

user: user-0
content: 他们之间的转换关系是什么啊？

user: user-2
content: 有的题目就是要设置一些奇葩的前提条件，什么不许用if不许用临时变量，笑话！不用if能做出什么事情来？有些东西只能私下里玩玩，拿出来推广就不对了

user: user-2
content: 而且，左右不就是多一个临时变量而已，为什么一定要避免呢？如果不用，代价更大。我们都应该知道一些把戏，都不是一定都要用。除非想参加混乱程序大赛

user: user-2
content: 虽然可以，但是不推荐使用，都是被谭浩强误导的，学编程不是玩把戏，等你们遇到坑的时候就会明白这句话的

user: user-3
content: 不用中间变量也是可以的

user: user-2
content: 好奇怪的问题啊，不用中间变量怎么交换，不要跟我说那些奇葩做法
user-0 提问: C语言求解:数据上传与下载

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

user: user-2
content: socket, 排序，不知道有没有gui?
user-0 提问: C语言程序设计大作业

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

user: user-2
content: 两百行其实做不了什么东西，可以写一点控制台游戏，或者文件处理项目

user: user-3
content: 找喜欢的做呗。做做小游戏就不错啊
user-0 提问: malloc申请内存后，整个程序运行结束后是什么情况。

回复:
user: user-1
content: 嗯，如果可以还是要学一下的，对自己有好处，你可以在C++ C# JAVA里面做一个选择，但最好不要排斥C

user: user-0
content: 引用 5 楼 SuperDay 的回复:为什么要转到JAVA，一门一门语言来搞定，学完C再学JAVA也不迟，个别能力超强另说了，可以同时学好几门语言。每个语言都有缺陷，学了一半放弃了，什么能学好呢？  以前学过C，后来学了JAVA，主要用来开发WEB，用的SSH框架，现在有个项目要用到C，

user: user-1
content: 为什么要转到JAVA，一门一门语言来搞定，学完C再学JAVA也不迟，个别能力超强另说了，可以同时学好几门语言。每个语言都有缺陷，学了一半放弃了，什么能学好呢？

user: user-0
content: 引用 3 楼 proorck2019 的回复:会被释放掉，这是操作系统自我保护的措施。发明操作系统时，还没有自动垃圾回收的技术。 如果你实在不喜欢，可以学java。  我只想搞明白这个问题，java的垃圾回收是由GC线程处理的，它不受程序员控制内存回收，确实是解放了程序员，提高了开发效率。

user: user-2
content: 会被释放掉，这是操作系统自我保护的措施。发明操作系统时，还没有自动垃圾回收的技术。 如果你实在不喜欢，可以学java。

user: user-0
content: 引用 1 楼 user-3 的回复:[quote=引用 楼主 weixin_40290083 的回复:] 在使用malloc申请堆内存时一直在强调，当所申请的内存不再使用时要使用free释放，否则会造成内存泄露。常见的示例就是在一个自定义函数fun1()中使用malloc申请内存，但是不调用free释放申请的内存，即使fun1()执行完成了，所申请的内存也不会被释放。我的问题是，main调用了fun1（），main和fun1()函数中也没有调用free，并且main执行完毕了，由malloc所申请的内存会被释放掉吗。 main执行完了退出了，系统会释放掉给进程分配的空间，不过这不是一个好习惯[/quote]  这倒是的，如果fun1在一个长期运行的循环中执行，那么就危险了。谢谢

user: user-3
content: 引用 楼主 weixin_40290083 的回复:在使用malloc申请堆内存时一直在强调，当所申请的内存不再使用时要使用free释放，否则会造成内存泄露。常见的示例就是在一个自定义函数fun1()中使用malloc申请内存，但是不调用free释放申请的内存，即使fun1()执行完成了，所申请的内存也不会被释放。我的问题是，main调用了fun1（），main和fun1()函数中也没有调用free，并且main执行完毕了，由malloc所申请的内存会被释放掉吗。 main执行完了退出了，系统会释放掉给进程分配的空间，不过这不是一个好习惯
user-0 提问: C语言数组问题，求大佬解答

回复:
user: user-1
content: 一起学习#include<stdio.h> #include<stdlib.h> void ss(int a[100],int n) { 	int i,j; 	for (i=0;i<n;i++) 		for (j=2;j<a[i];j++) 		{ 			if (a[i]%j==0) 			{ 				a[i]=0; 				break; 			} 		} } void px(int a[100],int n) { 	int i,j,t; 	for (i=0;i<n-1;i++) 		for(j=i+1;j<n;j++) 		{ 			if(a[i]>a[j]) 			{ 				t=a[i]; 				a[i]=a[j]; 				a[j]=t; 			} 		} } int main() { 	int a[100],i=0,n; 	printf("请输入整数的个数：\n"); 	scanf("%d",&n); 	for (i=0;i<n;i++) 		a[i]=rand()%81+10; 	ss(a,n); 	px(a,n); 	for (i=0;i<n;i++) 	{ 		if(a[i]!=0) 			printf("%d  ",a[i]); 		if((i+1)%5==0&&a[i]!=0) 			printf("\n"); 	} }

user: user-0
content: 当初自己确实太菜了，而且也啥也不懂23333

user: user-0
content: .   我就想问问第一个程序该怎么写，，，不是纠错啊啊啊啊

user: user-2
content: 提问的都是大爷了，这个自信男孩我看是态度最好的了

user: user-3
content: 引用 4 楼 Atanies 的回复:，，，，，，，我要是对了我还来这儿问么大哥，你错的是代码 结果你一行代码都不贴  问毛问哦

user: user-0
content: ，，，，，，，我要是对了我还来这儿问么大哥，

user: user-4
content: 引用 2 楼 Atanies 的回复:[quote=引用 1 楼 自信男孩的回复:]先试着写写，总不会一点都不会吧。 自己写过了，找答案来着[/quote] 把你写的贴出来，有什么问题吗？～

user: user-0
content: 引用 1 楼 自信男孩的回复:先试着写写，总不会一点都不会吧。 自己写过了，找答案来着

user: user-4
content: 先试着写写，总不会一点都不会吧。
user-0 提问: 这个程序怎么打啊（要求用递归函数）

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

user: user-0
content: 谢谢你的回复哈哈，因为截了下图

user: user-2
content: 你这图片怕有几万像素了吧。。。这么大 调正。 CSDN论坛新手指南
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: 这种笔记不要发在技术去区，可以写博客，blink或者发到非技术区
user-0 提问: c语言初学者

回复:
user: user-1
content: 记得结贴给分数啊。。。

user: user-0
content: 引用 1 楼 user-2 的回复：这种笔记不要发在技术去区，可以写博客，blink或者发到非技术区好的

user: user-2
content: 这种笔记不要发在技术去区，可以写博客，blink或者发到非技术区
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: 引用 4 楼 lin5161678 的回复:count多余  \n 和 ' ' 的三目多余  内层循环固定输出 10个  内层循环结束 直接换行就可以了 确实写多了。 #include <stdio.h> int main(void) {     int i, j;     for (i = 1; i < 10; ++i) {         for (j = 0; j < 10; ++j) {             printf("%d%d%d%d", i, j, j, i);         }         printf("\n");     }     return 0; }

user: user-3
content: 引用 2 楼 wowpH 的回复:另一种写法，供参考：  #include <stdio.h> int main(void) {     int i, j;     int count = 0;     for (i = 1; i < 10; ++i) {         for (j = 0; j < 10; ++j) {             printf("%d%d%d%d", i, j, j, i);             putchar(count < 9 ? ' ' : '\n');             count = (count + 1) % 10;         }     }     return 0; } count多余  \n 和 ' ' 的三目多余  内层循环固定输出 10个  内层循环结束 直接换行就可以了

user: user-4
content: #include <stdio.h> //#include <math.h>  int rt_revers(int num); int main() {      int i;      for (i = 1000; i < 10000; i++)         if (i == rt_revers(i))             printf("%d\t", i);      putchar(10); #if 0     int a,b,c,d;     int i;     for( i=1000;i<10000;i++)     {         a=i/1000;//千位         b=(i%1000)/100;//百位         c=(i%100)/10;//十位         d=i%10;    //个位         if(a==d&&b==c)             printf("%d \t",i);     } #endif     return 0; }  int rt_revers(int num) {     int new_num = 0;      while (num) {         new_num = new_num * 10 + num % 10;         num /= 10;     }      return new_num; }  可以针对任何整型数（注意int的值不要溢出）  #include <stdio.h> //#include <math.h>  int rt_revers(int num); int main() {      int i;      for (i = 1000; i < 10000; i++)         if (i == rt_revers(i))             printf("%d\t", i);      putchar(10);      return 0; }  int rt_revers(int num) {     int new_num = 0;      while (num) {         new_num = new_num * 10 + num % 10;         num /= 10;     }      return new_num; } 简洁版～

user: user-2
content: 另一种写法，供参考：  #include <stdio.h> int main(void) {     int i, j;     int count = 0;     for (i = 1; i < 10; ++i) {         for (j = 0; j < 10; ++j) {             printf("%d%d%d%d", i, j, j, i);             putchar(count < 9 ? ' ' : '\n');             count = (count + 1) % 10;         }     }     return 0; }

user: user-5
content: 有什么问题吗？
user-0 提问: 为什么永远都输出1 2 3

回复:
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: 引用 11 楼 wowpH 的回复:[quote=引用 7 楼 bsnow 的回复:] [quote=引用 6 楼 qq_45814010 的回复:] 字符可以直接参与比较大小吗？  可以的。 比如  A 的 ASCII 是 0x65 ,  a 的 ASCII 是 0x97。 所以 'a' - 'A' = 0x32  当然 'a' > 'A' 是 true[/quote]是十进制的65和97。不是十六进制的吧。[/quote]  是的，应该是十进制

user: user-3
content: 引用 7 楼 bsnow 的回复:[quote=引用 6 楼 qq_45814010 的回复:] 字符可以直接参与比较大小吗？  可以的。 比如  A 的 ASCII 是 0x65 ,  a 的 ASCII 是 0x97。 所以 'a' - 'A' = 0x32  当然 'a' > 'A' 是 true[/quote]是十进制的65和97。不是十六进制的吧。

user: user-3
content: 引用 3 楼 qq_45814010 的回复:好吧。。谢谢。想着都是ask码值，就都带了单引号ask码，，，

user: user-2
content: 引用 8 楼 qq_45814010 的回复:[quote=引用 7 楼 bsnow的回复:][quote=引用 6 楼 qq_45814010 的回复:] 字符可以直接参与比较大小吗？  可以的。 比如  A 的 ASCII 是 0x65 ,  a 的 ASCII 是 0x97。 所以 'a' - 'A' = 0x32  当然 'a' > 'A' 是 true[/quote] 那a＞A呢，关系运算中是按ASCll值比较的么？[/quote]  引用字符 必须加 ' ， 要不会编译出错（当然如果你把a和A 定义成变量就另当别论）。 你思考这样一个问题，如果 a或者A 不加'， 那编译器 该把它当字符还是变量呢？ 如果要消除歧义，是不是只能加 ' 呢？

user: user-0
content: 引用 7 楼 bsnow的回复:[quote=引用 6 楼 qq_45814010 的回复:] 字符可以直接参与比较大小吗？  可以的。 比如  A 的 ASCII 是 0x65 ,  a 的 ASCII 是 0x97。 所以 'a' - 'A' = 0x32  当然 'a' > 'A' 是 true[/quote] 那a＞A呢，关系运算中是按ASCll值比较的么？

user: user-2
content: 引用 6 楼 qq_45814010 的回复:字符可以直接参与比较大小吗？  可以的。 比如  A 的 ASCII 是 0x65 ,  a 的 ASCII 是 0x97。 所以 'a' - 'A' = 0x32  当然 'a' > 'A' 是 true

user: user-0
content: 字符可以直接参与比较大小吗？

user: user-4
content: 引用 3 楼 qq_45814010的回复:好吧。。谢谢。想着都是ask码值，就都带了单引号 单引号里应该放字符，你放了字符串，居然不报错，看来编译器喜欢你。

user: user-4
content: 引用 3 楼 qq_45814010的回复:好吧。。谢谢。想着都是ask码值，就都带了单引号 好像是ascii码，是不是。

user: user-0
content: 好吧。。谢谢。想着都是ask码值，就都带了单引号

user: user-5
content: 'ch1'是什么鬼？字符只能是一个，你这样写等于是'c'

user: user-6
content: 什么语法，把所有的'ch1' 'ch2' 'ch3'都去掉单引号
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-0
content: 引用 4 楼 SuperDay的回复:   晕，多大点事啊？？？ 没找到啊，。。。。。。。。

user: user-2
content: 晕，多大点事啊？？？

user: user-3
content: 引用 2 楼 weixin_45838504 的回复:[quote=引用 1 楼 SuperDay的回复:]楼主，板块最外层有个.NET技术板块，看得见吗？可以把帖子移动到那边去 怎么弄。。。我不会啊，。。[/quote] 重新去那边发贴吧

user: user-0
content: 引用 1 楼 SuperDay的回复:楼主，板块最外层有个.NET技术板块，看得见吗？可以把帖子移动到那边去 怎么弄。。。我不会啊，。。

user: user-3
content: 引用 4 楼 SuperDay 的回复:   晕，多大点事啊？？？ 学习了

user: user-2
content: 楼主，板块最外层有个.NET技术板块，看得见吗？可以把帖子移动到那边去