以下代码如何工作以及变量的含义:
y = (x << shift) | (x >> (sizeof(x)*CHAR_BIT - shift));
Run Code Online (Sandbox Code Playgroud)
我在循环转换文章中找到了但没有解释它是如何工作的.
让我说我有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个字符但是开始点是第四个角色?
我正在尝试计算,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) 我有一个问题......让我说我有以下部分代码:
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,它将擦除内存的第一部分,它将写入新的内存部分
我尝试打印从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) 比方说我用来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
.为什么会这样?