计算机科学-第2周 数组初练-题目

原创 2014年03月07日 09:37:21

《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597


练习一:下面的程序,输出了52张扑克牌(如图),请补充完整程序。

#include <stdio.h>
int main( )
{
    char c[4]= {'H','S','D','C'};
    int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13};
    int i,j;
    for(i=0; i<4; i++)
    {
        for(j=0; j<13; j++)
        {
            printf("%c",________);
            if(v[j]==1)
                printf("A");
            else if(___________)
                printf("J");
            else if(v[j]==12)
                ______________;
            else if(v[j]==13)
                printf("K");
            else
                printf("%d",________);
            printf(" ");
        }
        printf("\n");
    }
    return 0;
}
运行图:
  


练习二:运行“发奖金”程序(运行时,可以将村民的人数改少一些,避免输入太多的数据),对照代码,理解解题过程。(发奖金的由来:过年了,村里要庆祝一下。村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。例如:1995年11月8日=1995+11+8=2014。然后把这个数报上来。村里有一笔钱要作为游戏的奖金,数额为M元。如果有人报上来的数字与M相同,就把这笔钱发给这些人。如果只有一个人得奖,奖金都归这个人。如果有多于一个人得奖,则他们平分这笔钱。现在让我们来写一段程序算算都有哪些人得到了奖金?得到多少?)

  村民要求修改游戏规则,请你改写程序,找出获奖者。你和你的小伙伴们写几个数字玩一玩这个游戏,挺有意思,赢家请大家吃晚饭。

#include <stdio.h>
#define LUCKY_M 2014     //幸运数字
#define POPULATION 128   //村民人数
int main( )
{
    int people[POPULATION];       //记录村民上报数据
    int luckyPeople[POPULATION];  //记录获奖者编号
    int nLucky=0;     //获奖者人数
    int i;
    for (i=0; i<POPULATION; i++)  //输入村民报的数字
    {
        scanf("%d",&people[i]);
    }
    for (i=0; i<POPULATION; i++)  //村民从0开始编号
    {
        if ( people[i] == LUCKY_M)
        {
            luckyPeople[nLucky] = i;
            nLucky ++;
        }
    }
    //输出获奖者编号及所获奖金数额
    for (i=0; i<nLucky; i++)
       printf("%d %d\n", luckyPeople[i], LUCKY_M/nLucky);
    return 0;
}
  有村民提出村长在幸运数字上做手脚,不公平。修改后的规则是:每人写一个1000以内的数字,谁写的数字与平均值最接近,M元的奖金就由谁拿,有多人与平均值差值相同,则均分。例如,参加的村民有5个人,报的数字分别为98、7、50、980、1,平均值为227(平均值也取成整数就行了),与98最接近,编号为0的村民得奖。这个游戏实际上有很强的政治学背景,一种策略是串通,大家都报一样的数,平分奖金;在每个人都想争取最大利益的前提下,各人报的数字又对结果都有影响,这里面包含一系列非常有意思的研究课题。
  提示:输入数据后,用一次循环求和,进而求出平均值;再一次循环,求出最小的差值;再一次循环,将差值最小的村民的编号放入幸运数组(因为可能不止一位,所以需要这个数组)。

练习三:输入年、月、日,输出这是该年的第几天。请在下面程序基础上补充

#include <stdio.h>
int main( )
{
    int y,m,d;
    //a[1]-a[12]中保存了1-12月的天数,a[0]没有用
    int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int sum=0;
    int i;
    printf("请输入年月日:");
    scanf("%d %d %d", &y, &m, &d);
    ……
    printf("这是本年的第%d天", sum);
    return 0;
}
提示:需要补充的程序段,可以循环累加每月的天数,前m-1月的天数已经在a数组中给出,再加上第m月的即可。另外,如果是2月以后,要考虑闰年要多天。




版权声明:本文为博主原创文章,未经博主允许不得转载。

计算机科学-第2周 数组初练-参考解答

《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597练习一:下面的程序,输出了52张扑克牌(如图),请补充完整程序...
  • sxhelijian
  • sxhelijian
  • 2014年03月07日 20:00
  • 1547

具体数学 计算机科学基础(第2版).pdf 免费下载

下载地址: 具体数学 计算机科学基础(第2版).pdf
  • jiongyi1
  • jiongyi1
  • 2018年01月21日 11:47
  • 161

第12周项目一 程序阅读题(2)

问题描述:   阅读下列程序,写出程序的运行结果。上机时运行程序,与你的预期进行对 照、理解。如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解。...
  • zp___waj
  • zp___waj
  • 2014年11月13日 14:04
  • 499

计算机科学概论(第11版) 1.7节 问题与练习答案

说明:以下答案皆为我自己做的,如有错误,欢迎指正。 1. a. 5/8;  b.13/4;  c.9/32;  d.-3/2;  e.-11/64   2.a. 01101011;  b...
  • liuzhenpolestar
  • liuzhenpolestar
  • 2014年03月26日 16:28
  • 1667

计算机科学概论(第11版) 1.4节 问题与练习答案

说明:以下答案皆为我自己做的,如有错误,欢迎指正。 1、Computer Science   2、A的ASCII码为01000001,若将其看成是二进制编码的话,它表示十进制65;a的ASCII...
  • liuzhenpolestar
  • liuzhenpolestar
  • 2014年03月06日 15:14
  • 3033

数据挖掘-概念模型方法和算法 第2版.pdf 免费下载

下载地址: 数据挖掘-概念模型方法和算法 第2版.pdf
  • jiongyi1
  • jiongyi1
  • 2018年01月08日 19:41
  • 76

Coursera-吴恩达-机器学习-(第3周笔记)Logistic Regression and Regularization

此系列为 Coursera 网站Andrew Ng机器学习课程个人学习笔记(仅供参考) 课程网址:https://www.coursera.org/learn/machine-learning ...
  • malele4th
  • malele4th
  • 2018年01月12日 11:00
  • 36

斐波那契数列几道题目

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n f(0)=0;f(1)=1 f(n)=f(n-2)+f(n-1),n>=2 代码:...
  • u011643312
  • u011643312
  • 2017年04月22日 16:19
  • 233

溜冰技巧二

  单人滑基本技术动作包括基本滑行、基本步法、跳跃、旋转、联合跳跃、联合旋转、接续步和自由滑动作等。   为方便学习,先将常用简化的花样滑冰术语介绍如下:  右 内--右脚冰刀内刃  左 外--左脚冰...
  • eroswang
  • eroswang
  • 2009年02月05日 23:32
  • 2390

大学软件开发(计算机科学与技术)专业的弊端讨论(一)

    我是一个大学专科毕业生,就不说是从哪毕业的了,我写的这篇文章只是我个人的片面看法,还请诸多经验人士多多指教。这篇文章的起因来自于我的大学老师的疑惑,他问我,为什么咱们学校的学生毕业后都不从事软...
  • fengqiuzhihua
  • fengqiuzhihua
  • 2011年03月03日 16:37
  • 4177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机科学-第2周 数组初练-题目
举报原因:
原因补充:

(最多只允许输入30个字)