用C语言把一个数组中的值按逆序重新存放?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言把一个数组中的值按逆序重新存放?相关的知识,希望对你有一定的参考价值。
输入几个数字不定,那几个数字不定。用C++的软件
楼主你好代码如下:
#include<stdio.h>
#define MAX 100
int main()
int a[MAX],n=0,i,j;
printf("请输入任意个数(用空格间隔每一个数 回车结束输入):\n");
do
scanf("%d",a+n);
n++;
while(getchar()!='\n');
j=n-1,i=0;
while(i<=j)//采用二分法逆序储存
int temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
j--;
for(j=0;j<n;j++)
printf("%d\n",a[j]);
希望能帮助你哈 参考技术A 可以用下面的方法实现,我的运行环境是vs2008,测试正常。
#include"stdafx.h" //不是vs环境的可以去除
#include<stdio.h>
#include<stdlib.h>
void*nizhi(int *newarry,int a)
int mid=0;
/*newarry=(int*)malloc(a*sizeof(int));
if(newarry==NULL)
printf("分配空间失败!");
exit(1);
*/
printf("请输入数组的元素,数字之间以空格分隔.\n");
for(int i=0;i<a;i++)
scanf("%d",&newarry[i]);
printf("你新建立的数组是:\n");
for(int i=0;i<a;i++)
printf("%d\t",newarry[i]);
for(int j=a-1,i=0;i<=j;i++,j--)
mid=newarry[i];
newarry[i]=newarry[j];
newarry[j]=mid;
printf("\n逆序后的数组为:\n");
for(int i=0;i<a;i++)
printf("%d\t",newarry[i]);
return newarry;
int _tmain(int argc, _TCHAR* argv[])//不是vs运行环境的话,自己修改成你使用的环境定义方式
int *arry,*p,n;
xunhuan: printf("请输入要建立的数组长度:");
scanf("%d",&n);
p=&n;
arry=(int*)malloc(n*sizeof(int));
if(arry==NULL)
printf("分配空间失败!");
return 0;
nizhi(arry,*p);
printf("\n循环执行:\n");
goto xunhuan;
return 0;
该程序可以循环执行,而且参数传递的是地址值,因此,你可以再次基础对nizhi函数中进行数组元素的增加、减少都是可以的,而且返回和最终存储都是修改后的数组,这也是使用指针的好处。你试试吧。 参考技术B 好做
将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。填空
#include<stdio.h>
main()
int i,b[10];
for(i=0;________;i++)
scanf("_________",________);
for(i=9;i>-1;i--)
printf("%5d",__________);
printf("\n");
#include<stdio.h>
int main()
int a[5]=8,6,5,4,1,i,n=5,temp;
for(i=0;i<n/2;i++)
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
for(i=0;i<n;i++)
printf("逆序后:\\n");
printf("%d\\t",a[i]);
return 0;
扩展资料:
数组使用规则:
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函数逐个对数组元素赋值。
参考资料:
百度百科-数组
这个题应该是最简单的C语言输入输出,以前循环逻辑控制了,要想学得好,要多上机编写程序练习~~
#include<stdio.h>
main()
int i,b[10];
for(i=0;i<10;i++)
scanf("%d",&b[i]);
for(i=9;i>-1;i--)
printf("%5d",b[i]);
printf("\\n");
参考技术B main(){int i,a[5];
for(i=0;i<=4;i++)
a[i]={8,6,5,4,1};
for(i=4;i>=0;i--)
{printf("%d",a[i]);}
printf("\n");
return 0;
} 参考技术C #include<stdio.h>
main()
int i,b[10];
for(i=0;i<10;i++)
scanf("%d ", &b[i]);
for(i=9;i>-1;i--)
printf("%5d", b[i]);
printf("\n");追问
5、输入年月日,输出这一天是本年度的第几天。
main()
int find(int x,int y,int z)
int i,t,s,days=0;
if(x%4==0) t=1;
else t=0;
for(i=1;i<y;i++)
if(i==2) s=2-t;
else s=0;
days=days+30+i%2-s;
days=days+z;
return days;
void main()
int year,month,date,day;
scanf("%d%d%d",&year,&month,&date);
day=find(year,month,date);
printf("这一天是本年的第%d 天\n",day);
以上是关于用C语言把一个数组中的值按逆序重新存放?的主要内容,如果未能解决你的问题,请参考以下文章