您的位置:首页 > 编程语言 > C语言/C++

C++学习记录(循环)

2018-02-12 17:04 190 查看
1.C++有三种循环:while 循环;do-while 循环,for 循环
while 循环int count = 0;
while (count < 100)
{
cout << "Welcome to C++!\n";
count++;

}
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
//1.Generate two random single-digit integers
srand(time(0));
int number1 = rand() % 10;
int number2 = rand() % 10;

//2. If number1<number2,swap number number1 with number2;
if (number1 < number2)
{
int temp = number1;
number1 = number2;
number2 = temp;

}

//3.Prompt the student to answer "What is number1-number2";
cout << "What is " << number1 << " - " << number2 << "?";
int answer;
cin >> answer;

//4.Repeatedly ask the user the question until if is correct
while (number1 - number2 != answer)
{
cout << "Wrong answer!.Try again.What is " << number1 << " - " << number2 << "? ";
cin >> answer;
}

cout << "You got it!" << endl;

return 0;

}
实例一:猜数字include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
cout << "Guess a magic number between 1 and 100";
srand(time(0));
int number = rand() % 101;

int guess = -1;//
while (guess!=number)
{
cout << "\nEnter your guess: ";
cin >> guess;

if (number == guess)
cout << "You win!";
else if (number < guess)
cout << "Your guess is too high" << endl;
else
cout << "Your guess is too low" << endl;
}

return 0;

}
实例二:多道减法测试#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
int correctCount = 0;
int count = 0;
long startTime = time(0);
const int NUMBER_OF_QUESTIONS = 5;

srand(time(0));

while (count < NUMBER_OF_QUESTIONS)
{
//1.Generate 2 random numbers;
int number1 = rand() % 10;
int number2 = rand() % 10;

//2. If number1 < number2 , swap number1 with number2
if (number1 < number2)
{
int temp = number1;
number1 = number2;
number2 = temp;
}
//3.Prompt the student to answer "what is number1 -number2?"
cout << "What is " << number1 << "-" << number2 << "? " << endl;
int answer;
cin >> answer;

if (number1 - number2 == answer)
{
cout << "correct!\n";
correctCount++;
}
else
cout << "Your answer is wrong.\n" << number1 << "-" << number2 << " should be "
<< (number1 - number2) << endl;

//Increase the count
count++;
}

long endTime = time(0);
long testTime = endTime - startTime;

cout << "Correct count is " << correctCount << "\nTest time is " << testTime << " seconds\n";

return 0;知识点: 不能在循环继续条件中使用浮点数的相等性判定。对于某些值来说,浮点值表示近似值而不是精确值int main()
{
double item = 1;double sum = 0;
while (item != 0)
{
sum += item;
item -= 0.1;

}

cout << sum << endl;item实际上不可能恰好为0,这个循环是无限循环。

知识点:输入和输出重定向
实例:从一个文件中读取所有的数据,如果想全部读入,应该如何得知已经读到了文件的末尾?可以调用input对象的eof()函数来检测。

#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream input("numbers.txt");

double sum = 0;
double number;
while (!input.eof())
{
input >> number;
cout << number << " ";
sum += number;

}
input.close();
cout << "\nSum is " << sum << endl;
return 0;

}当没有可读取的内容的时候,eof()函数将返回true。因此文件最后一个字符后边不能再有任何空白字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: