C++循环加强小练习

练习1:

根据用户的要求,输出对应的行数和列数并打印*

C++循环加强小练习_第1张图片

#include 

using namespace std;
/*
	根据用户的要求,输出对应的行数和*数量
	
*/

int main(void) {

	int row;
	int col;
	cout << "请输入行数:" << endl;
	cin >> row;
	cout << "请输入列数:" << endl;
	cin >> col;
	for (int  i = 0; i < row; i++){
		for (int j = 0; j < col; j++)
		{
			cout << "*" ;
		}
		cout<

练习2:

根据用户输入的行数,输出一个正直角三角

C++循环加强小练习_第2张图片

#include 

using namespace std;


int main(void) {

	int row;
	cout << "请输入行数:" << endl;
	cin >> row;
	
	for (int  i = 1; i <= row; i++){
		for (int j = 0; j < i ; j++)
		{
			cout << "*" ;
		}
		cout<

练习3:

根据用户输入的行数,输出一个倒直角三角

C++循环加强小练习_第3张图片

#include 

using namespace std;


int main(void) {

	int row;
	cout << "请输入行数:" << endl;
	cin >> row;
	
	for (int  i = 1; i <= row; i++){
		for (int j = row; j >= i ; j--)
		{
			cout << "*" ;
		}
		cout<

练习4:

根据用户输入的行数,输出对应的正金字塔

C++循环加强小练习_第4张图片

#include 

using namespace std;


int main(void) {

	int row;
	cout << "请输入行数:" ;
	cin >> row;
	
	for (int  i = 1; i <= row; i++){
		for (int j = 1; j <=(row - i)  ; j++)
		{
			cout << " " ;
		}
		for (int j = 0; j < 2 * i-1; j++) {
			cout << "*";
		}
		cout<< endl;
	}
	return 0;
}

练习5:

打印九九乘法表

C++循环加强小练习_第5张图片

#include 
#include 
using namespace std;


int main(void) {
	int width=0;
	for (int  i = 1; i <= 9; i++){
		for (int j = 1; j <= i; j++)
		{
			width = (j == 1) ? 1 : 2;
			//setw函数设置后面表达式占多少位,并设置占位左对齐
            //头文件位:
			cout << j << "x" << i << "=" <

练习6:

输出100-999所有水仙花数

C++循环加强小练习_第6张图片

#include 

using namespace std;


int main(void) {
	//水仙花数:每一位的立方相加等于这个数本身
	int a, b, c;
	//用for可以用while也可以
	for (int i = 100; i < 1000; i++) {
		a = i % 10;//计算个位数
		b = i / 10 % 10;//计算十位数
		c = i / 100;//计算百位数
		if (a * a * a + b * b * b + c * c * c == i) {
			cout << i << " ";
		}
	}
	return 0;
}

练习7:

输出指定项的斐波拉契数列

C++循环加强小练习_第7张图片

#include 

using namespace std;


int main(void) {
	//1 1 2 3 5 8 ..
	int n;
	int a = 1;
	int b = 1;
	int sum = 0;
	cout << "请输入项数指定:";
	cin >> n;
	//当输入的项数小于2的时候,输出的是前两个数字是没有变化的
	if (n == 0) {
		cout << "您输入的数字不合法,请重新输入...";
	}
	if (n == 1) {
		cout << "1";
	}
	if (n == 2) {
		cout << "1 1";
	}
	cout << "1 1"<<" ";
	for (int i = 3; i <= n; i++) {
		sum = a + b;
		a = b;
		b = sum;
		cout << sum<<" ";
	}

	return 0;
}

练习8:

输入一个十进制整数将其转换为对应的二进制

C++循环加强小练习_第8张图片

#include 

using namespace std;


int main(void) {
	//输入一个十进制,输出对应的二进制
	int num;
	char word[64];
	int i = 0;
	cout << "请输入一个十进制整数:" << endl;
	cin >> num;

	while (num)
	{
		word[i++] = num % 2 + '0';
		num = num / 2;
	}
	for (int j = i - 1; j >= 0; j--) {
		cout << word[j];
	}
	return 0;
}

练习9:

输入一个二进制正数,将其转换为对应的十进制

C++循环加强小练习_第9张图片

#include 
#include 
using namespace std;


int main(void) {
	//输入一个二进制正数,将其转换为对应的十进制
	string num;
	int sum = 0;
	int n = 1;
	cout << "请输入一串二进制正数:" << endl;
	cin >> num;

	for (int i = num.length()-1; i >= 0; i--)
	{
		num[i] = num[i] - '0';
		sum = sum + num[i]*n;
		 n =  n * 2;
	}
	cout << sum;
	return 0;
}

练习10:

输入一个字符串将他逆序输出

C++循环加强小练习_第10张图片

#include 
#include 
using namespace std;


int main(void) {
	//输入一个字符串将他逆序输出
	string str;
	cout << "请输入一个字符串:" << endl;
	cin >> str;
	int j = str.length()-1;
	for (int i = 0; i < j; i++)
	{
		int tmp = str[i];
		str[i] = str[j];
		str[j] = tmp;
		j--;
	}
	cout << str << endl;

	return 0;
}

练习11:

经典算法题: 千鸡百钱. 1000 块钱, 要买 100 只鸡. 公鸡每只 50 块 母鸡每只 30 块 小鸡每 3 只 10 块 问:一共有多少种买法

C++循环加强小练习_第11张图片

#include 
#include 
using namespace std;
/*
经典算法题: 千鸡百钱.
1000 块钱, 要买 100 只鸡. 
公鸡每只 50 块
母鸡每只 30 块
小鸡每 3 只 10 块

*/

int main(void) {
	int count = 0;

	for (int i = 1; i <= 20; i++){
		for (int j = 1; j <= 33; j++)
		{
			int k = 100 - i - j;
			if (k % 3 == 0 && (i * 50) + (j * 30) + (k / 3 * 10) == 1000) {
				cout << "公鸡有" << i << "母鸡有" << j << "小鸡" << k << endl;
				count++;
			}
		}
	}
	cout << "一共有" << count << "种" << endl;

	return 0;
}

 练习12:

输入一个英文字符串(一句话),统计输入的单词个数.

C++循环加强小练习_第12张图片

#include 
#include 

using namespace std;

int main(void) {
	//输入一个英文字符串(一句话),统计输入的单词个数.
	int i=0;//记录读取字符的实时位置
	int count = 0;
	char line[128];//string line;//配合getline使用
	cout << "请输入一个英文字符串:" ;
	gets_s(line, sizeof(line));//也可以使用getline,但是不能用cin,cin会以空格作为结束,中断输入

	while (line[i] == ' ') i++;
	while (line[i]) { // while(line[i] != '\0') '\0' 就是 0
		// 跳过连续的多个非空格组合(就是单词!) 
		while (line[i] && line[i] != ' ') i++;
		while (line[i] == ' ') i++;
		count++;
	}

	cout << "有" << count <<"个单词" << endl;

	return 0;
}

练习13:

输入一句话,然后把这个字符串以单词为单位,逆转输出。

C++循环加强小练习_第13张图片

#include 
#include 

using namespace std;

int main(void) {
	//输入一句话,然后把这个字符串以单词为单位,逆转输出。
	int i=0;//记录读取字符的实时位置
	int j;//用来记录遇到单词时的初始位置
	int count = 0;
	char line[128];//string line;//配合getline使用
	cout << "请输入一个英文字符串:" ;
	gets_s(line, sizeof(line));//可以使用getline(cin,line);

	while (line[i]){
		while (line[i] == ' ')i++;
		j = i;
		while (line[j] && line[j] != ' ')j++;

		for (int k = i,m = j-1; k < m; k++,m--){
			int tmp = line[k];
			line[k] = line[m];
			line[m] = tmp;
		}
		i = j;
	}

	int m = i - 1;
	for (int  k = 0; k < m; k++,m--){
		int tmp = line[k];
		line[k] = line[m];
		line[m] = tmp;
	}
	cout << line << endl;
	return 0;
}

你可能感兴趣的:(c++,visual,studio)