目录
01打印倒三角形
题目:使用循环语句打印一个倒三角形,如下
* * * * *
* * * *
* * *
* *
*
#include <iostream>
using namespace std;
int main()
{
for(int i=1;i<=5;i++)
{
for (int j=5;j>=i;j--)
{
cout <<"*";
}
cout <<endl;
}
return 0;
}
02求最大公因数和最小公倍数(辗转相除法)
题目:输入两个数,并输出两个数的最大公约数、最小公倍数。
#include <iostream>
using namespace std;
int main(void)
{
int a,b,i,j;
cout<<"输入两个整数:";
cin>>a>>b;
i=a%b;
j=a*b;
while(a%b!=0)
{
a=b;
b=i;
i=a%b;
}
cout <<"最大公约数为:"<<b;
cout <<"最小公倍数为:"<<j/b;
}
03整数字符反向输出(递归)
题目:输入一个整数,把他的字符反向输出(即将最高位到个位变成个位到最高位)。
#include <iostream>
using namespace std;
void daoxu()
{
char a;
a=getchar();
if (a=='\n')return;
daoxu();
cout<<a;
}
int main()
{ char a;
cout<<"输入一个整数:";
cin>>a;
daoxu();
cout<<a;
return 0;
}
04求三角形的面积和类型
题目:输入的三角形的三条边判断三角形的类型,并输出其面积和类型。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a,b,c,s,area;
cout<<"请输入三角形三边长度:";
cin>>a>>b>>c;
if (a+b>c&&a+c>b&&b+c>a)
{
if (a==b&&b==c&&c==a)
{
cout <<"等边三角形"<<endl;
}
else if ((a==b)||(a==c)||(b==c))
{
cout <<"等腰三角形"<<endl;
}
else if ((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
{
cout <<"直角三角形"<<endl;
}
else
{
cout<<"一般三角形"<<endl;
}
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout <<"三角形的面积为:"<<area;
}
else
{
cout <<"不构成三角形"<<endl;
}
return 0;
}
05反向打印5个字符(递归)
题目:输入五个字符,利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
#include <iostream>
using namespace std;
void daoxu()
{
char a;
a=getchar();
if (a=='\n')return;
daoxu();
cout<<a;
}
int main()
{ char a;
cout<<"输入5个字符:";
cin>>a;
daoxu();
cout<<a;
return 0;
}
06十个整数排序(冒泡排序法)
题目:输入10个正整数,对10个数进行从小到大到排序。
#include <iostream>
using namespace std;
int main()
{
int store[10];
int temp=0;
cout <<"请随机输入10个正整数";
for(int i=0;i<10;i++)
{
cin>>store[i];
}
for (int j=0;j<9;j++)
{
for(int i=0;i<9-j;i++)
{
if(store[i]>store[i+1])
{
temp=store[i];
store[i]=store[i+1];
store[i+1]=temp;
}
}
}
for(int i=0;i<10;i++)
{
cout<<store[i]<<endl;
}
return 0;
}
07求五个整数的平均数
(五个数都有可能取0,当任意一个数取0时,要求舍弃这个数。)
例如:20,-10,20,0,30五个数中,平均数计算方式为(20-10+20+30)/4
10,-20,0,0,13五个数中,平均数计算方式为(10-20+13)/3
#include <iostream>
using namespace std;
int main()
{
int store[5];
int sum=0;
int num=5;
double average;
cout << "请输入五个整数" << endl;
for (int i=0;i<5;i++)
{
cin>>store[i];
if(store[i]==0)
{
num--;
}
sum=sum+store[i];
}
average=sum/num;
cout<<average;
return 0;
}
08无序数排序
题目:对输入一组任意个数的无序数进行从小到大的排列。(用数组进行储存输入的无序数)
#include <iostream>
using namespace std;
void buble(int * arr, int leng);
int main()
{
int n;
cout<<"请输入需要排序的数个数:";
cin>>n;
int arr[n];
int leng = sizeof (arr) / sizeof (arr[0]);
cout<<"请输入"<<n<<"个无序数:";
for(int i = 0; i < leng; i++)
{
cin>> arr[i] ;
}
buble(arr, leng);
for(int i = 0; i < leng; i++)
{
cout << arr[i] << " ";
}
return 0;
}
void buble(int * arr, int leng)
{
for(int i = 0; i < leng - 1; i++)
{
for (int j = 0; j < leng - i - 1; j++)
{
int temp;
if(arr[j] > arr[j+1])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
}