1. 用c语言将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8.
#include<stdio.h>
int main()
{
int a[20]={1,0},i,n,j;
printf("请输入数组元素的个数:");
scanf("%d",&n);
printf("请输入数组元素: ");
for(i=0;i<n;i++)
scanf("%d",&a<i>);
for(i=0;i<n/2;i++)
a<i>=a[n-1-i];
printf("逆序存放后的数组: ");
for(i=0;i<n;i++)
printf("%d",a<i>);
return 0;
}
(1)c语言数组转换顺序扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
2. c语言编程:将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,3,要求改为3,4,5
1、首先以一个数组变量和一个数组长度变量。
3. C语言一个二维数组如何转换成一个新的一维数组
当然可以了。
例如:
#include<stdio.h>voidmain(){inti,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i<2;i++)for(j=0;j<2;j++){b[k]=a[i][j];k++;}for(k=0;k<4;k++)printf("%d",b[k]);}
运行结果:
就是将一个2×2的二维数组的值按顺序赋给一个一维数组。
4. C语言:读入一个整型数组,把它们的次序颠倒过来。 急求!
for
(i=0;i<n;i++);
scanf("%d",&a[i]);
for(i=0;i<n;i++)这一句的后面不该有分号,如果有分号,就循环执行完,却没有任何操作。此时,i已经递增为n,scanf("%d",&a[i]);a[n]已经是数组越界,所以就不会有任何结果。因此,最终答案是去掉for
(i=0;i<n;i++);后面的分号。
5. C语言中,将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求 改为:1,4,
#include<stdio.h>
int main()
{
int a[5]={8,6,5,4,1};
int temp,i=0,j=0;
for(i=0;i<2;i++)
{
temp=a[i];
a[i]=a[4-i];
a[4-i]=temp;
} //将第一个和最后一个值交换,思路就是这样
for(i=0;i<5;i++){
printf("%d ",a[i]);
}
return 0;
}
(5)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。
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
网络-数组
6. c语言求数组元素交换次序
假定数据长n,输入一个整数m,
1、使数组的后n-m个元素移到前边,前m-1个元素在数组中从最后位置倒序排列
#include
"stdio.h"
main()
{
int
i,n,m,t,j;
int
d[200];
printf("\n输入n的值(n<200):");
scanf("%d",&n);
for(i=0;i<n;i++)d[i]=i;
printf("\n输入m的值(m<200):");
scanf("%d",&m);
printf("\n输出调整前的数据:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
//调整程序开始
for(i=0;i<m;i++)
{//n-m个数前移了
t=d[0];
for(j=1;j<n;j++)d[j-1]=d[j];
d[n-1]=t;
}
for(i=0;i<m/2;i++)
{//倒序
t=d[n-1-i];
d[n-1-i]=d[m+i];
d[m+i=t;
}
printf("\n输出调整后的数据:\n");
for(i=0;i<n;i++)printf("%d
",d[i];
}
7. C语言,颠倒数组元素顺序
int rev_intary(int v[],int n)
{
int i;
printf("{");
for(i=0;i<n,i++)
{
printf("%d, ",v[n-i-1]);
}
printf("}");
}
上面这段程序只是把它倒过来打印出来,毕竟我看你也没说要返回一个倒过来的数组返回
8. C语言怎样用数组把6个整型数按从小到大的顺序输出
C语言实现将数组的六个元素按从小到大的顺序输出,可以采用内部排序算法对数组的元素进行排序,然后输出排序后的数组,就可以得到按从小到大的顺序输出。
以快速排序为例的排序代码:
void quickSort(int a[],int l,int r) {
if(l>=r)
return;
int i = l;
int j = r;
int key = a[l];//选择第一个数为key
while(i<j) {
while(i<j && a[j]>=key)//从右向左找第一个小于key的值
j--;
if(i<j) {
a[i] = a[j];
i++;
}
while(i<j && a[i]<key)//从左向右找第一个大于key的值
i++;
if(i<j) {
a[j] = a[i];
j--;
}
}
a[i] = key;
quickSort(a, l, i-1);//继续排左部分,递归调用
quickSort(a, i+1, r);//继续排右部分,递归调用
}
int main() {
int a[]= {12,4,132,55,46,232};//随机数组
int i,n = sizeof(a)/sizeof(a[0]);//获取数组大小
quickSort(a,0,n-1);//快速排序函数入口
for(i = 0; i < n; i ++)//输出排序后的结果
printf("%d ",a[i]);
return 0;
}
(8)c语言数组转换顺序扩展阅读:
排序算法的评价标准:
1、时间复杂度,即从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间度量。
2、空间复杂度,就是从序列的初始状态经过排序移位变换的过程一直到最终的状态所花费的空间开销。
3、使用场景,排序算法有很多,不同种类的排序算法适合不同种类的情景,可能有时候需要节省空间对时间要求没那么多,反之,有时候则是希望多考虑一些时间,对空间要求没那么高,总之一般都会必须从某一方面做出抉择。
4、稳定性,稳定性是不管考虑时间和空间必须要考虑的问题,往往也是非常重要的影响选择的因素。
基本的内部排序:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序。
参考资料来源:网络-排序算法
9. c语言 数组顺序后移
把一个整数按大小顺序插入已排好序的数组中。
为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。
main()
{
int i,j,p,q,s,n,a[11]=;
for(i=0;i<10;i++)
{ p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j])
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s>=i;s--) a[s+1]=a[s];
break;}
a[i]=n;
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("\n");
}
本程序首先对数组a中的10个数从大到小排序并输出排序结果。然后输入要插入的整数n。再用一个for语句把n和数组元素逐个比较,如果发现有n>a[i]时,则由一个内循环把i以下各元素值顺次后移一个单元。后移应从后向前进行(从a[9]开始到a[i]为止)。 后移结束跳出外循环。插入点为i,把n赋予a[i]即可。 如所有的元素均大于被插入数,则并未进行过后移工作。此时i=10,结果是把n赋于a[10]。最后一个循环输出插入数后的数组各元素值。
程序运行时,输入数47。从结果中可以看出47已插入到54和 28之间。
将一个数组中的值按逆序重新存放.例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8.
void converse(int *arr,int len)
{
int mid,i,t;
mid=len/2;
for(i=0;i<=mid;i++)
{
t=arr[i];
arr[i]=arr[len-i-1];
arr[len-i-1]=t;
}
}
10. C语言,将数组中两个顺序表的位置互换
可以让数组进行转置来实现,参考如下:
public class TestTransposition {
int col;
int row;
/**转换方法 将一个数组进行转置
* 原理很简单
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;>amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到转置数组,应该调用上面的转置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println("");
// }
//若只是想输出得到效果 这应该是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;i<in[0].length;i++){
for(int j=0;j<in.length;j++){
System.out.print(in[j][i]);
}
System.out.println("");
}
}
/*a[2][3]---->a[3][2]
* a[0][0]---->a[0][0]
* a[0][1]---->a[1][0]
* a[0][2]----->a[2][0]
* a[1][0]---->a[0][1]
* a[1][1]---->a[1][1]
* a[1][2]----->a[2][1]
*/
//故此 初步想法应是通过反向循环,即先循环列,在循环行来实现。