实验一 C++简单程序设计

实验一 C++简单程序设计

一、实验目的

1.了解C++开发工具并学习使用。

2.熟悉C语言、C++开发环境,使用VC 6.0 或 DEV C++等集成开发环境编写程序

3.练习用C++编写基本顺序、选择和循环三种结构;

二、实验内容

1.编写程序判定给定年份是否为闰年。年份由键盘输入。

2.有三个数整数x, y, z,从键盘输入,求三个数中的最大值。

3.出一百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80-89为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’。

4.给出a,b 两个数的值,从键盘输入,将两个变量的值进行交换输出。

5.给一个不多于5位和正整数,要求: 1)求出它是几位数 2)分别输出每一位数字 3)按逆序输出各位数字,例如原数为321,应输出123

6.用do {…} while(); while() {…}; for () {…}三种循环求1+2+…+99+100的和。

7.利用循环输出下列三个图形:

图片描述

8.找出0-200之间的所有质数(除0和它本身之外不能再被其它数整除,这样的数据被称为质数,0不作参与分类)。

9.编写程序,求解百钱买百鸡问题,母鸡3元一只 ,公鸡2元,小鸡 0.5元。

10.编写程序,求两个整数的最大公约数和最小公倍数。

三、实验步骤及结果

题目1

布尔型变量

/*
程序名:题目1.cpp
功能:判定给定年份是否为闰年。年份由键盘输入。
日期:2021.9.24
版本:1.0
*/

#include <iostream>
using namespace std;
int main() {
	int year;
	bool isLeapYear;   //判断
	cout << "Enter  the  year:";
	cin >> year;    //输入年份
	isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
	if (isLeapYear)
		cout << year << " is a leap  year " << endl;
	else
		cout << year << " is not a leap  year" << endl;

	return 0;
}

运行结果截图:图片描述

题目2

/*
程序名:题目2.cpp
功能:求三个数中的最大值。
日期:2021.9.24
版本:1.0
*/

#include <iostream>
using namespace std;
int  main() {
	int  x, y, z;
	cout << "Enter x , y, z:";
	cin >> x >> y >> z;
	if ((x > y) && (x > z))
		cout << x; 
	else if ((y > x) && (y > z))

		cout << y; 
	else  if ((z > x) && (z > y))
		cout << z; 
	return 0;
}

运行结果截图:图片描述

题目3

/*
程序名:题目3.cpp
功能:出一百分制成绩,要求输出成绩等级。
日期:2021.9.24
版本:1.0
*/

#include<iostream>
using namespace  std;
int main() {
	int x;
	cout << "请输入成绩:";
	cin >> x;
	if ((x >= 90) && (x <= 100))
		cout << "A" << endl;
	else if ((x >= 80) && (x <= 89))
		cout << "B" << endl;
	else if ((x >= 70) && (x <= 79))
		cout << "C" << endl;
	else if ((x >= 60) && (x <= 69))
		cout << "D" << endl;
	else if ((x >= 0) && (x <= 60))
		cout << "E" << endl;
	return 0;
}

运行结果截图:

图片描述

题目4

引入第三个变量

/*
程序名:题目4.cpp
功能:将两个变量的值进行交换输出。
日期:2021.9.24
版本:1.0
*/
#include<iostream>
using namespace  std;
int main() {
	int x, y, z;
	cout << "请分别输入两个数x,y:";
	cin >> x;
	cin >> y;
	
	z = y;
	y = x;
	x = z; //用中间变量换
	cout << "x=" << x << endl;
	cout << "y=" << y << endl;
	return 0;
}

运行结果截图:图片描述

题目5

/*
程序名:题目5.cpp
功能:判断位数 输出 逆序输出
日期:2021.9.24
版本:1.0
*/
#include<iostream>
using  namespace std;
int main() {
	int n, a, b, c, d, e;
	cout << "请输入数字:";
	cin >> n;
	if (n > 9999)
		cout << "五位数" << endl;
	else if (n > 999)
		cout << "四位数" << endl;
	else if (n > 99)
		cout << "三位数" << endl;
	else if (n > 9)
		cout << "二位数" << endl;
	else
		cout << "一位数" << endl;   //判断位数
	a = n % 10000 % 1000 % 100 % 10;
	b = n % 10000 % 1000 % 100 / 10;
	c = n % 10000 % 1000 / 100;
	d = n % 10000 / 1000;
	e = n / 10000;
	if (e != 0)
	{
		cout << "" << e << "" << d << "" << c << "" << b << "" << a << endl;
		cout << "" << a << "" << b << "" << c << "" << d << "" << e << endl;
	}
	else if (d != 0)
	{
		cout << "" << d << "" << c << "" << b << "" << a << endl;
		cout << "" << a << "" << b << "" << c << "" << d << endl;
	}
	else if (c != 0)
	{
		cout << "" << c << "" << b << "" << a << endl;
		cout << "" << a << "" << b << "" << c << endl;
	}
	else if (b != 0)
	{
		cout << "" << b << "" << a << endl;
		cout << "" << a << "" << b << endl;
	}
	else
	{
		cout << "" << a << endl;
		cout << "" << a << endl;
	}
	return 0;
}

