C语言实验数组

桂 林 理 工 大 学
实 验 报 告
实验名称 数组 日期 2018年 12月28日
一、 实验目的:

  1. 掌握一维数组和二维数组的定义、输入输出方法;掌握对数组成员的访问方法。
  2. 了解字符数组的使用,初步掌握常用的字符串函数的使用方法。
  3. 掌握一些与数组有关的算法,如查找和排序。
  4. 进一步加强程序和调试能力。
    二、实验环境:
    Visual C++

三、实验内容:
(写出主要的内容)

  1. 编写程序,实现对一维数组的输入和输出功能。
#include<stdio.h>
int main()
{
	int a[10],i;
	for(i=0;i<10;i++)
	{
	scanf("%d",&a[i]);
	printf("%d ",a[i]);}
	return 0;
}

输入1 2 3 4 5 6 7 8 9 10
输出1 2 3 4 5 6 7 8 9 10
2. 将一组数组的值进行逆置。

#include<stdio.h>
int main()
{
	int a[5],i;
	for(i=0;i<5;i++)
	scanf("%d",&a[i]);
	for(i=4;i>=0;i--)
	printf("%d ",a[i]);
	return 0;
}

输入1 2 3 4 5
输出5 4 3 2 1
3. 定义存放10个整数的一维数组,并对数组中各元素的值进行初始化(为简单问题,数组中各元素的值无重复出现的现象),从键盘输入一个整数X,在数组中查找是否有与X相等的值存在,若存在,则输出该元素的下标,若不存在,则输出“not found!”。

#include<stdio.h>
int main()
{
	int a[10],i,x;
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	scanf("%d",&x);
	for(i=0;i<10;i++)
	if(x==a[i])
	{
	printf("%d",i);break;}
	if(i>=10) 
	printf("not found");
	return 0;
}

输入1 2 3 4 5 6 7 8 9 0
5、11
输出4、not found!
4. 用冒泡排序法对一个整数数组进行升序排序。

#include<stdio.h>
int main()
{
	int a[10],i,j,t;
	printf("input 10 numbers:\n ");
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	printf("\n");
	for(j=0;j<9;j++)
	for(i=0;i<9-j;i++)
	if(a[i]<a[i+1])
	{t=a[i];a[i]=a[i+1];a[i+1]=t;
	}
	printf("the bigger numbers:\n");
	for(i=0;i<10;i++)
	printf("%d ",a[i]);
	printf("\n");
	return 0;
}

input 10 numbers:
2 6 4 5 1 3 0 7 9 8

the bigger numbers:
9 8 7 6 5 4 3 2 1 0
5. 求一个二维数组的主对角线之和。
6. 输出杨辉三角。
7. 求一个N*N二维数组中每一列的最大值,用一个一维数组装最大值。

#include<stdio.h>
#define N 3
int main()
{
	int i,j;
	int a[N][N],max[N];
	for(i=0;i<N;i++)
	{
	for(j=0;j<N;j++)
	{
	scanf("%d",&a[i][j]);
	printf("%4d",a[i][j]);
	}
	printf("\n");}
	for(j=0;j<N;j++)
	max[j]=a[0][j];
	for(i=0;i<N;i++)
	for(j=0;j<N;j++)
	if(max[j]<a[i][j]) max[j]=a[i][j];
	for(j=0;j<N;j++)
	pfintf("%d ",max[j]); 
	return 0;
}

四、心得体会:
1.通过该次的上机能较好掌握编程的基本方法
2.通过比较不同的程序的不同理解了程序的作用

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值