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 <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。因此文件最后一个字符后边不能再有任何空白字符。
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。因此文件最后一个字符后边不能再有任何空白字符。
相关文章推荐
- C++学习记录16--VS新版本中iostream库的变化
- 记录学习C++过程
- [2017.02.04] C++学习记录(1)
- C++中关于类型转换的学习记录
- C++ 对象模型学习记录(1)--- 第2章 构造函数语义学
- 2018/1/28 C++学习记录(一)
- C++学习记录----C++成员函数指针
- C++ 学习记录3 --引用
- 扫地僧C++视频学习记录
- python 学习记录(7)-循环/结构化程序(冒泡排序)
- C++学习记录20--endl,'\n',"\n"
- 关于c++的学习情况,不再更新了,因为找到了更好的笔记记录工具
- c++学习之前序递归遍历二叉树和中序循环遍历二叉树
- C++学习记录10--冒泡排序
- [2017.02.04] C++学习记录(1)
- C++学习之路指针记录笔记(一)
- C++之学习记录1
- C++学习笔记(第三章 多分支结构 循环程序设计 之一)
- C++的学习记录 - 0
- C++ 11 新标准学习记录2