自用练习二

/*
第一章
程序:完成事物的既定方式和过程
C语言是结构化和模块化的语言,面向过程。未完全实现解决软件设计危机的目标。
C++保留了C语言原有的所有优点,增加了面向对象的机制。
	增加了面向对象机制
	对C语言的功能做了扩充
	变量的定义可以出现在程序中的任何行、提供了标准输入输出流对象cin, cout、用const定义常变量、
函数重载、函数模板、带默认值的函数、引用类型、单目作用域运算符、string类型字符串、使用
new和delete代替malloc和free函数等


#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
	以 # 开头的语句称为预处理器指令
	#include语句不是必须的,但是如果一旦
	程序中有该语句,就必须将它放在程序的
开始处

*/
#include <iostream>//标准输入输出函数库
#include <cmath>//数学函数库
using namespace std;//使用标准命名空间

int main()//主函数
 {
	double root (double x, double y);//root函数求x-y的平方根
	{ if (x >= y) return sqrt(x - y); //只有在x>=y时 计算x-y的平方根
	else return 0;
	}
	 double a, b;// 定义两个浮点型变量
	 cin >> a >> b;
	 cout << root(a, b) << endl;
	 return 0
 }

二、

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

/**********************************
//hello word

#include <iostream>
using namespace std;
int main()
{
    cout << "HelloWorld!" << endl;
    return 0;
}
**********************************/

/**********************************
//cout:输出对象

#include <iostream>

using namespace std;

int main()
{
    //cout:输出对象
    cout << "英雄名称:寒冰射手·艾希\n";

    cout << "伤害:56\t\t攻击距离:600\n"
        << "护甲:15.5(+3.4)\t魔抗:30(+0.0)\n"
        << "生命值:395(+79)\t生命回复:0.9(+0.11)" << endl;
    return 0;
}

**********************************/


