数组编程练习(带答案)
- 格式:doc
- 大小:71.50 KB
- 文档页数:10
在开发的时候主方法之中的代码越少越好。
1、将一个给定的整型数组转置输出,
例如:源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1
2、现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:生活中的问题解决 = 程序中的解决;
1、确定出不为0的个数,这样可以开辟新数组;
2、从旧的数组之中,取出内容,并将其赋给新开辟的数组;
3、现在给出两个数组:
·数组A:“1,7,9,11,13,15,17,19:;·数组b:“2,4,6,8,10”
两个数组合并为数组c,按升序排列。
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。
第五章数组练习题及答案一、选择题1、判断字符串a和b是否相等,应当使用()A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))2、以下正确的定义语句是()A、int a[1][4]={1,2,3,4,5};B、float x[3][]={{1},{2},{3}};C、long b[2][3]={{1},{1,2},{1,2,3}};D、double y[][3]={0};3、以下各组选项中,均能正确定义二维实型数组a的选项是()A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}};C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};D、float a[3][4]; float a[3][ ]; float a[ ][4];4、下面程序的运行结果是()1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB#include "stdio.h"main(){ char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k]!='\0');k++){ switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。
C程序设计(数组)习题与答案C程序设计(数组)习题与答案数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。
掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。
1. 习题一:计算数组元素的和题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组int sum = 0; // 用于存储和的变量// 遍历数组,累加每个元素的值for (int i = 0; i < 5; i++) {sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;}```2. 习题二:查找数组中的最大值题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组int max = arr[0]; // 假设第一个元素为最大值// 遍历数组,比较每个元素的值与当前最大值的关系for (int i = 1; i < 7; i++) {if (arr[i] > max) {max = arr[i];}}printf("数组中的最大值为:%d\n", max);return 0;}```3. 习题三:查找数组中的特定元素题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。
解题思路:```c#include <stdio.h>int main() {int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素int found = 0; // 用于标记是否找到目标元素的变量// 遍历数组,比较每个元素的值与目标值的关系for (int i = 0; i < 6; i++) {if (arr[i] == target) {found = 1;break;}}if (found) {printf("数组中存在目标元素:%d\n", target);} else {printf("数组中不存在目标元素:%d\n", target);}return 0;}```4. 习题四:数组元素逆序排列题目描述:编写一个程序,将给定整型数组的元素逆序排列,并输出结果。
C程序常用编程(数组)1、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
求该数组的最大值、最小值、总和和平均值并输出。
3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
编程将逆序数组输出。
5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按照原来的规律将其插入并输出。
6、用数组输出Fibonacci数列的前40项7、用筛选法求100以内的素数8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。
9、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。
10、编程输出杨辉三角(要求输出10行)11、编程输入5阶魔方阵。
12、找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
13、输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。
14、有一行电文,按照下列规律译成密码:A → Z a → zB → Y b → yC → X c → x……非字母不变。
15、编写程序,将两个字符串连接起来,不用strcat函数。
14、编写程序实现strcpy函数功能。
16、编写程序实现strncpy函数功能。
17、编程实现strcmp函数功能。
18、编程实现strlen函数功能。
java数组习题答案Java数组习题答案在学习Java编程语言的过程中,数组是一个非常重要的概念。
它是一种用来存储相同类型数据的数据结构,可以帮助我们更有效地管理和操作数据。
在学习数组的过程中,我们经常会遇到一些习题,通过解答这些习题可以加深对数组的理解,提高编程能力。
下面我们来看一些常见的Java数组习题及其答案:1. 如何声明一个数组?答:可以使用以下语法来声明一个数组:```javaint[] arr = new int[5];```2. 如何初始化一个数组?答:可以使用以下语法来初始化一个数组:```javaint[] arr = {1, 2, 3, 4, 5};```3. 如何访问数组中的元素?答:可以使用以下语法来访问数组中的元素:```javaint[] arr = {1, 2, 3, 4, 5};System.out.println(arr[2]); // 输出3```4. 如何计算数组中元素的和?答:可以使用以下代码来计算数组中元素的和:```javaint[] arr = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i];}System.out.println("数组元素的和为:" + sum);```5. 如何找出数组中的最大值和最小值?答:可以使用以下代码来找出数组中的最大值和最小值:```javaint[] arr = {1, 2, 3, 4, 5};int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}System.out.println("数组中的最大值为:" + max);System.out.println("数组中的最小值为:" + min);```通过解答这些习题,我们可以更加深入地理解和掌握Java数组的相关知识,提高自己的编程能力。
实验6 数组程序设计(解答)1.改错题(1)sy5_1.c改正后的程序:#include<stdio.h>void main(){int n=10,i,sum=0;int a[10]; //a[n]改为a[10]for(i=0;i<10;i++){scanf("%d",&a[i]); //scanf("%d",a[i]);sum=sum+a[i];}printf("sum=%d\n",sum);}(2)sy5_2.c改正后的程序:#include<stdio.h>void main( ){ char a[20]="wel",b[]="come"; //a[]="wel"int i,n=0;while(a[n]!='\0') n++; //!a[n]for(i=0;b[i]!='\0';i++)a[n+i]=b[i];a[n+i]='\0'; //加入语句printf("%s\n",a);}(3)sy5_3.c改正后的程序:#include <stdio.h>void main(){int a[2][3],b[2][3],c[2][3],i,j;for ( i = 0; i<2;i++) //for ( i = 1; i<2;i++)for( j=0; j<3; j++) //for( j=1; j<3; j++)scanf("%d",&a[i][j]); // scanf("%d",a[i][j])for ( i = 0; i<2; i++) //for ( i = 1; i<2;i++)for( j =0; j<3; j++) //for( j=1; j<3; j++)scanf("%d",&b[i][j]); //scanf("%d",b[i][j]) for ( i =0; i<2; i++) //for ( i = 1; i<2;i++) for( j =0; j<3; j++) //for( j=1; j<3; j++)c[i][j]=a[i][j]+b[i][j];for ( i = 0; i<2; i++) //for ( i = 1; i<2; i++) { for( j=0; j<3; j++) //for( j=1; j<3; j++)printf("%3d",c[i][j]);printf("\n");}}2.程序填空(1)sy5_4.c存盘。
实验5 数组班级:学号:姓名:日期:一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法;(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法(特别是排序算法)。
二、实验内容1.阅读下面程序,写出程序运行结果,并且上机进行验证。
(1) #include "stdio.h"void main(){int i,n[4]={0,0,0,0};for(i=1;i<4;i++){if (i==3) break;n[i]=n[i-1]+1;}printf("n[i-1]=%d n[i]=%d\n",n[i-1],n[i]);}(2)#include "stdio.h"void main(){char ch[]={'0','1','2','3','4','5','6','7','8','9'};int i=0,m=2,r,x=42; char b[80];while(x){r=x%m; x/=m;b[i++]=ch[r];}for(--i;i>=0;i--)printf("%c",b[i]);printf("\n");}(3)#include "stdio.h"void main(){int a[][3]={9,7,5,3,1,2,4,6,8};int i,j,s1=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++){if(i==j) s1=s1+a[i][j];if(i+j==2) s2=s2+a[i][j];}printf("s1=%d s2=%d",s1,s2);}(4)#include "stdio.h"void main(){int r[5]={1,2,3,4,5};int i,j,a[5][5];for(i=0;i<=4;i++){ for(j=i;j<=4;j++)a[i][j]=r[j-i];for(j=0;j<i;j++)a[i][j]=r[i-j];}for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%2d",a[i][j]);printf("\n");}}2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。
1、编写程序,产生50个互不相同的10~99的随机整数,统计各数值段(10~19,20~29,….80~89,90~99)有多少个数并输出。
提示:可另用数组b来存各分数段的人数,并用b(1)存10~19分的人数, b(2)存20~29分的人数,… b(9)存90~99分的人数。
关键代码:k = Int(a(i) / 10)b(k) = b(k) + 1Private Sub Form_Click()Dim a(1 To 50) As Integer, i As IntegerDim b(1 To 9) As Integer, k As IntegerFor i = 1 To 50a(i) = Int(Rnd * 90 + 10)Print a(i);If i Mod 10 = 0 Then Printk = Int(a(i) / 10)b(k) = b(k) + 1Next iPrintFor i = 1 To 9Print (i * 10) & "~" & (i * 10 + 9) & "的学生人数:" & b(i) Next iEnd Sub2、设有如下两组数据。
编写一个程序,把两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,…,25+80,并把相应的结果放入第三个数组中,最后输出第三个数组的值。
A 2 8 7 6 4 28 70 25B 79 27 32 41 57 66 78 80关键代码:c(i) = a(i) + b(i)Private Sub Form_Click()Dim a, b, c(7)a = Array(2, 8, 7, 6, 4, 28, 70, 25)b = Array(79, 27, 32, 41, 57, 66, 78, 80)For i = 0 To 7c(i) = a(i) + b(i)Next iFor i = 0 To 7Print c(i);Next iEnd Sub3、产生10个互不相同的10~99的随机整数,将这10个值交换并输出,交换规则如下:第1个与第10个交换第2个与第9 个交换第3个与第8 个交换第4个与第7 个交换第5个与第6 个交换Private Sub Form_click()Dim a(1 To 10) As IntegerPrint "原始数组如下:"For i = 1 To 10a(i) = Int(Rnd * 90 + 10)Print a(i);Next iPrint '换行For i = 1 To 5 '注意:只能交换5次temp = a(i): a(i) = a(11 - i): a(11 - i) = tempNext iPrint "交换之后的数组如下:"For i = 1 To 10Print a(i);Next iEnd Sub4、在文本框中输入一串字符,统计各字母出现的次数并将结果显示在图片框中(不区分字母的大小写)。
实验八数组、指针和函数综合编程练习打印最高分和学号假设每班人数最多不超过40人,具体人数由键盘输入,试编程打印最高分及其学号。
程序1:用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分和学号。
程序2:用二维数组和指针变量作函数参数,编程打印3个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。
程序3:用指向二维数组第0行第0列元素的指针作函数参数,编写一个能计算任意m 行n列的二维数组中的最大值,并指出其所在的行列下标值的函数,利用该函数计算3个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。
程序4:编写一个能计算任意m行n列的二维数组中的最大值,并指出其所在的行列下标值的函数,利用该函数和动态内存分配方法,计算任意m个班、每班n个学生的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。
实验授课提示:熟悉数组、指针和函数的综合编程方法。
初学者通常都会对指针望而生畏,其实只要从原理上掌握了指针的概念,它就会变得如此简单而易用。
首先,指针不过是C语言提供的一种比较特殊的数据类型而已,定义为指针类型的变量与其它类型的变量相比,主要差别在于指针变量的值是一个内存地址。
其次,在C语言中,指针和数组之间有着密不可分的关系,不带下标的数组名就是一个指针,它代表数组元素的首地址,只要让声明为相同基类型的指针变量指向数组元素的首地址,那么对数组元素的引用,既可以用下标法,也可以用指针法,用指针法存取数组比用数组下标存取数组速度快一些。
反之,任何指针变量也可以取下标,可以像对待数组一样来使用。
虽然多维数组的地址概念稍微麻烦些,但只要知道它的元素在内存中是如何存放的,使用也就不难了,由于C语言中的多维数组都是按列存放的,因此,用指针法引用时,必须知道数组的一行有多长(即列的维数)。
在某种意义上,二维数组类似于一个由指向行数组的指针构成的一维指针数组。
实验15、16 、17 数组、指针和函数综合编程练习打印最高分和学号假设每班人数最多不超过40人,具体人数由键盘输入,试编程打印最高分及其学号。
用二维数组和指针变量作函数参数,编程打印3个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。
#include <stdio.h>#define CLASS 3#define STU 4int FindMax(int score[CLASS][STU], int m, int *pRow,int *pCol);main(){int score[CLASS][STU], i, j, maxScore, row, col;printf("Please enter score:\n");for (i=0; i<CLASS; i++){for (j=0; j<STU; j++){scanf("%d", &score[i][j]); /*输入学生成绩*/}}/*计算最高分及其所在班号和学号*/maxScore = FindMax(score, CLASS, &row, &col);printf("maxScore = %d, class = %d, number = %d\n",maxScore, row+1, col+1); }/* 函数功能:计算任意m行STU列的二维数组中的最大值、并指出其所在行列下标值函数入口参数:二维整型数组score,存储学生的成绩整型变量m,二维整型数组的行数,代表班级数函数出口参数:整型指针变量pRow,指向数组最大值所在的行整型指针变量pCol,指向数组最大值所在的列函数返回值:数组元素的最大值*/int FindMax(int score[][STU], int m, int *pRow, int*pCol){int i, j, maxScore;maxScore = score[0][0]; /*置初值,假设第一个元素值最大*/*pRow = 0;*pCol = 0;for (i = 0; i<m; i++){for (j = 0; j<STU; j++){if (score[i][j] > maxScore){maxScore = score[i][j]; /*记录当前最大值*/*pRow = i; /*记录行下标*/*pCol = j; /*记录列下标*/} /*if结束*/} /*内层for结束*/} /*外层for结束*/return (maxScore); /*返回最大值*/}程序3参考答案:#include <stdio.h>#define CLASS 3#define STU 4int FindMax(int *p, int m, int n, int *pRow, int *pCol); main(){int score[CLASS][STU], i, j, maxScore, row, col;printf("Please enter score:\n");for (i=0; i<CLASS; i++){for (j=0; j<STU; j++){scanf("%d", &score[i][j]); /*输入学生成绩*/}}/*计算最高分及其所在班号和学号*/maxScore = FindMax(*score, CLASS, STU, &row, &col);printf("maxScore = %d, class = %d, number = %d\n",maxScore, row+1, col+1); }/*函数功能:计算任意m行n列的二维数组中的最大值、并指出其所在的行列下标值函数入口参数:整型指针变量p,指向一个二维整型数组的第0行第0列整型变量m,二维整型数组的行数整型变量n,二维整型数组的列数函数出口参数:整型指针变量pRow,指向数组最大值所在的行整型指针变量pCol,指向数组最大值所在的列函数返回值:数组元素的最大值*/int FindMax(int *p, int m, int n, int *pRow, int *pCol) {int i, j, maxScore;maxScore = p[0]; /*置初值,假设第一个元素值最大*/*pRow = 0;*pCol = 0;for (i = 0; i<m; i++){for (j = 0; j<n; j++){if (p[i*n+j] > maxScore){maxScore = p[i*n+j]; /*记录当前最大值*/*pRow = i; /*记录行下标*/*pCol = j; /*记录列下标*/} /*if结束*/} /*内层for结束*/} /*外层for结束*/return (maxScore); /*返回最大值*/}程序运行结果如下:Please enter score:81 72 73 64↙65 86 77 88↙91 90 85 92↙max = 92, class = 3, number = 4程序4参考答案:#include <stdio.h>#include <stdlib.h>int FindMax(int *p, int m, int n, int *pRow, int *pCol); main(){int *pScore, i, j, m, n, maxScore, row, col;printf("Please enter array size m,n:");scanf("%d,%d", &m, &n); /*输入班级数m和学生数n*//*申请m*n个sizeof(int)字节的存储空间*/pScore = (int *) calloc(m*n, sizeof (int));if (pScore == NULL){printf("No enough memory!\n");exit(0);}printf("Please enter the score:\n");for (i = 0; i<m; i++){for (j = 0; j<n; j++){scanf("%d", &pScore [i*n+j]); /*输入学生成绩*/}}maxScore = FindMax(pScore, 3, 4, &row, &col); /*调用函数FindMax*//*输出最高分max及其所在的班级和学号*/printf("maxScore = %d, class = %d, number = %d\n", maxScore, row+1, col+1);free(pScore); /*释放向系统申请的存储空间*/}/* 函数功能:计算任意m行n列的二维数组中的最大值,并指出其所在行列下标值函数入口参数:整型指针变量p,指向一个二维整型数组的第0行第0列整型变量m,二维整型数组的行数整型变量n,二维整型数组的列数函数出口参数:整型指针变量pRow,指向数组最大值所在的行整型指针变量pCol,指向数组最大值所在的列函数返回值:数组元素的最大值*/int FindMax(int *p, int m, int n, int *pRow, int *pCol) {int i, j, max;max = p[0]; /*置初值,假设第一个元素值最大*/*pRow = 0;*pCol = 0;for (i = 0; i<m; i++){for (j = 0; j<n; j++){if (p[i*n+j] > max){max = p[i*n+j]; /*记录当前最大值*/*pRow = i; /*记录行下标*/*pCol = j; /*记录列下标*/} /*if结束*/} /*内层for结束*/} /*外层for结束*/return (max); /*返回最大值*/}程序运行结果如下:Please enter array size m,n:3,4↙Please enter the score:81 72 73 64↙65 86 77 88↙91 90 85 92↙maxScore = 92, class = 3, number = 4。
数组编程练习1、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
解:#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");return 0;}2、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
求该数组的最大值、最小值、总和和平均值并输出。
解:#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i,max,min,sum;float ave;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");max=a[0];min=a[0];sum=0;for(i=0;i<N;i++){sum=sum+a[i];if(a[i]>max){max=a[i];}if(a[i]<min){min=a[i];}}ave=(float)sum/N;printf("max=%d,min=%d,sum=%d,ave= %.2f\n",max,min,sum,ave);return 0;}3、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
解:(冒泡法)#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i,j,t;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=1;i<N;i++){for(j=0;j<N-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("the sorted array a:\n");for(i=0;i<N;i++)printf("%4d",a[i]);printf("\n");return 0;}另解:(选择法)#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i,j,min_i,t;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=0;i<N-1;i++){min_i=i;for(j=i+1;j<N;j++){if(a[j]<a[min_i]){min_i=j;}}t=a[i];a[i]=a[min_i];a[min_i]=t;}printf("the sorted array a:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return 0;}另解:(比较法)#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i,j,t;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=1;i<N;i++){for(j=i;j<N;j++){if(a[j]<a[i-1]){t=a[i-1];a[i-1]=a[j];a[j]=t;}}}printf("the sorted array a:\n");for(i=0;i<10;i++){printf("%4d",a[i]);}printf("\n");return 0;}4、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
编程将逆序数组输出。
解:#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],b[N],i,t;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=0;i<N;i++){b[i]=a[N-1-i];}printf("the new array:\n");for(i=0;i<N;i++){printf("%4d",b[i]);}printf("\n");return 0;}另解:#include<stdio.h>#include<math.h>#define N 10int main(){int a[N],i,t;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=0;i<N/2;i++){t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}printf("the new array:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");return 0;}5、产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按照原来的规律将其插入并输出。
#include<stdio.h>#include<math.h>#define N 10int main(){int a[N+1],i,j,t,n;for(i=0;i<N;i++){a[i]=rand()%100;}printf("array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");for(i=1;i<N;i++){for(j=0;j<N-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("the sorted array a:\n");for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");printf("please input n:\n");scanf("%d",&n);if(n>a[N-1]){a[N]=n;}else{for(i=0;i<N;i++){if(a[i]>n){for(j=N;j>i;j--){a[j]=a[j-1];}a[j]=n;break;}}}printf("the second sorted array a:\n");for(i=0;i<N+1;i++){printf("%4d",a[i]);}printf("\n");return 0;}6、用数组输出Fibonacci数列的前40项解:#include<stdio.h>#define N 40int main(){int i;int f[N]={1,1};for(i=2;i<N;i++){f[i]=f[i-2]+f[i-1];}for(i=0;i<N;i++){printf("%12d",f[i]);if((i+1)%5==0){printf("\n");}}return 0;}7、用筛选法求100以内的素数解:#include<stdio.h>#include<math.h>#define N 100int main(){int a[N+1],i,j,n=0;for(i=1;i<=N;i++){a[i]=i;}a[1]=0;for(i=2;i<=N;i++){for(j=2;j<=(int)sqrt(i);j++){if(a[i]%j==0){a[i]=0;}}}for(i=1;i<=N;i++){if(a[i]!=0){printf("%4d",a[i]);n++;if(n%10==0){printf("\n");}}}printf("\n");return 0;}8、产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。