C++程序求助,有几句看不懂。要注释,谢谢了。
#include<iostream>usingnamespacestd;//-------------------------------------classPoint...
#include<iostream>
using namespace std;
//-------------------------------------
class Point{
int x, y;
public:
void set(int a, int b){ x=a, y=b; }
Point operator+(const Point& d){ 看不懂
Point s;
s.set(x+d.x, y+d.y);
return s;
}//----------------------------------
friend ostream& operator<<(ostream& o, const Point& d);看不懂了
};//===================================
inline ostream& operator<<(ostream& o, const Point& d){ 看不懂
return o<<"("<<d.x<<","<<d.y<<")\n";
}//====================================
int main(){
Point s,t;
s.set(2,5);
t.set(3,1);
cout<<s+t;
}//==================================== 展开
using namespace std;
//-------------------------------------
class Point{
int x, y;
public:
void set(int a, int b){ x=a, y=b; }
Point operator+(const Point& d){ 看不懂
Point s;
s.set(x+d.x, y+d.y);
return s;
}//----------------------------------
friend ostream& operator<<(ostream& o, const Point& d);看不懂了
};//===================================
inline ostream& operator<<(ostream& o, const Point& d){ 看不懂
return o<<"("<<d.x<<","<<d.y<<")\n";
}//====================================
int main(){
Point s,t;
s.set(2,5);
t.set(3,1);
cout<<s+t;
}//==================================== 展开
展开全部
第一个程序:在屏幕中输出“我喜欢学习C++语言”
#include<iostream>
using namespace std;
int main()
{
cout<<"我喜欢学习C++语言"<<endl;
}
第二个程序:求圆的面积
#include<iostream>
using namespace std;
void main()
{
const double PI=3.14159;
int r;
double s;
cout<<"圆的半径 r:"<<endl;
cin>>r;
cout<<"圆的面积s="<<PI*r*r<<endl;
}
3.判断三角形的形状
#include<iostream>
using namespace std;
void main()
{
int a,b,c;
cout<<"请输入三个负整数a b c:"<<endl;
cin>>a>>b>>c;
if((a+b<=c)||(b+c<=a)||(a+c<=b))
cout<<"这三条边不能构成三角形"<<endl;
else
if(a==b&&b==c)
cout<<"构成三角形是等边三角形"<<endl;
else
if(a==b||b==c||c==a)
cout<<"构成三角形是等腰三角形"<<endl;
else
cout<<"构成三角形是普通三角形"<<endl;
}
4.输入一个数m(为1到7的整数)对应输出时星期几
#include<iostream>
using namespace std;
void main()
{
int m;
cout<<"请输入一个大于等于1小于等于7的正整数 m:"<<endl;
cin>>m;
switch(m)
{
case 1: cout<<"星期一"<<endl;break;
case 2: cout<<"星期二"<<endl;break;
case 3: cout<<"星期三"<<endl;break;
case 4: cout<<"星期四"<<endl;break;
case 5: cout<<"星期五"<<endl;break;
case 6: cout<<"星期六"<<endl;break;
case 7: cout<<"星期天"<<endl;break;
default:{
cout<<"请输入正确的信息"<<endl;
}
}
}
5.在屏幕中输出
***********
*********
*******
*****
***
*
#include<iostream>
using namespace std;
void main()
{
int i,j,m;
for(i=1;i<=6;i++){
for(j=1;j<=(-2)*i+13;j++)
cout<<"*";
cout<<endl;
for(m=1;m<=i;m++)
cout<<" " ;
}
}
6.排序问题
#include<iostream>
using namespace std;
void main()
{
int i,j,max,index;
int a[10];
cout<<"输入十个整数:";
for(i=0;i<=9;i++)
cin>>a[i];
for(i=9;i>0;i--)
{
max=a[i];
index=i;
for(j=i-1;j>=0;j--)
{
if(max<a[j])
{
max=a[j];
index=j;
}
}
if(index!=i)
{
a[index]=a[i];
a[i]=max;
}
}
cout<<"输出排序后的整数:";
for(i=0;i<=9;i++)
cout<<a[i]<<" ";
cout<<endl;
}
7.输入一个数组,输出主对角线的元素之和,并输出该数组的转置
#include<iostream>
using namespace std;
void main()
{
int i,j,s,index;
s=0;
int a[4][4]=;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(i==j)
s+=a[i][j];
if(a[i][j]<10)
cout<<a[i][j]<<" ";
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"主对角线的元素之和s="<<s<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=i;j++)
{
index=a[i][j];
a[i][j]=a[j][i];
a[j][i]=index;
}
}
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(a[i][j]<10)
cout<<a[i][j]<<" ";
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
8.编写程序,定义2个整型指针,并使它们指向2个整形变量,利用指针分别输出两个变量的值和它们的内存地址;使用指针交换两个变量的值,再次输出变量的值和它们的内存地址;交换两个指针的值,观察程序的运行结果
#include<iostream>
using namespace std;
void main()
{
int i=5,j=8, *p,*q,s,*t;
p=&i;
q=&j;
cout<<"i和j的值为:"<<*p<<" "<<*q<<endl;
cout<<"i和j的地址为:"<<p<<" "<<q<<endl;
s=*p;
*p=*q;
*q=s;
cout<<"i和j的值为:"<<*p<<" "<<*q<<endl;
cout<<"i和j的地址为:"<<p<<" "<<q<<endl;
t=p;
p=q;
q=t;
cout<<"交换指针p和q后,p和q的值为:"<<p<<" "<<q<<endl;
}
9.编写程序,动态创建一个字符数组,从键盘输入一个字符串并把它保存到字符数组中。找出字符串中所有的小写字母字符,将它们转换成相应的大写字母字符,输出转换后的字符串。要求使用字符指针操作字符数组。
#include<iostream>
using namespace std;
void main()
{
char *p,*q;
p=new char [100];
cout<<"请输入字符串:"<<endl;
cin>>p;
for(int i=0;p[i]!='\0';i++)
if(p[i]>='a'&&p[i]<='z')
p[i]=p[i]-32;
cout<<p<<endl;
delete [] p;
}
10.编写程序,定义一个表示学生考试成绩信息的结构数据类型,在程序运行过程中,根据用户输入的学生数目,动态创建一个这种结构数据类型的变量数组,并从键盘输入每个学生的相关信息,然后根据某门课程的成绩,按从大到小的顺序对该数组中的元素进行排序。分别输出排序前的数组内容和排序后的数组内容。
#include<iostream>
using namespace std;
struct student_information
{
char name[20];
char sex[20];
int num;
int age;
int grade;
};
void main()
{
int m,i,j;
cout<<"请输入学生人数m :"<<endl;
cin>>m;
student_information *p=new student_information [100];
cout<<"请分别输入这"<<m<<"个人的姓名、性别、学号、年龄、成绩"<<endl;
for(i=0;i<m;i++){
cin>>p[i].name>>p[i].sex>>p[i].num>>p[i].age>>p[i].grade;
}
cout<<"排序前各个学生的信息表:"<<endl;
cout<<"姓名\t性别\t学号\t年龄\t分数"<<endl;
for( i=0;i<m;i++)
cout<<p[i].name<<"\t"<<p[i].sex<<"\t"<<p[i].num<<"\t"<<p[i].age<<"\t"<<p[i].grade<<endl;
for( i=0;i<m;i++)
{
int max=p[i].grade;
int index=i;
for(j=i+1;j<=m-1;j++)
{
if(max<p[j].grade)
{
max=p[j].grade;
index=j;
}
}
if(index!=i)
{
student_information q;
q.grade=p[index].grade;
q.age=p[index].age;
strcpy(q.name, p[index].name);
q.num=p[index].num;
strcpy(q.sex, p[index].sex);
p[index].grade=p[i].grade;
p[index].age=p[i].age;
strcpy(p[index].name, p[i].name);
p[index].num=p[i].num;
strcpy(p[index].sex, p[i].sex);
p[i].grade=max;
p[i].age=q.age;
strcpy(p[i].name, q.name);
p[i].num=q.num;
strcpy(p[i].sex, q.sex);
}
}
cout<<"排序后各个学生的信息表:"<<endl;
cout<<"姓名\t性别\t学号\t年龄\t分数"<<endl;
for(i=0;i<m;i++)
cout<<p[i].name<<"\t"<<p[i].sex<<"\t"<<p[i].num<<"\t"<<p[i].age<<"\t"<<p[i].grade<<endl;
delete [] p;
}
#include<iostream>
using namespace std;
int main()
{
cout<<"我喜欢学习C++语言"<<endl;
}
第二个程序:求圆的面积
#include<iostream>
using namespace std;
void main()
{
const double PI=3.14159;
int r;
double s;
cout<<"圆的半径 r:"<<endl;
cin>>r;
cout<<"圆的面积s="<<PI*r*r<<endl;
}
3.判断三角形的形状
#include<iostream>
using namespace std;
void main()
{
int a,b,c;
cout<<"请输入三个负整数a b c:"<<endl;
cin>>a>>b>>c;
if((a+b<=c)||(b+c<=a)||(a+c<=b))
cout<<"这三条边不能构成三角形"<<endl;
else
if(a==b&&b==c)
cout<<"构成三角形是等边三角形"<<endl;
else
if(a==b||b==c||c==a)
cout<<"构成三角形是等腰三角形"<<endl;
else
cout<<"构成三角形是普通三角形"<<endl;
}
4.输入一个数m(为1到7的整数)对应输出时星期几
#include<iostream>
using namespace std;
void main()
{
int m;
cout<<"请输入一个大于等于1小于等于7的正整数 m:"<<endl;
cin>>m;
switch(m)
{
case 1: cout<<"星期一"<<endl;break;
case 2: cout<<"星期二"<<endl;break;
case 3: cout<<"星期三"<<endl;break;
case 4: cout<<"星期四"<<endl;break;
case 5: cout<<"星期五"<<endl;break;
case 6: cout<<"星期六"<<endl;break;
case 7: cout<<"星期天"<<endl;break;
default:{
cout<<"请输入正确的信息"<<endl;
}
}
}
5.在屏幕中输出
***********
*********
*******
*****
***
*
#include<iostream>
using namespace std;
void main()
{
int i,j,m;
for(i=1;i<=6;i++){
for(j=1;j<=(-2)*i+13;j++)
cout<<"*";
cout<<endl;
for(m=1;m<=i;m++)
cout<<" " ;
}
}
6.排序问题
#include<iostream>
using namespace std;
void main()
{
int i,j,max,index;
int a[10];
cout<<"输入十个整数:";
for(i=0;i<=9;i++)
cin>>a[i];
for(i=9;i>0;i--)
{
max=a[i];
index=i;
for(j=i-1;j>=0;j--)
{
if(max<a[j])
{
max=a[j];
index=j;
}
}
if(index!=i)
{
a[index]=a[i];
a[i]=max;
}
}
cout<<"输出排序后的整数:";
for(i=0;i<=9;i++)
cout<<a[i]<<" ";
cout<<endl;
}
7.输入一个数组,输出主对角线的元素之和,并输出该数组的转置
#include<iostream>
using namespace std;
void main()
{
int i,j,s,index;
s=0;
int a[4][4]=;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(i==j)
s+=a[i][j];
if(a[i][j]<10)
cout<<a[i][j]<<" ";
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"主对角线的元素之和s="<<s<<endl;
for(i=0;i<=3;i++)
{
for(j=0;j<=i;j++)
{
index=a[i][j];
a[i][j]=a[j][i];
a[j][i]=index;
}
}
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(a[i][j]<10)
cout<<a[i][j]<<" ";
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
8.编写程序,定义2个整型指针,并使它们指向2个整形变量,利用指针分别输出两个变量的值和它们的内存地址;使用指针交换两个变量的值,再次输出变量的值和它们的内存地址;交换两个指针的值,观察程序的运行结果
#include<iostream>
using namespace std;
void main()
{
int i=5,j=8, *p,*q,s,*t;
p=&i;
q=&j;
cout<<"i和j的值为:"<<*p<<" "<<*q<<endl;
cout<<"i和j的地址为:"<<p<<" "<<q<<endl;
s=*p;
*p=*q;
*q=s;
cout<<"i和j的值为:"<<*p<<" "<<*q<<endl;
cout<<"i和j的地址为:"<<p<<" "<<q<<endl;
t=p;
p=q;
q=t;
cout<<"交换指针p和q后,p和q的值为:"<<p<<" "<<q<<endl;
}
9.编写程序,动态创建一个字符数组,从键盘输入一个字符串并把它保存到字符数组中。找出字符串中所有的小写字母字符,将它们转换成相应的大写字母字符,输出转换后的字符串。要求使用字符指针操作字符数组。
#include<iostream>
using namespace std;
void main()
{
char *p,*q;
p=new char [100];
cout<<"请输入字符串:"<<endl;
cin>>p;
for(int i=0;p[i]!='\0';i++)
if(p[i]>='a'&&p[i]<='z')
p[i]=p[i]-32;
cout<<p<<endl;
delete [] p;
}
10.编写程序,定义一个表示学生考试成绩信息的结构数据类型,在程序运行过程中,根据用户输入的学生数目,动态创建一个这种结构数据类型的变量数组,并从键盘输入每个学生的相关信息,然后根据某门课程的成绩,按从大到小的顺序对该数组中的元素进行排序。分别输出排序前的数组内容和排序后的数组内容。
#include<iostream>
using namespace std;
struct student_information
{
char name[20];
char sex[20];
int num;
int age;
int grade;
};
void main()
{
int m,i,j;
cout<<"请输入学生人数m :"<<endl;
cin>>m;
student_information *p=new student_information [100];
cout<<"请分别输入这"<<m<<"个人的姓名、性别、学号、年龄、成绩"<<endl;
for(i=0;i<m;i++){
cin>>p[i].name>>p[i].sex>>p[i].num>>p[i].age>>p[i].grade;
}
cout<<"排序前各个学生的信息表:"<<endl;
cout<<"姓名\t性别\t学号\t年龄\t分数"<<endl;
for( i=0;i<m;i++)
cout<<p[i].name<<"\t"<<p[i].sex<<"\t"<<p[i].num<<"\t"<<p[i].age<<"\t"<<p[i].grade<<endl;
for( i=0;i<m;i++)
{
int max=p[i].grade;
int index=i;
for(j=i+1;j<=m-1;j++)
{
if(max<p[j].grade)
{
max=p[j].grade;
index=j;
}
}
if(index!=i)
{
student_information q;
q.grade=p[index].grade;
q.age=p[index].age;
strcpy(q.name, p[index].name);
q.num=p[index].num;
strcpy(q.sex, p[index].sex);
p[index].grade=p[i].grade;
p[index].age=p[i].age;
strcpy(p[index].name, p[i].name);
p[index].num=p[i].num;
strcpy(p[index].sex, p[i].sex);
p[i].grade=max;
p[i].age=q.age;
strcpy(p[i].name, q.name);
p[i].num=q.num;
strcpy(p[i].sex, q.sex);
}
}
cout<<"排序后各个学生的信息表:"<<endl;
cout<<"姓名\t性别\t学号\t年龄\t分数"<<endl;
for(i=0;i<m;i++)
cout<<p[i].name<<"\t"<<p[i].sex<<"\t"<<p[i].num<<"\t"<<p[i].age<<"\t"<<p[i].grade<<endl;
delete [] p;
}
展开全部
#include<iostream>
using namespace std;
//-------------------------------------
class Point{
int x, y;
public:
void set(int a, int b){ x=a, y=b; }
Point operator+(const Point& d){ //重载运算符 + 用于point 对象的相加运算
Point s;
s.set(x+d.x, y+d.y);
return s;
}//----------------------------------
friend ostream& operator<<(ostream& o, const Point& d);/*重载运算符<<用于直接输出对 象 如cout<<a; (a为point对象) friend 表示该函数为友元函数*/
};//===================================
inline ostream& operator<<(ostream& o, const Point& d){ //ostream是输出类 对其对象o进行赋值后返回o对象
return o<<"("<<d.x<<","<<d.y<<")\n";
}//====================================
int main(){
Point s,t;
s.set(2,5);
t.set(3,1);
cout<<s+t;
using namespace std;
//-------------------------------------
class Point{
int x, y;
public:
void set(int a, int b){ x=a, y=b; }
Point operator+(const Point& d){ //重载运算符 + 用于point 对象的相加运算
Point s;
s.set(x+d.x, y+d.y);
return s;
}//----------------------------------
friend ostream& operator<<(ostream& o, const Point& d);/*重载运算符<<用于直接输出对 象 如cout<<a; (a为point对象) friend 表示该函数为友元函数*/
};//===================================
inline ostream& operator<<(ostream& o, const Point& d){ //ostream是输出类 对其对象o进行赋值后返回o对象
return o<<"("<<d.x<<","<<d.y<<")\n";
}//====================================
int main(){
Point s,t;
s.set(2,5);
t.set(3,1);
cout<<s+t;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vc环境下,A编译错误,a不是指针变量,不能改变值,即“a++”是非法的。
b是可以的,a表示数组a的首地址,即a==&a==a+0,a+1为第二个元素地址,即a+1==&a[1],以此类推,故b可以
而c。。先说d,p是指针变量,p初始指向a,p+1即a+1,故d可以
对于c,等价于scanf(“%d”,p);p++;传入的值是给a的,所以错误,你可以试试
b是可以的,a表示数组a的首地址,即a==&a==a+0,a+1为第二个元素地址,即a+1==&a[1],以此类推,故b可以
而c。。先说d,p是指针变量,p初始指向a,p+1即a+1,故d可以
对于c,等价于scanf(“%d”,p);p++;传入的值是给a的,所以错误,你可以试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运算符重载!就是用来实现point类的对象的相加,输入以及输出功能!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询