C语言中In[i / 8] >> (7 - i % 8)是什么意思?

作者&投稿:友博 (若有异议请与网页底部的电邮联系)
int i,a[8]在c语言中是什么意思~

int在C语言中是整型变量的定义,int i就是定义一个整数变量i,在接下来的使用中i都是整数,比如你可以i=1或者其他整数,如果你让i=1.1,那么系统会报错或者自动转为i=1;a[8]是数组,int a[8]就是定义一个最多储存8个整数的数组,数组下标从0到7,当然不一定存满,但最多存储8个整数。例如下图:

1.i = i+8,比如i= 0,i+=8,之后i=8;
2.i= i-4

看了眼觉得怪,然后试了下似乎并不能起到预想的作用
大致功能和想法我能分析出来
In[i / 8] 字符串中每个数应该是8个二进制代码组成,所以要输出的话,In[0]需要循环8次,取出每个二进制代码
>> (7 - i % 8)) 通过移位操作,提取这8个二进制值
但其中逻辑有问题,移位后,只要上一位是1,无论需要的这位是多少,都会输出1
你试试if ((In[i / 8] >> (7 - i % 8))%2)这样写看看是不是你要的结果

for
是一种循环语句
for
应该包含3个语句
可以为空
第一个是初始化条件
只执行一次
第二个是循环条件
满足条件才会继续循环
第三个是每次循环结束后都会执行的语句
一般是变量的增加,也可以不写,放到循环里写
所以这句话的意思就是
变量i
初值赋为
0
在i<8的情况下会进行循环
每次i自增1
那么进行了
0,1,……,6,7
8次循环
最后i=8
不满足条件
退出循环


顺平县19171311222: 定义一个求阶乘的函数,然后计算1! - 2!+3! - 4!+5! - 6!+7! - 8!+9!.C语言问题 -
戴尝任克: int fact(int n) {int m = 1;while(n>0){m*=n;n--;}return m; } int main() {int i, sum=0;for(i=1;i<=9;i++){if(i%2)sum+=fact(i);elsesum-=fact(i);}printf("1!容-2!+3!-4!+5!-6!+7!-8!+9!=%d\n", sum); }

顺平县19171311222: int i,a[8]在c语言中是什么意思 -
戴尝任克: int i,a[8] 是在一行代码里同时声明了两个变量. 一个变量是i,类型是整形 另一个变量是a,类型是整数数组(数组的每个元素是整形),且只能放8个整数.

顺平县19171311222: (C语言)关于统计一行数字字符中每个数字字符出现的次数. -
戴尝任克: 大部分错误都集在中stat方法中,如下:1 2 3 4 5 6 7 8 9 10voidstat(char*s,int*num) {inti;charch;ch=s[i]; //你上面只是定义了i,从未赋值,i的值就是一个随机数while((ch=getchar())!='\n') { //你前面的indata就已经读入数据到s中了,这里只...

顺平县19171311222: 在C语言中,十进制数47可等价地表示为? -
戴尝任克: 可以等价的表示为 int a = 47; int a = 0x31; char a = '1';

顺平县19171311222: C语言怎么判断我输入的5个字符中含有非数字字符? -
戴尝任克: 可以读入五个输入的字符,然后循环判断是否为数字.如果c是数字,那么必须满足 c>='0' && c <='9',反之则是不符合要求的.代码如下:12345678 intc[5]; inti; for(i = 0; i < 5; i ++) c[i] = getchar();//读入五个字符.for(i = 0; i < 5; i ++) if(c[i]<'0'|| c[i] >'9')break;//如果不符合,则退出循环.if(i == 5) printf("全部为数字字符\n");//如i为5,则为正常退出,不是通过break退出的,说明全是数字字符.elseprintf("存在不是数字字符的元素\n");

顺平县19171311222: C语言中的for语句和n++、++i 语句 -
戴尝任克: n++这种形式是后缀自增1运算,表示先使用n值,然后n=n+1自增1 ++i这种形式是前缀自增1运算,表示先对i进行i=i+1自增1,然后再使用i值 如果是单独执行这样的语句,两者没有区别,如:1 2 3for( i=0; i<10; ++i ) printf("i=%d\n", i );//输...

顺平县19171311222: &在c语言中什么意思 -
戴尝任克: 主要有两个意思: 1. 取地址符,用在指针表达式或输出变量地址时 例如 int a; &a就是表示变量a在内存中地址 2. 二进制位与位运算符 1&1=1 0&0=0 拓展资料:C语言主要特点: 1. C语言是高级语言.它把高级语言的基本结构和语句与低级...

顺平县19171311222: c语言中求100以内7的倍数中的最大值 -
戴尝任克: 12345678910 #include <stdio.h> intmain(void) { inti; for(i=100;i>0;i--) if(i%7==0) break; printf("100以内复制7的倍数的2113最5261大值4102是:1653%d\n",i); return0; }

顺平县19171311222: C语言怎样输入字母? -
戴尝任克: #include<stdio.h> #include<string.h> void main() {char ch[3]; //接收用户输入char sh[3]="you";printf("请输入you:");scanf("%s",ch);if(!strcmp(ch,sh))//相等返回0printf("1");elseprintf("0"); }

顺平县19171311222: C语言中一个程序, int i=8,j=9;printf("i=%%d,j=%%%d\n",i,j);为什么结果不是i=8,j=9???
戴尝任克: 当然不会是了,你写错了应该是printf("i=%d,j=%d\n",i,j);在C中%号后面跟转译字符你写的%%在控台中输出的将会是%望采纳

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网