《C++从入门到精通》实例--数组

                  《C++从入门到精通》实例--数组

// 范例8-1:数组元素赋值并输出各个元素的值 程序  
//实现"数组元素赋值并输出各个元素的值"
//2018.3.5
#include <iostream>
using namespace std;

int main()
{
    int array[6], i;
    for (i = 0; i < 6; i++)
    {
        array[i] = 6 - i;
    }
    for (i = 0; i < 6; i++)
    {
        cout << array[i] << " ";
    }
    system("pause");
    return 0;
}
//范例8-2:冒泡排序应用 程序
//实现输入8个整数,由小到大排序后输出
//2018.3.5
#include <iostream>
using namespace std;

int main()
{
	int sort[8],i,j,t;
	cout << "请输入8个整数" << endl;
	for (int i = 0; i < 8; i++)
	{
		cin >> sort[i];
	}
	for (i = 1; i <= 7; i++)
	{
		for (j = 0; j < 8 - i; j++)
		{
			if (sort[j]>sort[j + 1])
			{
				t = sort[j];
				sort[j] = sort[j + 1];
				sort[j + 1] = t;
			}
		}
	}
	cout << "排序之后的顺序为:" << endl;
	for (i = 0; i < 8; i++)
	{
		cout << sort[i]<<" ";
	}
	system("pause");
	return 0;
}
//范例8-3:选择排序应用
//输入8个整数,由小到大排序后输出
//2018.3.5
#include <iostream>
using namespace std;

int main()
{
	int sort[8], i, j, k,t;
	cout << "请输入8个整数" << endl;
	for (i = 0; i < 8; i++)
	{
		cin >> sort[i];
	}
	for (i = 0; i < 7; i++)           //选择排序算法开始,8个数需要7次比较
	{
		k = i;                        //假设下标为i的元素较小
		for (j = i + 1; j < 8; j++)  //找到值最小的元素的下标并赋值给k
		{
			if (sort[j] < sort[k])
				k = j;
		}
		if (k != i)                  // sort[i]与sort[k]互换
		{
			t = sort[i];
			sort[i] = sort[k];
			sort[k] = t;
		}

	}
	cout << "排序之后的顺序为:" << endl;
	for (i = 0; i < 8; i++)
	{
		cout << sort[i] << " ";
	}
	system("pause");
	return 0;
}
//范例8-6:输出Fibonacci数列的前20项
//2018.3.5
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int Fabi[20] = { 1, 1 };
	int i;
	Fabi[0] = 1;
	Fabi[1] = 1;
	for (i = 2; i < 20; i++)
	{
		Fabi[i] = Fabi[i - 1] + Fabi[i - 2];
	}
	for (i = 0; i < 20; i++)
	{
		cout << setw(8) << Fabi[i];
		if ((i+1) % 4 == 0)
			cout << endl;
	}
	cout << endl;
	system("pause");
	return 0;
}

setw()

c++程序里面经常见到下面的头文件#include <iomanip>,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)

//范例8-7:计算3个学生个人的平均成绩
//2018.3.5
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	float Score[3][3] = { { 85, 95, 88 }, { 95, 78, 92 }, { 71, 83, 80 } };
	float sum, ave[3] = {0};
	for (int i = 0; i < 3; i++)
	{
		sum = 0;
		for (int j = 0; j < 3; j++)
		{
			sum = sum + Score[i][j];
		}
		ave[i] = sum / 3;
	}
	cout << "三个学生的平均成绩分别为:" << endl;
	for (int k = 0; k < 3; k++)
	{
		cout << setprecision(4) << ave[k] << endl;
	}

	system("pause");
	return 0;

注:

setprecision()

//实例8-8:将矩阵中的元素全部向右平移一列,最后一列移至第1列
// 12  58  9
// 24  37  1
//2018.3.5
#include <iostream>
using namespace std;

int main()
{
	int i,j,t;
	int a[2][3] = { 12, 58, 9, 24, 37, 1 };
	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 3; j++)
		{
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
	cout << "元素全部向右平移一列,最后一列移至第1列后为:" << endl;

	for (i = 0; i < 2; i++)
	{
		t = a[i][0];
		a[i][0] = a[i][2];
		a[i][2] = a[i][1];
		a[i][1] = t;
	}
	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 3; j++)
		{
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
	system("pause");
	return 0;
}
//实例8-9:从键盘输入20个整形数据存放至数组array中,求其中的最大值和最小值并输出
//2018.3.5
#include <iostream>
using namespace std;

int main()
{
	int array[20];
	int i,j,max,min;
	cout << "请输入20个整形数据存放至数组array:" << endl;
	for (i = 0; i < 20; i++)
	{
		cin >> array[i];
	}
	for (j = 0; j < 19; j++)
	{
		if (array[j]>array[j + 1])
		{
			max = array[j];
			min = array[j+1];
		}
		else
		{
			max = array[j+1];
			min = array[j];
		}
	}
	cout << "10个数中最大值为:" << max << endl;
	cout << "10个数中最小值为:" << min << endl;
	system("pause");
	return 0;

}
//实例8-10:求一个4*4的整形矩阵对角线元素之和
//2018.3.5
//问题:如果输入个数错误不能报错
#include <iostream>
using namespace std;

#include<iostream>
using namespace std;
int main()
{
	int i, j;
	int sum1 = 0;
	int sum2 = 0;
	int a[4][4];
	cout << "请输入4*4数组的值:" << endl;
	for (i = 0; i<4; i++)
	{
		cout << "输入第" << i << "行:";
		for (j = 0; j<4; j++)
		{
			cin >> a[i][j];
		}
	}

	for (i = 0; i<4; i++)
	{
		for (j = 0; j<4; j++)
		{
			cout << a[i][j] << "  ";
		}
		cout << endl;
	}


	for (i = 0; i<4; i++)
	{
		sum1 = sum1 + a[i][i];    //正对角线之和
	}

	for (i = 0; i <= 3; i++)
	{
		sum2 = sum2 + a[i][3 - i]; //反对角线之和
	}
	cout << "4*4的数组的正对角线为:" << sum1 << endl;
	cout << "4*4的数组的反对角线为:" << sum2 << endl;
	system("pause");
	return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值