用c语言编写一程序,接收从键盘上输入的整数i,将数组循环左移i位
程序如下:
#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位视频
相关评论:
花陆转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()中接收键盘输入整数...
花陆转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]);} ...
花陆转详细解释:1. scanf的基本含义 scanf是“scan format”的缩写,中文可译为“扫描格式”。它是C语言中的一个非常重要的函数,主要用于从标准输入设备读取并格式化数据。2. scanf的功能 该函数可以根据指定的格式,接收从键盘输入的数据。这些数据的类型可以是整型、浮点型、字符型等。通过scanf,程序员可以...
花陆转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", ...
花陆转include int main(){ int a,b;scanf("%d%d",&a,&b);printf("%d\\n",a+b);return 0;}
花陆转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("字符串的小写...
花陆转int strcmp(const char *s1,const char *s2);这个传的是指针,不是字符
花陆转2.接下来在项目中新建C语言程序文件。3
花陆转程序如下: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 ...
花陆转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"...