关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言。同一问题,算法多种。
//判断三角形类型
#include<stdio.h>
main2()
{
int x,y,z;
tiaohui:
{
do
{
printf("请输入三角形三边:\n");
scanf("%d%d%d",&x,&y,&z);
}
while(x<=0||y<=0||z<=0);
}
if((x+y>z&&x-y<z)&&(x+z>y&&x-z<y)&&(y+z>x&&y-x<x))
{
printf("可以构成三角形\n");
}
else
{
printf("不能构成三角形\n");
goto tiaohui;//跳回语句,不推荐用,但我还是尴尬地用了。
}
if (dengyao(x,y,z)==1)
{
if(x==y&&y==z)
{
printf("这是等边三角形\n");
}
else if (zhijiao(x,y,z)==1)
{
printf("这是等腰直角三角形\n");
}
else
{
printf("这是等腰三角形\n");
}
}
else if(zhijiao(x,y,z)==1)
{
printf("这是直角三角形\n");
}
else
{
printf("这是普通三角形\n");
}
}
int dengyao(int x,int y,int z)
{
if (x==y||x==z||y==z)
{
return 1;
}
else
return 0;
}
//1000以内可构成等腰直角三角形的数组
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,z;
for (x=1;x<=1000;x++)
{
for(y=1;y<=1000;y++)
{
for(z=1;z<=1000;z++)
{
if(dengyao(x,y,z)==1&&zhijiao(x,y,z)==1)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
continue;
}
else{
continue;
}
}
}
}
}
int dengyao(int x,int y,int z)
{
if (sqrt(x)==sqrt(y)||sqrt(x)==sqrt(z)||sqrt(y)==sqrt(z))
{
return 1;
}
else
return 0;
}
int zhijiao(int x,int y,int z)
{
if(x+y==z||x+z==y||y+z==x)
{
return 1;
}
else
return 0;
}
备注:暂时用比较基础的方法来写,循序渐进学习高级编程。如果看官能发挥主观能动性编写更好的,这更比程序重要。C