當前位置:編程學習大全網 - 編程軟體 - 編程輸入十個數 然後輸出它們加壹後的值

編程輸入十個數 然後輸出它們加壹後的值

1,main()

{int a[10],i,s;

s=0;

printf("input 10 number");

for(i=0;i<10;i++) scanf("%d",&a[i]);

for(i=0;i<10;i++) s+=a[i];

printf("%d",s);

}

2,

因為是對壹個字節操作,所以裏面的數數據只能為:00000000~11111111

可以先對這個數與01111110(十進制為126)進行與運算獲得中間六位的數據,存放到a

中,

再取這個數最高位並右移7位,到達把最高位提到最低位的目的,存放到b中

再取這個數最低位並左移7位,到達把最低位提到最高位的目的,存放到c中

最後將a,b,c三個數進行或運算,即可

針對壹個字節的操作壹定要先存放到無符號數據中。

這兒介入了位運算,我另外編了個函數輸出二進制形式的數據。程序經調試通過。

如操作數為: 10110110

則a 為 00110110

b 為 00000001

c 為 00000000

三者或運算為 00110111

程序如下:

void iden(unsigned int);

main()

{char ch;

unsigned int a,b,c,s,k;

/*scanf("%c",&ch);*/

ch='y';

k=ch;

a=k&126; /*應為126的二進制為01111110*/

b=(k&128)>>7;

c=(k&1)<<7;

s=a|b|c;

printf("before binary:");

iden(k);

printf("\n");

printf("after binary:");

iden(s);

printf("\n");

}

void iden(unsigned int c)

{int s1[8]={0},s2[8]={0};

int i=0,j=0;

unsigned int k;

k=c;

while(k!=0)

{s1[i++]=k%2;

k/=2;

}

i=7;

while(i>=0)

{s2[j++]=s1[i--];

}

for(i=0;i<8;i++) printf("%d",s2[i]);

printf("\n");

}

  • 上一篇:三色燈怎麽設置壹打開就是白燈
  • 下一篇:變速箱程序怎麽恢復出廠設置
  • copyright 2024編程學習大全網