/*
int num1 = 5, num2 = 2;
//cout << num1 / num2 << endl;
//cout << num1 % num2 << endl;
//取模的场景
//1、取某个数字的个位  5 % 10
//2、45天是1个月零几天  45 % 30

double num3 = (double)num1 / num2;
cout << num3 << endl;

/*
double attack1 = 272;
double attack2 = 250;
double attack3 = 240;

cout << left;
cout << setfill('*');
cout << setw(8) << attack1 <<
        setw(8) << attack2 <<
        setw(8) << attack3 << endl;












/**
//string 是字符串类型
string str = "你好,我是";

cout << str << endl;

//为数据类型起别名
typedef int zhengxing;
zhengxing num1 = 90;
int num2 = 90;



cout << '\a' << endl;
int num;
char ch1, ch2, ch3;
cout << "请输入一个数字:";
cin >> num;  //scanf("%d", &num);
cin >> ch1 >> ch2 >> ch3;
//ch1 = cin.get();
//ch2 = cin.get();
cout << num << "\t" << ch1 << '\t' << ch2 << '\t' << ch3 << endl;











//cout << (char)('A' + ' ') << endl;

//cout << CHAR_MIN << '\t' << CHAR_MAX << endl;
//cout << UCHAR_MAX << endl;

 //打印德玛西亚之力
 //SetConsoleTitle("示例:打印德玛西亚之力的详细信息");
 /** 伤害 */
 // double value_attack = 57.88;
  /** 伤害成长值 */
  //double value_attack_growth = 4.5;
  /** 攻击距离 */
  //double value_attack_distance = 172;
  /** 护甲值 */
  //double value_defence = 27.54;
  /** 护甲成长值 */
  //double value_defence_growth = 3.0;

  //cout << "名称:德玛西亚之力" << endl;
  //cout << "伤害:" << value_attack << "(+" << value_attack_growth << ")\t"
   //    << "攻击距离:" << value_attack_distance << endl;



  /*
  //演示单精度浮点型和双精度浮点型精度问题
  float numFloat = 10 / 3.0;
  double numDouble = 10 / 3.0;
  cout << fixed;//让浮点型固定以数字的方式显示
  cout << setprecision(2);//控制显示的小数位数 printf("%.2lf", xxx);
  cout << "numFloat = " << numFloat * 100000000 << endl;
  cout << "numDouble = " << numDouble * 100000000 << endl;



  /*
  //sizeof 用来测量数据类型的长度
  cout << sizeof(double) << endl;
  cout << sizeof(long double) << endl;
  cout << sizeof(3.14f) << endl;












  /*
  cin.get();
  getchar();//得到用户输入的单个字符

  //固定以小数方式显示,并保留小数点后2位
  cout << fixed << setprecision(2);

  cout <<  "|"<< setw(8) << 3.14 << setw(8) << "|" << endl;


  float floatNum = 10.0 / 3.0;              //单精度浮点型数字
  double doubleNum = 10.0 / 3.0;      //双精度浮点型数字
  const float million = 1000000;         //设置100w为常量

  cout << "floatNum = " << floatNum << endl;
  cout << "100w * floatNum = " << million * floatNum << endl;
  cout << "1000w * floatNum = " << 10 * million * floatNum << endl;

  cout << "\ndoubleNum = " << doubleNum << endl;
  cout << "100w * doubleNum = " << million * doubleNum;
  //控制cout的显示精度
  //1.强制以小数的方式显示
  /*
  cout << fixed ;
  //2.控制显示的精度
  cout << setprecision(2);
  //输出double类型数据
  double doubleNum = 100.0 / 3.0;

  cout << doubleNum * 1000000 << endl;







  /*
  //已知圆柱体的半径和高,求圆柱体的体积
  const float PI = 3.14f; //定义了一个float类型的常量
  float radius = 4.5f;
  float height = 90.0f;
  double volume = PI * pow(radius, 2) * height;
  cout << "体积是:" << volume << endl;

  /*
  float num = 12345.12345678;
  cout << num << endl;
  
return 0;
}




#include <iostream>

using namespace std;

int main()
{
    //强调下if的大括号
    int num = 5;
    cout << sizeof(num++) << endl;
    cout << num << endl;

    //输出的num为5
















    /*
    //判断某月有几天
    int month = 12;
    switch(month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        cout << "31天" << endl;
        break;
    case 2:
        break;

    //.......
    }



    /*
    int choice = 12345;
    switch(choice)
    {
    default:
        cout << 998 << endl;
    case 1:
        cout << 1 << endl;
    case 2:
        cout << 2 << endl;
        break;
    case 3:
        cout << 3 << endl;
    case 4:
        cout << 4 << endl;
    }

    /**
    double flowerPrice; //花的单价
    //打印剧情
    cout << "黎明前的黑暗渐渐退去,海天之间透着一抹亮光,像是点燃的火把。。。。。" << endl;
    cout << "小男生给小女生送花,小女生问:这花多少钱啊?" << endl;
    cout << "小男生:";
    cin >> flowerPrice;
    if(flowerPrice >= 50000)
    {
        cout << "马上去扯证!" << endl;
    }
    else if(flowerPrice >= 10000 && flowerPrice < 50000)
    {
        cout << "" << endl;
    }
    else if()
    {

    }
    else
    {

    }
















    /*
    //购物车
    double price_louis = 35000.0;
    double price_hemes = 11044.5;
    double price_chanel = 1535.0;
    double total = 0;   //总价
    double zhekou = 0;  //折扣
    total = price_chanel + price_hemes + price_louis;
    //如果购买的三种商品有一种商品单价大于1000
    //或三种商品总金额大于5000,折扣率为30%,
    //否则没有折扣
    if(price_chanel > 1000 || price_hemes > 1000 || price_louis > 1000 || total > 5000)
    {
        //折扣0.3
    }


    //如果总价大于5w就打七折,否则打九折
    if(total > 50000)
    {
        //total *= 0.7;
        zhekou = 0.7;
    }
    else
    {
        //total *= 0.9;
        zhekou = 0.9;
    }
    total *= zhekou;
    cout << "最终付款:" << total << endl;

    /*
    //使用程序判断用户输入的字符是否是合法的硬盘盘符
    char pan = '\0';    //默认值设置为空字符
    cout << "请输入一个字符,我来判断是否合法:";
    cin >> pan;
    //  'A' ~ 'Z'
    //if(pan >= 65 && pan <= 65 + 25)
    if(pan >= 'A' && pan <= 'Z')
    {
        cout << "是合法盘符!" << endl;
    }
    else
    {
        cout << "不是合法盘符!" << endl;
    }


    /*
    cout << sizeof("") << endl;
    /*
    //C语言中,0表示假,非0表示真
    //C++中,引入了布尔类型 bool
    bool flag = true;  //false
    cout << boolalpha;
    cout << "15 > 88 吗?" << (15 > 88) << endl;
    cout << "16 < 99 吗?" << (16 < 99) << endl;


    int num = 1024;
    //演示复合运算符
    num += 90;//   <==>   num = num + 90;
    num *= 90;
    num /= 90;
    num -= 90;
    num %= 90;
    cout << num << endl;

    return 0;
}



#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    //王健林以10%的单利投资了100万元(每年的利润都是投资额的10%);
    //马云以5%的复利投资了100万元(利息是当前存款包括获得的利息)的5%。
    //以此类推,计算多少年后,马云的投资价值才能超过王健林?并分别显示两人的投资价值。
    //单利:利息 = 0.1 * 原始存款
    //复利:利息 = 0.05 * 当前存款

    //1、定义变量:马云和王健林的投资款以及年份
    double money_w = 100.0; //王爸爸的投资款
    double money_m = 100.0; //马云爸爸的投资款
    int year = 0;           //年份,初值为0
    //2、通过循环,计算复利超过单利的年份
    while (money_w >= money_m)
    {
        year++;
        //单利公式:
        money_w = money_w + 0.1 * 100.0;
        //复利公式:
        money_m = money_m + 0.05 * money_m;
    }
    cout << "经过" << year << "年后,马云的投资价值超过王健林!" << endl;
    cout << "王健林:" << money_w << "\t马云:" << money_m << endl;









    /*
    //将用户输入的数字反转后打印
    //1.定义变量,用来保存用户输入的数字
    int num;
    int tempNum;
    //2.接收用户的输入
    cout << "请输入一个数字,我来翻转:" ;
    cin >> num;
    tempNum = num;//类似克隆人的感觉
    //3.将数字的每一位取出来并打印
    cout << "用户输入的数字是:" << num << endl;
    while(tempNum > 0)
    {
        cout << tempNum % 10;
        //卸磨杀驴!!杀掉个位!!
        tempNum /= 10;//num = num / 10;

    }
    cout << "\n原数字是:" << num << endl;

    //取个位
    //cout << "个位:" << num % 10 << endl;
    //cout << "十位:" << num / 10 % 10 << endl;


   */








