实验一 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.多写标记,不然第二次看很难受,看不懂