C语言--随机生成一个数组并逆置输出
来源:互联网 发布:java string 转list 编辑:程序博客网 时间:2024/05/17 03:36
方案一:直接使用数组
思路:随机生成一个数组,倒序输出
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int main (void)
{
int i,n,j;
printf("Enter a number n : ");
scanf("%i",&n);
int a[n];
srand((unsigned)time(NULL));
for (i = 0 ;i < n; i++)
a[i] = rand()%100+1;
for (i = 0 ;i < n; i++)
printf("****");
printf("\n");
for (i = 0 ;i < n; i++)
printf("%4i",a[i]);
printf("\n");
for (i = 0 ;i < n; i++)
printf("****");
printf("\n");
for (j = n-1 ;j >= 0; j--)
printf("%4i",a[j]);
printf("\n");
return 0;
}
测试:
[root@security Gcc]# ./a.out
Enter a number n : 10
****************************************
79 77 38 80 25 20 37 22 46 97
****************************************
97 46 22 37 20 25 80 38 77 79
[root@security Gcc]# ./a.out
Enter a number n : 20
********************************************************************************
18 83 61 1 87 94 34 56 84 87 88 73 5 80 2 82 3 57 65 97
********************************************************************************
97 65 57 3 82 2 80 5 73 88 87 84 56 34 94 87 1 61 83 18
方案一的改进,使用函数调用:
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int n,i;
int main (void)
{
printf("Enter a number n : ");
scanf("%i",&n);
int a[n];
Create(a,n);
PrintLine();
PrintArray(a,n);
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int n,i;
int main (void)
{
printf("Enter a number n : ");
scanf("%i",&n);
int a[n];
Create(a,n);
PrintLine();
PrintArray(a,n);
PrintLine();
PrintArrayInvert(a,n);
return 0;
}
int Create(int *array , int n)
{
srand((unsigned)time(NULL));
for (i = 0 ; i<n ;i++)
array[i] = rand()%100+1;
}
void PrintLine(void)
{
for (i = 0 ; i < n;i++)
printf("****");
printf("\n");
}
int PrintArray(int *array , int n )
{
for (i = 0 ; i < n ;i++)
printf("%4i",array[i]);
printf("\n");
}
int PrintArrayInvert(int *array , int n)
{
for (i = n-1 ; i >= 0 ;i--)
printf("%4i",array[i]);
printf("\n");
return 0;
}
测试结果:
[root@security Gcc]# vim Invert_Array-2.c
[root@security Gcc]# gcc -w Invert_Array-2.c
[root@security Gcc]# ./a.out
Enter a number n : 12
************************************************
16 50 43 8 7 14 30 72 73 19 54 35
************************************************
35 54 19 73 72 30 14 7 8 43 50 16
方案二:使用指针将原数组逆置新数组
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int n,i;
int main (void)
{
printf("Enter a number a : ");
scanf("%i",&n);
int a[n];
CreateArray(a,n);
PrintArray(a,n);
PrintLine();
ArrayInvert(a,n);
PrintArray(a,n);
return 0;
}
int CreateArray(int *array, int n )
{
srand((unsigned)time(NULL));
for (i = 0 ; i < n; i++)
array[i] = rand()%100+1;
}
int PrintArray(int *array , int n)
{
for (i = 0 ; i < n; i++)
printf("%4i",array[i]);
printf("\n");
}
void PrintLine()
{
for (i = 0 ; i < n; i++)
printf("****");
printf("\n");
}
int ArrayInvert(int *array , int n)
{
int m,temp ,*p,*q,*j;
m = (n-1)/2;
p = array ; q = array+n-1; j = array + m;
for ( ; p < q ; p++,q--)
{
temp = *p;
*p = *q;
*q = temp;
}
}
测试:
[root@security Gcc]# gcc -w Invert_Array-3.c
[root@security Gcc]# ./a.out
Enter a number a : 3
15 34 25
************
25 34 15
[root@security Gcc]# ./a.out
Enter a number a : 10
65 73 12 31 19 86 56 96 37 52
****************************************
52 37 96 56 86 19 31 12 73 65
[root@security Gcc]# ./a.out
Enter a number a : 8
68 53 23 70 34 80 68 63
********************************
63 68 80 34 70 23 53 68
- C语言--随机生成一个数组并逆置输出
- 1,随机一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 【二维数组】声明一个二维数组,为该数组随机赋值,并输出该数组
- c语言:输出一个数组,判断是否存在问题,若有,请找出问题并改正
- C语言读写随机生成数组到文件
- 关于生成一个随机数组
- C实例---生成随机数组
- // 1、输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中最大值
- 3.输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 随机打印字符串数组并排序输出
- c语言_指针引用数组元素并打印输出
- C语言中如何定义动态二维数组并输出
- HDU1129
- asp.net mvc 调用C++编写的64位的dll引发System.BadImageFormatException
- linux 常用网络命令
- 工作中写过的烂sql
- 【Android SDK Manager】Android SDK Manager更新速度慢的一种解决方法
- C语言--随机生成一个数组并逆置输出
- HDU1693 Eat the Trees
- SYN-PROXY
- 利用fs.readdir()函数访问服务器指定目录里的内容
- Jedis常见操作
- ecshop几个主要目录的简要说明
- oracle自增字段设置
- 解决生成的saiku文件读取中文乱码的问题
- linux 设置SSH验证后还是无法连接上