运行结果截图:图片描述

题目6

1.while循环

/*
程序名:题目6.cpp
功能:三种循环求1+2+…+99+100的和
日期:2021.9.24
版本:1.0
*/


#include<iostream>
using namespace std;
int main() {
	int i = 1, sum = 0;
	while (i <= 100) {
		sum += i;
		i++;
	}
	cout << "总和为:" << sum << endl;
	return 0;
}

运行结果截图:图片描述
2.do循环


#include<iostream>
using namespace std;
int main() {
	int i = 1, sum = 0;
	do {
		sum += i;
		i++;
	} while (i <= 100);
	cout << "(do)总和为:" << sum << endl;
	return 0;
}

运行结果截图:图片描述
3.for循环


#include<iostream>
using namespace std;
int main() {
	int i, sum;
	for (sum = 0, i = 1; i <= 100;) { sum += i; i++; }

	cout << "(for)总和为:" << sum << endl;
	return 0;
}

运行结果截图:图片描述

题目7

使用循环嵌套来处理三角形每一行的空格数

1.图1

/*
程序名:题目7.cpp
功能:图形
日期:2021.9.24
版本:1.0
*/

#include<iostream>
using namespace std;
int main() {
	const  int N = 5;
	for (int i = 1; i <= 5; i++)
		cout << "******" << endl;
	return 0;
}

运行结果截图:图片描述

图2

#include<iostream>
 using namespace std;
 int main(){
     const  int N=5;
     for(int a=1;a<=N;a++){
      for(int b=1;b<=N-a;b++)
          cout<<" ";
      for(int c=1;c<=6;c++)
          cout<<"*";
      cout<<endl;}
     return 0;}

运行结果截图:图片描述

图3

#include<iostream>
 using namespace std;
 int main(){
    int a,b,c;
     const int N=5;
     for(a=1;a<=N;a++){
       for(b=1;b<=N-a;b++)     
           cout<<" "; 
       for(c=1;c<=2*a-1;c++)
           cout<<"*";
           cout<<endl;
     }
    return 0;
 }

运行结果截图:图片描述

题目8

/*
程序名:题目8.cpp
功能:求0-200的所有质数
日期:2021.9.24
版本:1.0
*/
#include<iostream>
using namespace std;
int main() {
	int n = 2, x, y = 0;
	while (n <= 200 && n >= 0) {
		for (x = 1; x <= n; x++) {
			if (n%x == 0)
				y++;
		}
		if (y <= 2)
			cout << n << endl;
		y = 0;
		n++;
	}
	return 0;
}

运行结果截图:图片描述

题目9

/*
程序名:题目9.cpp
功能:百钱买百鸡
日期:2021.9.24
版本:1.0
*/

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
	int i, m, n, count = 0;
	for (int i = 0; i <= 33; i++)
		for (int m = 0; m <= 50; m++)
			for (int n = 0; n <= 200; n++)
				if (i + n + m == 100 && (i * 3 + m * 2 + n * 0.5) == 100)
				{

					++count;
					cout << "有" << count << "种方案" << endl;
					cout << "一百元可以购买" << endl;
					cout << "母鸡" << i << endl;
					cout << "公鸡" << m << endl;
					cout << "小鸡" << n << endl;
				}

	return 0;
}

运行结果截图:图片描述

题目10

/*
程序名:题目10.cpp
功能:求两个整数 的最小公约数 最大公倍数
日期:2021.9.24
版本:1.0
*/

#include<iostream>
using namespace std;
int main() {
	int a, b, c, d;
	cout << "输入两个整数:";
	cin >> a >> b;
	for (int i = 1; i <= a; i++) {
		if (a%i == 0 && b%i == 0) {
			c = i;
		}
	}
	d = a * b / c;
	cout << "最大公约数是" << c << endl;
	cout << "最小公倍数是" << d << endl;
	return 0;
}

运行结果截图:图片描述

四、实验小结

问题与解决方法

1.编译出错,提示error C4700: 使用了未初始化的局部变量“n”

解决方法:当局部变量未初始化,且在第一次赋值前引用了该变量值,那么就会报使用了未初始化的局部变量这样一个警告或者错误。应该在i=0的时候同样对n进行初始化赋值。

2.编译时一直无法运行 却没有提示

解决方法:查看自己}和;是否对应或缺少

心得体会

1.编写C++程序要遵循语法规范

2.根据编译提示,更改自己的错误

3.遇到不会的没法解决,一定要找会的人赶紧解决并标记

4.多写标记,不然第二次看很难受,看不懂

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一只大狸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值