‘壹’ 将一个一维数组中的值按逆序存放,并输出。
#include<iostream.h>
void main()
{
int a[6]={1,2,3,4,5,6},temp;
for(int i=0;i<=5;i++)
{if(i!=5)
cout<<a[i]<<' ';
else
cout<<a[i]<<endl;}
for(i=0;i<=2;i++)
{temp=a[i];a[i]=a[5-i];a[5-i]=temp;}
for(int j=0;j<=5;j++)
{if(j!=5)
cout<<a[j]<<' ';
else
cout<<a[j]<<endl;}
}
这才是逆序存放,你那只是逆序输出,存储顺序是没变的
‘贰’ 编程实现将一个一维数组中的10个数逆序存放,将前5个元素与后5个元素对换。求各路神仙教教我怎么编写吧
#include <stdio.h>
void main(){
int num[10],temp.i,j;
for(i=0;i<10;i++){
prntf("请输入第%d个数:",(i+1));
sanf("%d",&num[i]);
}
for(i=0;i<10;i++){
for(j=0;j<10-i;j++){
if(num[j]<num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
printf("该数组逆序排序为:");
for(i=0;i<10;i++){
if(i<9){
printf("%d,",num[i]);
}else{
printf("%d",num[i]);
}
}
for(i=0;i<10;i++){
temp=num[i];
num[i]=num[i+4];
num[i+4]=temp;
}
}
printf("该数组前五项和后五项交换后:");
for(i=0;i<10;i++){
if(i<9){
printf("%d,",num[i]);
}else{
printf("%d",num[i]);
}
}
}
‘叁’ 求将一个一维数组中的元素逆序存放,一维数组长度用#define N ()自定。
#include<stdio.h>
#define N 10
int main(void)
{
int a[N],t;
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
i=0,j=n-1;
while(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
‘肆’ C语言编写程序,将一个一维数组的值按逆序重新存放。
#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("%d ",a[i]);
}
system("pause");
return 0;
}
(4)将一维数组中元素逆序存储扩展阅读:
选择排序
主要思想就是,基本上默认数组中第一个元素为最大(最小)值,之后将这个元素和后面的每个元素都进行比较,以由大到小排序为例,当第一个值遇到比其大的,就进行交换。这样第一轮过后,第一位就是最大的。
接着进行第二轮,由第二个数开始逐个比较,遇到比第二个数大的进行交换,这样第二轮之后第二个数就是第二大的了,以此类推,不断进行选择,最后完成排序。
void selectSort(int numbers[], int length) {
for (int i = 0; i < length; i++) {
for (int j = i + 1; j < length; j++) {
if (numbers[i] < numbers[j]) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
}
int main(int argc, const char * argv[]) {
int myArray[] = {42, 7, 1, -3, 88};
int length = sizeof(myArray) / sizeof(myArray[0]);
selectSort(myArray, length);
for (int i = 0; i < length; i++) {
printf("%i ", myArray[i]);
}
return 0;
}
当第一个数来比较的时候,i = 0,那么j应该等于i + 1,因为第一个数要和第二个数开始比,并且比较length - 1次;当i = 1时,j = 2,并且比较length - 2次,以此类推;上面写的是由大到小排序。
‘伍’ C语言中:将一维数组中的n(n<=50)个数按逆序存放。怎么编程
思路就是将
数组中第一个和最后一个换位置
第二个和倒数第二个换位置
以此类推
源代码如下:
#include<stdio.h>
int main(){
int n; //n个数字
int i; //循环变量
int num[50];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&num[i]);
for(i=0;i<n/2;i++){
int t; //交换值的中间变量
t=num[i];
num[i]=num[n-i-1]; //注意是n-i后还要-1
num[n-i-1]=t; //因为当n为5的时候,num[0]对应的是[4]而不是[5]
}
for(i=0;i<n;i++){
printf("%d ",num[i]);
}
return 0;
}
‘陆’ c 将一维数组 逆序存储 并输出。
main()
{
int i,j,n,t;
int d[n];
printf("input n:");
scanf("%d",&n); /*先确定数组长度*/
printf("input d[n]:");
for(i=0;i<n;i++)
scanf("%d",&d[i]); /*输入数组*/
for(i=0,j=n-1;i<=(n-1)/2;i++, j--) /*i从小到大,j从大到小*/
{t=d[j];
d[j]=d[i];
d[i]=t;
}
for(i=0;i<n;i++)
{printf("%d",d[i]);}
}
‘柒’ 将一个数组中的元素按逆序存放,程序填空
程序代码补全后如下:
#include <stdio.h>
#define N 7
main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf(" the origanal array: ");
for (k=0;k<N;k++)
printf("%4d",a[k]);
for (k=0;k<N/2;k++) /*填循环控制变量递增值*/
{
s=a[k];
a[k]=a[N-1-k];/*填对应位置数组元素互换*/
a[N-1-k]=s;
}
printf(" the changed array: ");
for (k=0;k<N;k++)
printf ("%4d",a[k]);/*填输出语句*/}
数组中的元素
数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。数组元素并非只能是基元数据类型,还可以是结构、枚举或类。
以上内容参考:网络-数组
‘捌’ 一维数组的定义与引用 编写程序,将一个整型数组的全部元素逆序存储。即若原来数组元素分别为1,2,3
#include<stdio.h>
#defineN10
intmain(void)
{
inta[N];
inti,temp;
printf("Inputnumber: ");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
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("%-2d",a[i]);
return0;
}