小编use*_*300的帖子

循环移位c

以下代码如何工作以及变量的含义:

y = (x << shift) | (x >> (sizeof(x)*CHAR_BIT - shift));
Run Code Online (Sandbox Code Playgroud)

我在循环转换文章中找到了但没有解释它是如何工作的.

c

26
推荐指数
3
解决办法
4万
查看次数

将特定字符从字符串复制到另一个字符串

让我说我有2个字符串

char str_cp[50],str[50];
str[]="how are you"  
Run Code Online (Sandbox Code Playgroud)

我想将第二个单词ex"are"放入另一个名为str_cp的字符串中,如果我使用的话

printf("%s ,%s",str,str_cp); 
Run Code Online (Sandbox Code Playgroud)

会是这样的

how are you 
are 
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?(我尝试过strncpy函数但它只能复制字符串beggining中的特定字符)有没有办法使用指向字符串第4个字​​符的指针并在strncpy函数中使用它来复制前3个字符但是开始点是第四个角色?

c

10
推荐指数
1
解决办法
6万
查看次数

除1或n总是返回0.0

我正在尝试计算,p1=(1/1)*(1/2)*...*(1/n)但有些事情是错误的并且printf给了我0.000...0

#include <stdio.h>

int main(void) {

    int i,num;
    float p3;

    do {
        printf ("give number N>3 : \n" );
        scanf( "%d", &num );
    } while( num <= 3 );

    i = 1;
    p3 = 1;  

    do {
        p3=p3*(1/i);
        printf( "%f\n",p3 );
    } while ( i <= num );

    printf("\nP3=%f",p3);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c floating-point integer floating-point-conversion

4
推荐指数
2
解决办法
2万
查看次数

malloc in for循环

我有一个问题......让我说我有以下部分代码:

int *a,*a1,*a2;
for (i=1; i<=2; i++) {
    a=malloc(sizeof(int));
    if (i==1) a1=a;
    else if (i==2) a2=a;
}
*a1=5;
*a2=4;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我使用printf打印a1和a2变量a1将得到值5而a2值为4?所以,如果我使用malloc来分配内存和该内存空间中的一个点并再次使用malloc来分配内存然后指向内存的不同部分,但内存的第一部分仍然存在?或者如果我再次使用malloc,它将擦除内存的第一部分,它将写入新的内存部分

c memory-management

2
推荐指数
1
解决办法
7555
查看次数

打印字母及其ascii代码

我尝试打印从A到Z以及从a到z及其ascii代码的所有字母,但当我尝试运行它时,我最终得到一个无限循环,那么错误在哪里?

#include <stdio.h>

int main(void) {
 int i;
 char ch_1,ch_2;

 for (ch_1='A'; ch_1<='Z'; ch_1++) printf("letter: %c ASCII code:%d\n",ch_1,ch_1);
 for (ch_2='a'; ch_1<='z'; ch_2++) printf("letter: %c ASCII code: %d\n",ch_2,ch_2);
}
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
1834
查看次数

奇怪的scanf问题在C中

比方说我用来scanf从键盘上读取一个字符.之后,我printf用来打印我刚读过的角色.

scanf("%c",&ch);
printf("%c",ch);
Run Code Online (Sandbox Code Playgroud)

scanf阅读角色的时候,我必须按回车继续并运行printf,对吧?

让我们说我ABCD用键盘进入.之后printf将打印A.

但是当我这样做时:

do {
   scanf("%c",&ch);
   printf("%c",ch);
} while (ch!='\n');
Run Code Online (Sandbox Code Playgroud)

并输入ABCD键盘,我认为printf必须打印A.因为A不是\n它会继续循环,对吗?

但不会这样,它会打印出来ABCD.为什么会这样?

c

0
推荐指数
1
解决办法
519
查看次数