c语言 数组a[n], 实现 a[n]到a[2]赋值给a[n-1]到a[1]

数组较大n=400000 如果直接用如下for循环来赋值会耗费大量时间
.... ....
for(i=0;i<n-1;i++)
{
a[i]=a[i+1]
}
.... ...
太耗时间了,有没有高手给指点下新的方法

int t[][N]和int (*t)[N],表示的意义是一样的,都是说t是一个指针,
指向一个包含N个元素的整型数组。
现写一小程序,作用是按行输出二维数组的各个元素
#include<stdio.h>
#include<conio.h>
#define N 5 //列数
void printArray(int (*a)[N],int rows)//运行过后再改为int a[][N]试下
{
for(int i=0;i<rows;i++)
{
for(int j=0;j<N;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");//换到下一行
}

}
int main()
{
int a[3][5]={{1,2,3},{3,4,5,6},{5,6,7,8,9}};
//int **b=a;这个赋值不行,因为a是int*[5] 类型
//int (*b)[5]=a;这个可以运行通过
printArray(a,3);
return 0;
}
我用的编译器是C-free,希望这个解释对你有用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-12
#include<stdio.h>
#define SIZE 10
void main()
{
int i;
char a[SIZE],b='1';
for(i=0;b!='\n';i++)
scanf("%c%c",&a[i],&b);
a[i]='\0';
printf("\n");
for(i=0;a[i]!='\0';i++)
printf("%c ",a[i]);
}
相似回答