资源描述
输配电一班内部资料—C++所有上机实验
实验二
第1题
• 编写程序计算梯形面积。公式为:s=(a+b)h/2,其中:a、b分别为梯形上底和下底的宽,h为梯形的高。
• 运行该语句后结果是 ?cout<<(cout<<5,2,8)<<endl;
cout<<5,2;
为什么?
#include<iostream.h>
void main()
{float a,b,h;
float s;
cout<<"请输入梯形的上底,下底和高:";
cin>>a>>b>>h;
s=(a+b)*h/2;
cout<<"梯形的面积为"<<s<<endl;
}
第2题
• 已知华氏温度和摄氏温度的转换公式为:
C=(F-32)*5/9,其中C为摄氏温度F为华氏温度。
假设当前华氏温度为80度,求对应的摄氏温度是多少?要求输出最后结果。
#include<iostream.h>
void main()
{float F;
float C;
cout<<"请输入华氏温度:";
cin>>F;
C=(F-32)*5/9;
cout<<"摄氏温度为:"<<C<<endl;
}
第3题
• 假设三角形的三边长为3,4,5,求其面积。 (s=(a+b+c)/2,area=sqrt(s(s-a)(s-b)(s-c))
(上述四题变量的值要求从键盘提供。)
• 提示:使用根号,需在文件前方加上独立的一行#include <math.h>,并使用sqrt函数完成。如x = sqrt(2),则x的值即为1.414
#include<iostream.h>
#include<math.h>
void main()
{float a,b,c,d;
float s;
float area;
cout<<"请输入三角形的三边:";
cin>>a>>b>>c;
if (a+b>c&&b+c>a&&a+c>b)
{ s=(a+b+c)/2;
d=s*(s-a)*(s-b)*(s-c);
area=sqrt(d);
cout<<"三角形的面积为:"<<area<<endl;
}
else
{
cout<<"无法构成三角形";
}
}
第4题
• 假设有任意一个x为3位数(如x=123),求出其倒序之后的结果(如x=321)。
• 思路:按课堂上所讲解,分别拆出123的百位、十位和个位分别用a、b和c来表示,再组合为321。
• 十位数为:b = x / 10 % 10;
#include<iostream.h>
void main()
{int a,b,c;
int x;
cout<<"请输入一个三位数:";
cin>>x;
a=x/100;
b=x/10%10;
c=x%10;
{int y;
y=100*c+10*b+a;
cout<<"倒序三位数为:"<<y<<endl;
}
}
第5题
• 编写程序,实现从键盘输入三个整型数,求三个整型数的中间值(三个数分别为a、b、c)。
• 提示:前二个数相比较大的放入tmax ,小的放入tmin中(也用条件运算符来完成), 中间值条件表达为;
(c>tmax?tmax:(c<tmin?tmin:c))
#include<iostream.h>
void main( )
{ int a,b,c;
int tmax;
int tmin;
int zjs;
cout<<"请输入三个变量的值:";
cin>>a>>b>>c;
if(a>=b)
{tmax=a;
tmin=b;
}
else
{tmax=b;
tmin=a;
}
zjs=c>tmax?tmax:(c<tmin?tmin:c);
cout<<"中间数为:"<<zjs<<endl;
}
实验三
第1题
• 用cin语句从键盘输入一个整数,要求判断其奇偶性,并输出结果。
• 例:输入的是3,则输出“3是奇数”,如输入的是4则输出“4是偶数”。
• 注意这里输出的时候数值部分应该根据输入的值发生变化,而不是固定写在字符串当中。
• 关于cin和cout的具体用法请参阅课本
#include<iostream.h>
void main()
{ int i;
cout<<"请输入一整数:";
cin>>i;
if(i%2==0)
cout<<"该整数是偶数"<<endl;
else
cout<<"该整数是奇数"<<endl;
}
第2题
• 用cin语句从键盘输入一个整数,要求判断其正负性,并输出结果。
• 例:输入的是3,则输出“3是正数”,如输入的是-4则输出“-4是负数”,如果输入的是0则输出“该数是零”
• 注意这里输出的时候数值部分应该根据输入的值发生变化,而不是固定写在字符串当中。
• 关于cin和cout的具体用法请参阅课本
#include<iostream.h>
void main()
{int i;
cout<<"请输入一整数:";
cin>>i;
if(i*-1==0)
cout<<"该整数是0"<<endl;
else
if(i*-1<0)
cout<<"该整数是正数"<<endl;
else
cout<<"该整数是负数"<<endl;
}
第3题
• 用cin输入一个整数,判断其是否是3或5的倍数。
• 分别用15,9,10,8四个例子,来测验本题的四种不同的结果(都可以、只能被3、只能被5、都不能),并输出结果。
• 如:输入的是9,则输出“9只能被3整除”,输入的是15,则输出“15可以同时被3和5整除”。
#include<iostream.h>
void main()
{ int a;
cout<<"请输入一个整数:";
cin>>a;
if(a%3==0)
cout<<"a是3的倍数";
else
cout<<"a不是3的倍数";
if(a%5==0)
cout<<"a是5的倍数";
else
cout<<"a不是5的倍数";
}
第4题
• 完成算术四则运算:a,b,为实型c为字符型
• 从键盘输入a+b、a-b、a*b、a/b
• 用switch 语句来编写
• 运行程序后要测试
输入:12+60
10.5-5.5
2.5*0.5
3/5
#include<iostream.h>
void main()
{ char c;
float a,b;
cout<<"输入两个整数:"<<endl;
cin>>a>>c>>b;
cout<<"结果为:"<<endl;
switch(c)
{ case'+':cout<<a+b<<endl;break;
case'-':cout<<a-b<<endl;break;
case'*':cout<<a*b<<endl;break;
case'/':cout<<a/b<<endl;break;
}
}
第5题
• 用cin输入三角形的三条边,判断能否构成三角形。
• 注:需要考虑尽可能的情况,如三边是否为负数或者0,以及两边之和是否大于第三边等。
• 输出最终的结果,如输入的是1 2 3,则输出“1 2 3 不能构成三角形”,如输入的是3 4 5,则输出“3 4 5 可以构成三角形”。
#include<iostream.h>
void main()
{ float a,b,c;
cin>>a>>b>>c;
if(a<=0||b<=0||c<=0){
cout<<a<<" "<<b<<" "<<c<<"不能构成三角形"<<endl;
}else
if(a+b>c&&b+c>a&&a+c>b)
cout<<a<<" "<<b<<" "<<c<<"能构成三角形"<<endl;
else
cout<<a<<" "<<b<<" "<<c<<"不能构成三角形"<<endl;
}
实验四
第1题:用cin语句从键盘输入一个月份的值,用if语句判断该月的季节并输出结果。(假设1-3为春,4-6为夏,7-9为秋,10-12为冬)
#include<iostream.h>
void main()
{int a;
cout<<"输入一个月份的值:";
cin>>a;
if(1<=a&&a<=3)
cout<<"春"<<endl;
if(4<=a&&a<=6)
cout<<"夏"<<endl;
if(7<=a&&a<=9)
cout<<"秋"<<endl;
if(10<=a&&a<=12)
cout<<"冬"<<endl;
}
•
第2题
• 用cin语句从键盘输入一个月份的值,用switch语句判断该月的季节并输出结果。(假设1-3为春,4-6为夏,7-9为秋,10-12为冬)
#include<iostream.h>
void main( )
{int season;
cout<<"请输入一个季节:";
cin>>season;
cout<<"季节为:";
switch(season)
{ case 12:cout<<"冬";break;
case 11:cout<<"冬";break;
case 10:cout<<"冬";break;
case 9:cout<<"秋";break;
case 8:cout<<"秋";break;
case 7:cout<<"秋";break;
case 6:cout<<"夏";break;
case 5:cout<<"夏";break;
case 4:cout<<"夏";break;
case 3:cout<<"春";break;
case 2:cout<<"春";break;
case 1:cout<<"春";break;
}
}
第3题
• 要求从键盘输入年份,判断该年份,是否为闰年。参教材p90页。
#include<iostream.h>
void main()
{ int year;
cout<<"请输入一年份\n";
cin>>year;
if(year%4==0&&year%100!=0||year%400==0) //能被4整除但不能被100整除,或者能被400整除
cout<<year<<"年是闰年\n";
else
cout<<year<<"年不是闰年\n";
}
第4题
用cin从键盘输入一个字符,用if语句判断并输出该字符的种类(大写字母、小写字母、阿拉伯数字以及其他字符)。
#include<iostream.h>
void main()
{ char c;
cout<<"请输入一个字符:";
cin>>c;
if(c>='a'&&c<='z')
cout<<"该字符为小写字母\n";
else if(c>='A'&&c<='Z')
cout<<"该字符为大写字母\n";
else if(c>='0'&&c<='9')
cout<<"该字符为阿拉伯数字\n";
else
cout<<"该字符为其他字符\n";
• }
第5题
从键盘输入三个数(a,b,c),要求按从小到大进行排序。
#include<iostream.h>
void main()
{
float a,b,c,t;
cout<<"请输入a b c三个数:"<<endl;
cin>>a>>b>>c;
if(a<b) //如果a小于b的值,那么就交换a,b变量的值
{t=a;a=b;b=t;}
if(b<c)
{t=b;b=c;c=t;
if(a<b)
{t=a;a=b;b=t;}
}
cout<<c<<"<"<<b<<"<"<<a<<endl;
}
实验五
第1题
用任意的循环语句求出1-100之间所有奇数的和(1+3+5+…+99)并输出结果。
#include<iostream.h>
void main( )
{ int i,sum;
i=1;
sum=0;
while(i<100)
{sum+=i;//sum=sum+i的C++写法
i=i+2;
}
cout<<"1到100之间所有奇数的和是:";
cout<<sum<<endl;
}
第2题
• 编程输出1-100之内所有能被3整除的数,并输出这些数。
• 本题输出结果应该为:3 6 9 12 ….99
• 提示:对i进行100次循环,在每次循环中判断i能否被3整除,如果可以则输出,否则进行下一次循环。
#include<iostream.h>
void main( )
{ int i,x;
x=3;
for(i=1;i<=100;i++)
{
if(i%3==0)
cout<<i<<endl;
}
}
第3题
• 求一个正整数的所有因子。例如:24的因子是1 2 3 4 8 6 12
#include<iostream.h>
void main( )
{ int i,x;
cout<<"请输入一个正整数:";
cin>>i;
cout<<"这个正整数的所有因子为";
for(x=1;x<=i;x++)
{ if(i%x==0)
cout<<x<<endl;
}
}
第4题
写一个程序,计算输入的正整数的位数,如输入2008,该数的位数为4。
#include<iostream.h>
void main( )
{int n,i=0;
cout<<"请输入一个正整数:";
cin>>n;
cout<<"位数为:";
while(n)
{
n=n/10;
i++;
}
cout<<"输入正整数的位数为:"<<i<<endl;
}
第5题
• 输出所有的顺序三位数。
• 所谓的顺序三位数是指 百位 <= 十位 <= 个位,如123,556都是顺序三位数,而987则不是。
#include<iostream.h>
void main( )
{ int a,b,c;
cout<<"所有的顺序三位数为:";
for(int i=100;i<1000;i++)
{ a=i/100;
b=i/10%10;
c=i%10;
if(a<=b&&b<=c)
{
cout<<i<<endl;
}
}
}
实验六
• 第1题: 编写函数squaresum,用来求解两个整数的平方和。从键盘里面用cin输入两个整数,调用该函数,并输出结果。
• 例:cout << squaresum(3,4) << endl;则输出25
#include<iostream.h>
#include<math.h>
int squaresum(int a,int b)
{ int squaresum;
return squaresum=a*a+b*b;
}
void main()
{ int a,b;
cout<<"请输入两个值";
cin>>a>>b;
cout<<squaresum(a,b)<<endl;
}
第2题
• 编写函数mypower,用来求解整数a的n次方。
• 该函数的声明为int mypower(int a , int n);
• 提示:进行n次循环,每次累乘a即可。
• 例:cout << mypower(3,4) << endl;则输出81
#include<iostream.h>
int mypower(int a,int n)
{ int b=1;
for(int i=1;i<=n;i++)
b=b*a;
return b;
}
void main()
{
int a,n;
cin>>a>>n;
cout<<mypower(a,n)<<endl;
}
第3题
• 编写函数bool isprime(int n)用来判断整数n是否为素数,如果是则返回true,否则返回false。
• 利用该函数求出1000以内所有的素数并显示。
#include<iostream.h>
#include<math.h>
bool isprime(int n)
{
bool a=1;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
a=0;break;
}
}
return a;
}
void main( )
{
int x;
for(x=2;x<=1000;x++)
{
if(isprime(x))
cout<<x<<endl;continue;
}
}
• 第4题:编程从键盘输入一个数,判断是奇偶性;
• 要求定义一个判断奇偶数的函数int even (int n),
当n为偶数时返回1,否则返回0。
#include<iostream.h>
void main()
{
int even(int n);
int x;
cin>>x;
if(even(x))
cout<<"偶数!"<<endl;
else
cout<< "奇数!"<<endl;
}
int even(int n)
{
if(n%2==0) return 1;
else return 0;
}
实验七
1. 已知组合数:c(m,r)=m!/(r!(m-r)!),其中m,r为正整数,且m>r,分别求出c(5,2),c(8,6)的组合数,阶乘及组合数用函数实现。
#include<iostream.h>
int zhs(int x)
{
if((x==0)||(x==1))
return 1;
return x*zhs(x-1);
}
void main( )
{
int a,b,c,d,e;
cout<<"输入组合数:";
cin>>d>>e;
a=zhs(d);
b=zhs(e);
c=zhs(d-e);
if(d>e)
cout<<a/(b*c)<<endl;
}
2.求400之内的亲密对数,所谓亲密对数,即A的所有因子之和等于B,B的所有因子之和等于A。
要求设计函数int fun(int n)该函数完成查找因子的功能
#include<iostream.h>
int fun(int n);
void main()
{for( i=2;i<400;i++)
if(fun(fun(i))==i)
if(i!=fun(i))
cout<<i<<"和"<<fun(i)<<"是亲密对数"<<endl;
}
int fun(int n)
{ int s=0;
for( i=1;i<n;i++)
if(n%i==0)
s+=i;
return s;
}
3.打印输出下面图形。
第一行:一个*
第二行:3个*
第三行:5个*
第四行:7个*
第五行:9个*
#include <iostream.h>
void main()
{int j,i;
for(i=1; i<=5; i++)
{
for(j=1; j<=5-i; j++)
cout <<" ";
for(j=1;j<=2*i-1;j++)
cout<<'*';
cout<<endl;
}
}
实验八
• 熟悉数组的基本操作过程
• 1)定义数组int a[5];
• 2)利用循环从键盘依次输入5个数分别赋给数组的5个元素;
• 3)求出它们的总和;
• 4)在屏幕上显示数组的5个元素以及总和
#include<iostream.h>
void main( )
{ int a[5];
int s=0;
cout<<"请输入五个正整数:\n";
for(int i=0;i<=4;i++)
{cin>>a[i];
s+=a[i];}
cout<<"五个数的和为:"<<s<<endl;
}
第2题
• 假设数组int a[5]={1,2,3,4,5};
• 1)定义数组int b[5];
• 2)将数组a中元素的平方依次付给数组b的对应元素,也就是b[0]=1,b[1]=4……要求必须使用循环完成;
• 3)在屏幕上显示数组b的5个元素的值
#include<iostream.h>
void main( )
{ int a[5]={1,2,3,4,5};
int b[5];
for(int i=0;i<=4;i++)
{b[i]=a[i]*a[i];
cout<<b[i]<<'\t';
}
cout<<endl;
}
第3题
• 定义数组int x[5] = {5 , 2 ,3 , 1 ,4};
• 复习课本当中求解数组最大值的算法,利用循环求出数组x最大值和最小值之间的差。
#include<iostream.h>
void main( )
{ int x[5]={5,2,3,1,4};
int i,main,max,min;
max=x[0];
for(i=1;i<5;i++)
if(x[i]>max)
{
max=x[i];
}
min=x[0];
for(i=1;i<5;i++)
if(x[i]<min)
{ min=x[i];
}
main=max-min;
cout<<"max="<<max<<" "<<"main="<<main<<endl;
}
第4题:
• 复习课本上的冒泡和选择排序算法,任选一种对数组int x[5] = {5 , 2 ,3 , 1 ,4}进行排序,并输出排序后的结果。
#include<iostream.h>
void main( )
{ int x[5]={5,2,3,1,4},t;
for(int j=1;j<5;j++)
for(int i=0;i<=4-j+1;i++)
if(x[i]>x[i+1])
{t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
for(int i=0;i<5;i++)
cout<<x[i]<<endl;
}
实验九
• 第1题
• 定义数组int a[2][3],运行以下步骤:
• 1)从键盘依次输入6个数存入该数组当中
• 2)按每行三个的形式打印这6个数的值
• 如输入的是1 2 3 4 5 6,则输出效果是
• 1 2 3
• 4 5 6
#include<iostream.h>
void main( )
{ cout<<"请输入六个数:\n"<<endl;
int i,j,a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
cout<<endl;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
cout<<a[i][j];
cout<<endl;
}
}
第2题
• 定义数组int a[3][4]
• 1)从键盘输入12个整数,存入该数组中;
• 2)利用循环求出数组中的最大值、最小值和总和;
• 3)打印上述结果
#include<iostream.h>
void main( )
{int i,j,k,a[3][4],max,min,sum=0;
cout<<"请输入12个整数:\n";
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
max=a[0][0],min=a[0][0];
for(k=0;k<12;k++)
{
i=k/4;j=k-i*4;
sum=sum+a[i][j];
if(a[i][j]>max)
max=a[i][j];
if(a[i][j]<min)
min=a[i][j];
}
cout<<"max="<<max<<'\n';
cout<<"min="<<min<<'\n';
cout<<"sum="<<sum<<endl;
}
实验十
第1题
• 编写函数,其功能是求出整型数组元素值的平均值。
• 建议函数原型如下
double getaverage(int a[] , int n);
其中a是数组,而n表示数组的长度
• 在main函数中定义数组,调用该函数验证结果。
#include<iostream.h>
double getaverage(int a[],int n)
{double s=0;
double p;
for(int i=0;i<n;i++)
s+=a[i];
p=s/n;
return p;
}
void main( )
{int p,m,b[50];
cout<<"程序将完成计算整型数组平均值\n";
cout<<"请输入整形数组的长度n:\n";
cin>>p;
cout<<"请输入一个整形数组以求平均值:\n";
for(m=0;m<p;m++)
cin>>b[m];
cout<<"平均值为:"<<getaverage(b,p)<<endl;
}
第2题:
• 编写函数,其功能是将数组内容进行倒序排列,如数组int a[5]的5个元素本来是1,2,3,4,5;则经过倒序之后变成5,4,3,2,1.
• 函数原型声明建议为void reverse(int a[],int n);其中a为数组而n为数组的长度。
• 算法提示:将数组的头尾元素交换,然后分别递增和递减,直到两者相遇或者尾巴超过头就结束循环。
• 假设数组元素是:1 2 3 4 5,则循环第一次之后变成:5 2 3 4 1,第二次之后变成5 4 3 2 1,第三次的时候因为头尾已经相等则结束。
• 在main函数中定义数组,调用该函数验证结果。
#include<iostream.h>
void reverse(int a[],int n)
{int t,i,j=n-1;
for(i=0;i<j;i++)
{t=a[i];a[i]=a[j];a[j]=t;j--;}}
void main( )
{int m,p,b[50];
cout<<"请输入整型数组的长度n:\n";
cin>>p;
cout<<"请输入一个整型数组:\n";
for(m=0;m<p;m++)
cin>>b[m];
reverse(b,p);
for(m=0;m<p;m++)
cout<<b[m];
cout<<'\n';
}
第3题
• 将课本上的简单查找算法提炼为函数实现,在main函数中定义数组并调用该函数验证。
• 函数的建议声明int find(int a[],int n,int k);其中a为数组,n为数组的长度,k为要查找的值。
• 如果k在该数组中,则返回对应的下标,如果不在数组中,则返回-1.
#include <iostream.h>
find(int a[], int n, int k)
{
for (int i=0;i<n;i++)
if(a[i]==k) break;
if(i<n) return i;
return -1;
}
int main()
{
int n=5; ;
int a[5] = {1,2,3,4,5};
int k = 3;
int iresult = 0;
iresult = find(a,n,k);
if ((-1) == iresult)
{
cout<<"没有查到K值!";
}
else
{
cout<<"查到了K值!";
}
return 0;
}
实验十一
• 第1题:定义数组char str[20],从键盘输入一个字符串存入该数组中。
• 要求:将字符串中进行倒序,并输出倒序后的结果。
• 思路:将字符串头尾字母交换,并逐步推进直至头超过尾。
• 例:输入的字符串为ABCdef,则输出的结果为fedCBA。
#include<iostream.h>
void main()
{char s1[20],s2[20];
int i,j;
cout<<"输入字符串:";
cin>>s1;
for(i=0;s1[i]!='\0';i++);
for(j=0;s1[j]!='\0';j++);
s2[i-j-1]=s1[j];
s2[i]='\0';
cout<<"处理后的字符串:"<<s2;
}
• 第2题:
• 定义数组char str[20],从键盘输入一个包含多种形式的字符串存入该数组中。
• 要求:统计字符串中大写字母、小写字母、阿拉伯数字和其他字符的数量。
• 例:输入的字符串是ABC&&&defg1234,则输出结果为:大写字母3个,小写字母4个,阿拉伯数字4个,其他字符3个。
• 思路:对串中每个字符判断其范围。
#include<iostream.h>
void main()
{
char str[20];
int i=0,j=0,p=0,n=0,m=0;
cin.getline(str,20);
while(str[i]!='\0')
{
if(str[i]>='a' && str[i]<='z')j++;
else if(str[i]>='A' && str[i]<='Z')n++;
else if(str[i]>='0' && str[i]<='9')m++;
else p++;
i++;
}
cout<<"小写字母有:"<<j<<endl;
cout<<"大写字母有:"<<n<<endl;
cout<<"数字有:"<<m<<endl;
cout<<"其它字母有:"<<p<<endl;
}
• 第三题:定义字符数组s1[30]和s2[20];
• 从键盘输入 VC++ 6.0 和 language存入s1和s2字符数组中;
• n从键盘上输入(如输入:6);
• 要求将字符串s2的前n个字符复制到字符数组s1中去,并在末尾加'\0'
#include<iostream.h>
void main()
{ char s1[30]={“VC++6.0”};
{char s2[20]={“language”};
int i=0,j=0,n;
while(s1[i]!=’\0’)i++;
cin>>n;
for(j=0;j<n;j++)
{
s1[i]=s2[j];
i++;
}
s1[i]=’\0’;
cout<<s1<<endl;
}
实验十二
第1题
• 定义描述平面坐标点的结构体类型point,,并定义该类型的两个变量p1和p2。
• 从键盘输入2个点的坐标数据,求两点间线段的长度,输出最后结果。
#include<iostream.h>
#include<math.h>
struct point
{
float x,y;
}p1,p2;
void main()
{
cout<<"请输入两个点的坐标数据:"<<'\n';
cin>>p1.x>>p1.y;
cin>>p2.x>>p2.y;
double d;
d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
cout<<"距离为:"<<d<<endl;
}
第2题:
• 定义金钱数的类型money,其成员包括元、角和分。
• 定义两个money的变量m1,m2
• 从键盘输入m1和m2的数据,判断m1和m2的大小
• 如m1的输入为3 4 5,m2的输入为6 7 8,则输出m1比m2小。
#include<iostream.h>
struct money
{
int yuan,jiao,fen;
}m1,m2;
void main()
{
cout<<"请输入任意两个金额:"<<'\n';
cin>>m1.yuan>>m1.jiao>>m1.fen;
cin>>m2.yuan>>m2.jiao>>m2.fen;
int x,y;
x=m1.yuan*100+m1.jiao*10+m1.fen;
y=m2.yuan*100+m2.jiao*10+m2.fen;
if(x<y)
cout<<"m1比m2小"<<endl;
else
cout<<"m2比m1小"<<endl;
}
第3题:
• 定义金钱数的类型money,其成员包括元、角和分。
• 定义两个money的变量m1,m2
• 从键盘输入m1和m2的数据,求出m1和m2的和,要求角和分的值<10,并输出结果。
• 例:m1为1元2角5分,m2为3元4角6分,则m1+m2的值应该是4元7角1分。
#include<iostream.h>
struct money
{
int yuan,jiao,fen;
}m1,m2;
void main()
{
cout<<"请输入任意两个金额:"<<'\n';
cin>>m1.yuan>>m1.jiao>>m1.fen;
cin>>m2.yuan>>m2.jiao>>m2.fen;
int x,y,z,a,b,c;
x=m1.yuan*100+m1.jiao*10+m1.fen;
y=m2.yuan*100+m2.jiao*10+m2.fen;
z=x+y;
a=z/100;
b=z/10%10;
c=z%10;
cout<<"总金额为:"<<a<<"元"<<b<<"角"<<c<<"分"<<endl;
}
实验十三
• 第1题:定义数组int a[10],定义整形指针p。
• 只利用指针p完成10个整数的输入和输出,要求循环当中不允许出现下标运算符[]。
#include<iostream.h>
void main(void)
{
int a[10],i;
int *p;
for(i=0;i<10;i++)
cin>>a[i];
for(p=a;p<=a+9;p++)
cout<<*p<<'\t';
}
第2题
• 定义数组int a[10],从键盘当中输入10个数放入其中。
• 定义指针p和q分别指向数组的开始及末尾,只用指针,不出现下标运算符[]完成数组元素的倒序。
#include<iostream.h>
void main()
{
int a[1
展开阅读全文