三、


/*
//某宝双十一2015年的交易额为800亿,每年递增25%
//问:按此速度哪年交易额达到2000亿?
//1、寻找循环变量 初值、判断、更新
//年   交易额    递增比
double money = 800.0;
int year = 2015;
while(money < 2000){
    year++;
    money = money * (1 + 0.25);

}
cout << "到" << year << "年,营业额达到" << money << "亿!" << endl;


/*
//使用循环实现三次密码输入错误退出系统
//并没有真正满足题意,请自行修正!!!
string password;    //密码
int i = 0;          //循环变量,用来控制循环的次数
while(i < 3)
{
    cout << "请输入密码:" << endl;
    cin >> password;
    cout << "您输入的密码是:" << password << endl;
    i++;
    //判断用户输入的是否正确
    if(password != "12345678")
    {
        if(i == 3){
            cout << "3次密码输入错误,系统强制退出!" << endl;
            exit(123456);
        }
    }
}



/*
//使用循环计算1-100的累加和
//需要循环变量
//需要累加和变量

int num = 1;    //用来控制循环次数的变量
int sum = 0;    //用来保存累加和的变量
while(num <= 100){
    //cout << num << endl;
    //sum = sum + num;    //累加1-100的值,结果保存在变量sum中
    sum += num;
    //为了让循环退出,要让循环变量进行更新
    num++;
}
cout << "1-100的累加和为:" << sum << endl;




return 0;
}




#include <iostream>

using namespace std;

int main()
{
    //3、查找输入的数字在数组中的下标,没有找到则下标为-1

    int nums[]{ 8, 4, 2, 1, 23, 23, 344, 12 };
    int numsLen = sizeof(nums) / sizeof(int);   //计算出数组的长度
    int sum = 0;
    for (int i = 0; i < numsLen; i++)
    {
        cout << nums[i] << '\t';
    }
    cout << endl;
    //累加操作
    for (int i = 0; i < numsLen; i++)
    {
        sum += nums[i]; //累加值
    }
    cout << "数列的和为:" << sum << "\t平均值为:" << sum / numsLen << endl;

    //1、求数组中的最大值和最小值 - 打擂台  you can you up!  no can no bibi!

    int max = nums[0];  //假设第一个元素是最大值
    int maxIndex = 0;   //最大值的下标
    for (int i = 1; i < numsLen; i++)
    {
        if (nums[i] > max)
        {
            max = nums[i];  //留下买路钱
            maxIndex = i;   //记录下最大值的下标
        }

    }
    cout << "最大值是:" << max << '/' << nums[maxIndex] << endl;
    cout << "最大值的下标是:" << maxIndex << endl;

    //2、求出奇数个数和偶数个数
    int jCount = 0, oCount = 0;
    for (int i = 0; i < numsLen; i++)
    {
        if (nums[i] % 2 == 0)
        {
            oCount++;
        }
        else
        {
            jCount++;
        }
    }
    cout << "奇数个数:" << jCount << '\t' << "偶数个数:" << oCount << endl;

    //3、查找输入的数字在数组中的下标,没有找到则下标为-1
    int searchNum;              //用户要查找的数字
    int searchIndex = INT_MIN;  //用户查找数字的下标
    cout << "请输入要查找的数字:";
    cin >> searchNum;
    //使用循环查找
    for (int i = 0; i < numsLen; i++)
    {
        if (nums[i] == searchNum)
        {
            searchIndex = i;//记录下查找到元素的下标
            break;
        }
    }
    if (searchIndex == INT_MIN)
    {
        cout << "数组中没有这个数字!" << endl;
    }
    else
    {
        cout << searchNum << "在数组中的下标为:" << searchIndex << endl;
    }
















    /**
    //动态地从键盘录入信息并赋值
    const int N = 5;
    int nums[N];
    cout << "数组的大小:" << sizeof(nums) / sizeof(int) << endl;

    for(int i = 0; i < sizeof(nums) / sizeof(int); i++)
    {
        cout << "请输入第" << (i+1) << "个数组元素:";
        cin >> nums[i];
    }

    for(int i = 0; i < N; i++)
    {
        cout << nums[i] << endl;
    }











    /*
    char shap = 'A';
    //外层循环控制行(行数,换行)
    //内层循环控制列(列数,列的图形)
    for(int i = 0; i < 4; i++)
    {
        for(int j = 0; j <= 2 - i; j++)
        {
            cout << " ";
        }
        for(int j = 0; j <= 2 * i; j++)
        {
            cout << (char)shap;
        }
        shap++;
        cout << endl;
    }
    //图形的下半部分
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j <= i; j++)
        {
            cout << " ";
        }
        for(int j = 0; j <= 4 - 2 * i; j++)
        {
            //在j是极值的情况下打印星号,否则打印空格
            if(j == 0 || j == 4 - 2 * i)
                cout << "*";
            else
                cout << ' ';
        }
        cout << endl;
    }












    /*

    int a = 5;
    int num1 = ++a + a++;
    cout << num1 << endl;

    //选择排序:从数组中选择最小的同第一个值交换,再从剩下的部分中选择最小的与第二个交换,往复下去
    int num[] = {45, 32, 56, 90, 21};
    int min, minIndex;
    for(int i = 0; i < 4; i++){
        min = num[i];
        minIndex = i;
        for(int j = i + 1; j < 5; j++){
            if(num[j] < min){
                min = num[j];
                minIndex = j;
            }
        }
        //min和minIndex就是在内循环中找出来的剩下数字的最小值及索引
        num[minIndex] = num[i];
        num[i] = min;
    }
    for(int i = 0; i < 5; i++){
        cout << num[i] << endl;
    }


    /*
    //求1-100之间的偶数和
    int sum = 0;
    for(int i = 1; i <= 100; i++){
        //跳过所有的奇数情况
        if(i % 2 == 1)
            continue;
        sum += i;
    }
    cout << "1-100之间的偶数和为:" << sum << endl;

    /**
    //循环输入5个玩家的消费,统计消费额低于500的玩家数量
    double money;   //玩家的消费
    int playerCount = 0;  //低于500玩家的数量(计数器)
    //for(int i = 0; i < 5; i++){
    int i = 0;
    do{
        i++;
        cout << "请输入当前玩家的消费额:";
        cin >> money;
        //跳过500以上的情况
        if(money >= 500)
            continue;
        playerCount++;

    }while(i < 5);
    cout << "消费低于500的玩家数量是:" << playerCount << endl;

/*
    //幸运53猜商品价格游戏
    //根据猜的次数给予不同的奖励
    //1次:iPhone8S Plus Plus 土豪金
    //2-3次:小米移动电源
    //5次以内:VR眼镜
    const double PRICE = 5000.0;    //要猜的商品价格,可以是随机数字
    double guessPrice;              //用户猜的商品价格
    int guessCount = 0;             //用户猜测的次数
    //游戏实际上就是一个死循环
    for(;;){
        //每猜一次,猜测的总次数+1
        guessCount++;
        cout << "请输入神秘商品的价格:" ;
        cin >> guessPrice;
        if(guessPrice > PRICE){
            cout << "大了!" << endl;
        }else if(guessPrice < PRICE){
            cout << "小了!" << endl;
        }else{
            cout << "恭喜,猜对啦!!" << endl;
            break;
        }
    }
    if(guessCount == 1){
        cout << "幸运53狂人,中了大奖:iPhone8 ++ 土豪金 256G" << endl;
    }else if(guessCount >= 2 && guessCount <= 3){
        cout << "幸运53小超人,中了二等奖:小米移动电源" << endl;
    }else if(guessCount >= 4 && guessCount <= 5){
        cout << "幸运53小钢炮,中了三等奖:杂牌VR眼镜" << endl;
    }else{
        cout << "幸运53幸运草,中了安慰奖:老九君的拥抱*3" << endl;
    }
















    /*
    int age;
    //while(true/1)
    for(;;){
        cout << "请输入玩家年龄:";
        cin >> age;
        if(age < 0){
            cout << "输入的数据非法!!!" << endl;
            break;
        }
    }

    cout << "这是强制退出后的代码!!" << endl;


    */








/*

#include <iostream>
using namespace std;
int main3()
{
  
    //1.通过观察,每个月第一天要打印\t用来表示1号是周几
    //因为7月1号是星期2,所以应该打印1个\t 得出的规律:
    //\t的数量 = 星期几-1 = dayOfWeek - 1
    int day = 31;
    int dayOfWeek = 2;  //星期二
    for(int i = 0; i < dayOfWeek - 1; i++){//非常纯洁:打印\t
        cout << '\t';
    }
    //第二个for循环用来打印日期,因为7月有31天,所以循环31次
    for(int i = 0; i < 31; i++){
        //每次循环打印当前的日子
        cout << i + 1 ;
        //经过观察,我们发现打印\t和\n是有规律的
        //规律:星期日就\n,其他日子就\t
        if((dayOfWeek + i) %7 == 0){//星期日
            cout << '\n';
        }else{
            cout << '\t';
        }
    }



    return 0;
}

*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值