c語言數組循環右移
1. c語言編寫程序,將一維數組中的元素向右循環移動N次
#include <stdio.h>
void move(int *a,int*b,int n)
{
for(int i=0,j=9;i!=10;++i,--j)
{
b[(a[j]+n)%10]=a[j];
}
printf("移動後: ");
for(int k=0;k!=10;++k)
printf("%d ",b[k]);
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b[10]={0};
int n;
printf("輸入移動位置數: ");
scanf("%d",&n);
move(a,b,n);
return 0;
}
(1)c語言數組循環右移擴展閱讀:
數組使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
2. c語言循環右移怎麼編
默認只有算術右移。 要循環右移需要把最低位保存下來, 然後賦值到最左。
unsignedintfunc(unsignedintn)
{
unsignedintv=n&1;
n>>=1;
if(v)n|=1<<(sizeof(unsignedint)-1);
returnn;
}