博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验2 C++数组与指针
阅读量:6625 次
发布时间:2019-06-25

本文共 2377 字,大约阅读时间需要 7 分钟。

一.实验目的:

    1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。

    2. 掌握字符数组和字符串函数的使用。

    3. 通过实验进一步掌握指针的概念,会定义和使用指针变量。

    4. 能正确使用数组的指针和指向数组的指针变量。

    5. 能正确使用字符串的指针和指向字符串的指针变量。

    6. 能正确使用引用型变量。

二.实验内容:

  1. 运行调试第5章编程示例5-3,5-4,5-5扑克发牌程序;完成练习题5.3.1,5.4.1, 5.5.1和7.5.2;
  2. 运行调试第6章编程示例6-3数组排序器;完成以下练习:
    1. 改进sort函数;
    2. 用vector改造程序,使其支持变长数组;
    3. 用char类型来改造程序具有更好输入方式,使其能一次性输入多个数组元素;
    4. 用string类型来改造程序具有更好输入方式,使其能一次性输入多个数组元素;

三.示例代码:

  1.第5章编程示例5-3扑克发牌程序:

#include 
#include
#include
#include
using namespace std;int rand_0toN1(int n);void draw_a_card();char *suits[4] = {"hearts", "diamonds", "spades", "clubs"};char *ranks[13] = {"ace", "two", "three", "four", "five","six", "seven", "eight", "nine","ten", "jack", "queen", "king" };int main() {int n, i;srand(time(NULL)); // Set seed for random numbers.while (1) {cout << "Enter no. of cards to draw (0 to exit): ";cin >> n;if (n == 0)break;for (i = 1; i <= n; i++)draw_a_card();}return 0;}// Draw-a-card function// Performs one card-draw by getting a random 0-4 and a random// 0-12. These are then used to index the string arrays, ranks// and suits.//void draw_a_card() {int r; // Random index (0 thru 12) into ranks arrayint s; // Random index (0 thru 3) into suits arrayr = rand_0toN1(13);s = rand_0toN1(4);cout << ranks[r] << " of " << suits[s] << endl;}// Random 0-to-N1 Function.// Generate a random integer from 0 to N-1.//int rand_0toN1(int n) {return rand() % n;}

  

  2.第6章编程示例6-3数组排序器:

#include 
using namespace std;void sort(int n);void swap(int *p1, int *p2);int a[10];int main () {int i;for (i = 0; i < 10; i++) {cout << "Enter array element #" << i << ": ";cin >> a[i];}sort(10);cout << "Here are all the array elements, sorted:" << endl;for (i = 0; i < 10; i++)cout << a[i] << " ";cout << endl;system("PAUSE");return 0;}// Sort array function: sort array named a, having n elements.// void sort (int n) {int i, j, low;for(i = 0; i < n - 1; i++) {// This part of the loop finds the lowest// element in the range i to n-1; the index// is set to the variable named low.low = i;for (j = i + 1; j < n; j++)if (a[j] < a[low])low = j;// This part of the loop performs a swap if// needed.if (i != low)swap(&a[i], &a[low]);}}// Swap function.// Swap the values pointed to by p1 and p2.//void swap(int *p1, int *p2) {int temp = *p1;*p1 = *p2;*p2 = temp;}

  

 

转载于:https://www.cnblogs.com/opengl/p/6531522.html

你可能感兴趣的文章
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>
SQL Server数据导入导出技术概述与比较
查看>>
format的用法
查看>>
DHCPv6 server port and DHCPv6 client port
查看>>
10个最佳的触控手式的JavaScript框架(转)
查看>>
BitmapFactory.Options避免 内存溢出 OutOfMemoryError的优化方法
查看>>
Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
查看>>
DNGuard 免费的DotNet加密保护工具 V1.0
查看>>
编程中的命名设计
查看>>
easyui form validate总是返回false原因
查看>>
在(CListView)列表视图中添加右键菜单的方法
查看>>
打SharePoint 2010 SP1后访问用户配置文件同步服务应用程序出错的解决办法
查看>>
推荐《HeadFirst设计模式》
查看>>
Android中的onActivityResult和setResult方法的使用
查看>>
word双栏排版,最后一页由于分节符造成最后一页是空白页,删除分节符双栏就变成了单栏...
查看>>
手机web不同屏幕字体大小高度自适应
查看>>
服务器端口及连接及应用程序间的关系
查看>>
Android监听HOME键的最简单的方法
查看>>
Java 数组
查看>>
inotify+rsync实现实时同步
查看>>