C++(奥赛)【3】

<-上一篇下一篇->


终于开始写程序了,入门程序体验


向世界打个招呼,体验程序。

  • 话不多说我们直接开始第一个程序:
    下面的程序直接复制粘贴到编译器里就可以运行了
#include<iostream>
//头文件,函数库,预处理,都是它
using namespace std;
//命名空间
int main()
//主函数
{
    cout << "Hello,World!"<<endl;
//输出内容
    system("pause");  
//程序停留,在编译器环境下运行不用加
    return 0;
//程序结束,返回一个0,表示没有异常
}
  • 然后我们就来一条一条来解读这个程序:
# include <iostream>

这是头文件,是对函数库的调用和申明,一般结构为:#include<>
尖括号内为库的名称,iostream就是C++的一个库

using namespace std;

本行代码是对函数所在空间的一个命名,C++才有,纯C语言不用。

int main(){}

主函数,每一个程序都有一个主函数,主函数永远第一个执行。

cout<<""<<endl;

cout为C++中标准的输出函数。

system("pause");

暂停程序,避免在编译后生成的EXE文档执行后不能看到结果。

return 0;

程序结束,返回一个0,表示没有异常。

  • 运行结果:
    18557396-547be402d1cb7c74.jpg
    运行结果

    恭喜你完成了第一个程序了!!!!
  • 下面我们可以对我们刚刚完成的一个程序进行修改(为所欲为
    18557396-22cd56dbbdbcb696.jpg
    魔改

方块内的内容可以任意改变(必须加" "),我们也可以多加几句cout


  • 关于第一个程序的题目:
  1. P1000 超级玛丽游戏
    这道题在洛谷的题解里面基本上是大神秀技术,可以参考,也有基础的写法
#include<iostream>
using namespace std;
int main()
{
cout<<"                ********"<<endl;
cout<<"               ************"<<endl;
cout<<"               ####....#."<<endl;
cout<<"             #..###.....##...."<<endl;
cout<<"             ###.......######              ###            ###"<<endl;
cout<<"                ...........               #...#          #...#"<<endl;
cout<<"               ##*#######                 #.#.#          #.#.#"<<endl;
cout<<"            ####*******######             #.#.#          #.#.#"<<endl;
cout<<"           ...#***.****.*###....          #...#          #...#"<<endl;
cout<<"           ....**********##.....           ###            ###"<<endl;
cout<<"           ....****    *****...."<<endl;
cout<<"             ####        ####"<<endl;
cout<<"           ######        ######"<<endl;
cout<<"##############################################################"<<endl;
cout<<"#...#......#.##...#......#.##...#......#.##------------------#"<<endl;
cout<<"###########################################------------------#"<<endl;
cout<<"#..#....#....##..#....#....##..#....#....#####################"<<endl;
cout<<"##########################################    #----------#"<<endl;
cout<<"#.....#......##.....#......##.....#......#    #----------#"<<endl;
cout<<"##########################################    #----------#"<<endl;
cout<<"#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#"<<endl;
cout<<"##########################################    ############"<<endl;
return 0;
}

2.1001:Hello,World!
至于为什么不做1000:,你们看看就知道了,我们下回再来分解

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

  • 一个好玩的程序:抢红包!!!!!
    可以拿来玩玩,但是入门的同志们就暂时不用浪费时间读懂了,后面我们慢慢来。 大佬请随意,数据还有些问题
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <math.h>
using namespace std;

int i, number;
int best;    //手气最佳 
float total;// 总金额 
float *a=new float[number];  //保存每个人的随机数。最多支持1024个人抢红包。
float *b=new float[number];  //保存每个人获得的红包金额。
float suma = 0; //随机数总和。
float sumb = 0; //红包总和。


int main()
{


    cout << "请输入红包金额:";
    cin >> total;
    if(total>=2147483647)
        cout<<"金额过大"<<endl; 
    cout << "请输入红包个数:";
    cin >> number;
    if(number>=2147483647)
        cout<<"人数过多"<<endl;
    /* 生成随机数 */
    // 设置种子
    srand((unsigned)time(NULL));
    int max = 0;
    for (i = 0; i < number; i++)
    {
        // 生成实际的随机数
        a[i] = rand() % 100;
                
        if (a[i] > max){
            max = a[i];
            best = i;//获取手气最佳
        }
        suma += a[i];
    }

    for (i = 0; i < number - 1; i++)
    {
        b[i] = a[i] / suma * total;//按照随机数计算每个人实际获得的金额
        sumb += round(b[i] * 100) / 100.0;//将红包金额保留两位小数
        //输出信息
        cout << "第" << setiosflags(ios::right)<< setw(3) << i + 1 << 
            "个人的红包是:" << setiosflags(ios::right) << setw(6) << 
            setiosflags(ios::fixed) << setprecision(2) << 
            round(b[i] * 100) / 100.0 ;
        if (best == i){
            cout << "(手气最佳)" << endl;
        }
        else {
            
            cout << endl;
        }
    }
    //最后一人的红包金额等于总金额减去前面的金额。
    cout << "第" << setiosflags(ios::right)<<
        setw(3) << number << "个人的红包是:" <<
        setiosflags(ios::right) << setw(6) << setiosflags(ios::fixed) <<
        setprecision(2) << round((total - sumb) * 100) / 100.0;
    if (best == number - 1){
        cout << "(手气最佳)" << endl;
    }
    else {

        cout << endl;
    }
    system("pause"); 
    return 0;
}
  • 效果图:


    18557396-d8987dac282c4a0f.png
    运行图:输入

    18557396-cb2e218395d0b360.png
    运行图:输出

关注我的专题我们一起努力

18557396-4e75f060f9bbae01.png


<-上一篇下一篇->

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值