用c语言编写一程序,接收从键盘上输入的整数i,将数组循环左移i位

来自:    更新日期:早些时候
【C语言】编写程序,将一维数组中的元素向右循环移动N次。~

  程序如下:
  #include #include
  main()  {
   int *a,n,N,i,j,tmp;
   printf("输入数组元素个数:");
   scanf("%d",&n);
   a=(int*)malloc(sizeof(int)*n);
   printf("输入数组元素:");
   for(i=0;i<n;i++)
   {
   scanf("%d",&a[i]);
   }
   printf("输入循环移动的位数:");
   scanf("%d",&N);
   printf("移位前数组:");
   for(i=0;i<n;i++)
   {
   printf("%d ",a[i]);
   }
   printf("
");
   for(i=0,j=n-1;i<j;i++,j--)
   {
   tmp=a[i];
   a[i]=a[j];
   a[j]=tmp;
   }
   for(i=0,j=N-1;i<j;i++,j--)
   {
   tmp=a[i];
   a[i]=a[j];
   a[j]=tmp;
   }
   for(i=N,j=n-1;i<j;i++,j--)
   {
   tmp=a[i];
   a[i]=a[j];
   a[j]=tmp;
   }
   printf("移位后数组:");
   for(i=0;i<n;i++)
   {
   printf("%d ",a[i]);
   }
   printf("
");
   free(a);
}
运行截图:



#include
#define N 10
void fun(int *a,int n,int x) { int i,j,k;
for ( i=0;i<x;i++ ) { k=a[0]; for ( j=0;j<n-1;j++ ) a[j]=a[j+1]; a[n-1]=k; }
}
void main() { int a[N],i,x;
printf("Enter %d integers: ",N); for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
printf("Enter x: "); scanf("%d",&x);
fun(a,N,x);
printf("After Circle left shift %d bit: ",x); for ( i=0;i<N;i++ ) printf("%d ",a[i]);
printf("
");
}

# include"stdio.h"

void main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10},b[10];

int i,j,k;

printf("移位前: ");

for(k=0;k<10;k++)

printf("%d ",a[k]);

printf("
");

printf("Input i: ");

scanf("%d",&i);

j=i%10;

for(k=0;k<10;k++)

{

if(j==10)

j=0;

b[k]=a[j++];

}

for(k=0;k<10;k++)

a[k]=b[k];

printf("移位后: ");

for(k=0;k<10;k++)

printf("%d ",a[k]);

printf("
");

}



思路:可以定义两个数组a和b,以及整数i,数组a用来存放原始数据,数组b用来存放移动过后的数据,依次把a的第i位到结束位置的数存放到b中,再把a的0位置到i位置数存放到b中,最终的b就是数组循环左移i位的最终结果。

//参考代码:
#include<math.h>
#include<stdio.h>
int main()
{
int a[6]={1,2,3,4,5,6},b[6],i,j;
i=2;
for(j=0;j<6;j++){
b[j]=a[(i+j)%6];
}
for(j=0;j<6;j++)
printf("%d ",a[j]);
printf("
");
for(j=0;j<6;j++)
printf("%d ",b[j]);
return 0;
}
/*
输出: 
1 2 3 4 5 6
3 4 5 6 1 2
*/


#include <stdio.h>

int main()
{
int a[]={1,2,3,4,5,6};
int n,i,len=6;
//输入数n
scanf("%d" , &n);
//左移n次
for ( i=0;i<n;i++)
{
int t=a[0] ,j; //保存首位
for( j=1;j<len;j++ ) //将数组从第二位开始左移
a[j-1]=a[j] ;
a[len-1]=t ; //原首位放到最后一位
}
//输出
for ( i=0;i<len;i++)
printf("%d " , a[i] );
printf("\n");
return 0;
}


用c语言编写一程序,接收从键盘上输入的整数i,将数组循环左移i位视频

相关评论:
  • 18320624444用C语言编写程序从键盘输入一个正整数数n,输出n!
    花陆转include <stdio.h>int Func(int n){if(n < 2)return 1;else return n*Func(n-1);} void main(){int n =0,m=0;printf("请输入一个正整数:")scanf("%d",&n);m=Func(n);printf("%d!=%d\\n",n,m);} 在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数...

  • 18320624444c语言从键盘接收任意十个小数,按从小到大的顺序依次进行排列,并输出排 ...
    花陆转include<stdio.h> void main(){ float a[10],k;int i,j;for(i=0;i<=9;i++)scanf("%f",&a[i]);for(i=0;i<=9;i++)for(j=i+1;j<=9;j++)if (a[i]>a[j]){ k=a[i];a[i]=a[j];a[j]=k;} for(i=0;i<=9;i++)printf("%f ",a[i]);} ...

  • 18320624444scanf是什么意思
    花陆转详细解释:1. scanf的基本含义 scanf是“scan format”的缩写,中文可译为“扫描格式”。它是C语言中的一个非常重要的函数,主要用于从标准输入设备读取并格式化数据。2. scanf的功能 该函数可以根据指定的格式,接收从键盘输入的数据。这些数据的类型可以是整型、浮点型、字符型等。通过scanf,程序员可以...

  • 18320624444C语言:编写程序统计从键盘输入的字符串s中各元音字母(即A.E.U.I.O...
    花陆转include "stdio.h"int count(char c[], char p){ int i, count = 0;for (i = 0; c[i] != '\\0'; i++)if (c[i] == p || c[i] == p + 32)count++;return count;} int main(void){ int i;char c[50];int b[5] = { 0 };gets(c);printf("A个数%d\\n", ...

  • 18320624444C语言 这是一个很简单的题目,给定2个整数A和B,请输出A+B的和。_百度...
    花陆转include int main(){ int a,b;scanf("%d%d",&a,&b);printf("%d\\n",a+b);return 0;}

  • 18320624444C语言编写程序,把从键盘输入的一个字符串的小写字母转换成大写字母,大 ...
    花陆转include "stdio.h"int main(){ char ch[100]={0};int i;printf("请输入一个字符串:");gets(ch);for(i=0;ch[i]!='\\0';i++)if(ch[i]>='a' && ch[i]<='z')ch[i]+='A'-'a';else if(ch[i]>='A' && ch[i]<='Z')ch[i]+='a'-'A';printf("字符串的小写...

  • 18320624444编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排...
    花陆转int strcmp(const char *s1,const char *s2);这个传的是指针,不是字符

  • 18320624444c语言从键盘输入字符串的步骤是什么?
    花陆转2.接下来在项目中新建C语言程序文件。3

  • 18320624444用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字...
    花陆转程序如下:include <stdio.h> int main(){ char ch;scanf("%c",&ch);printf("%c",ch-'a'+'A');return(0);} 示例一:include<stdio.h> int main(){ char ch;scanf("%c",&ch);printf("Letter %c converted into a letter %c!",ch,ch-32);\/\/大写字母ASCII码比小写字母小32 ...

  • 18320624444用C语言编写一个程序:从键盘上输入一个数字m,输出n的值,n满足条件:n...
    花陆转include <stdio.h> double fun(int n) \/*考虑到有些数的阶乘值很大,可能会突破long的范围,设为double类型*\/ { if(n==0) return 1;else return n*fun(n-1);} int main(int argc, char *argv[]){ int m,n;printf("请输入一个数字:");scanf("%d",&m);printf("输出:\\n"...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网