c语言编程题,急!

2024-11-18 12:24:38
推荐回答(5个)
回答1:

因为等腰三角形和直角三角形不是按同一条件进行划分的,所以它们的关系是并列的,┱Sévén
的程序有点逻辑错误,我把它改了一下,调试过,应该没问题
#include+
void
main()
{
//a,b,c用来记录输入的三条边长
float
a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(a>0
&&
b>0
&&
c>0
&&
a+b>c
&&
a+c>b
&&
b+c>a)//判断三边长能否构成三角形
{
if(a==b
&&
b==c)
printf("等边");//判断是否是等边三角形
else//如果不是
{
if(a==b
||
a==c
||
b==c)
printf("等腰");//判断是否是等腰三角形
if(a*a+b*b==c*c
||
a*a+c*c==b*b
||
b*b+c*c==a*a)
printf("直角");//判断是否是直角三角形
else
printf("任意");//如果都不是,则输出"任意"
}
}
else
printf("不是");//如果不能构成三角形则输出"不是"
printf("三角形\n");
}

回答2:

程序自己写吧,对提高你的能力有帮助.
思路:
先用三个变量a
b
c存输出
再根据它们按余弦定理算每个角的余弦值
下面可用IF结构
if(两个值相等)
为等腰
if(三个值相等)
为等边
if(一个值为0)
为直角
else
为任意三角形

回答3:

//1:编一个程序:从键盘输10个正数计算平均值,并输出.
//要求:1:输入负数时需提示用户重新输入
//2:平均值输出时保留两位小数
#include
void main(void)
{
double nA[10]={0};
double sum=0;
printf("Input ten numbers:\n");
for(int nI=0; nI<10; ) //利用数组接收10个数
{
scanf("%lf",&nA[nI]);
if( nA[nI]<0 ) //判断是否负数
{
printf("Input error,again input please!\n");
continue;
}
sum+=nA[nI]; //求和
nI++;
}
double Average=sum/10; //求平均值
printf("The average is: %.2lf\n",Average);
}

//从键盘上输入一个字符串,把字符中的字母小写变大写,大写变小写,其它不变,再把变后的字符输出
#include
void main(void)
{
char str[256]={0};
int nI=0;
printf("Input string:\n");
scanf("%s",str);
while( str[nI]!='\0' )
{
if(str[nI] >='a' && str[nI]<='z')
{
str[nI]=str[nI]-32;
}
else if(str[nI]>='A'&& str[nI]<='Z')
{
str[nI]=str[nI]+32;
}
nI++;
}
printf("Output is:\n%s\n",str);
}

//3:编写一个invert 函数long invert(char Str[])将一个数字字符串转换为一个倒置的整数.例如:输入字符串"2345'转化为"5432'
#include
#include

long Invert (char str[]) //定义Invert函数
{
int sum=0,temp=0,nJ=10;
int len=strlen(str); //得到字符串长度
for(int nI=0;nI< len;nI++)
{
temp=str[nI]-'0'; //转换成数字
if(nI>0)
{
temp*=nJ;
nJ*=10;
}
sum+=temp; //叠加到sum 变量
}
return sum;
}

void main (void)
{
char str[256]="654321";
long nA=Invert(str); //调用Invert函数
printf("%d\n",nA);
}

//4:磁盘文件1TXT 中有10个整数,将所有整数保存到a 数组中并将其输出!
#include

void main (void)
{
int nA[10]={0};
FILE * fp=fopen("d:\\1.txt","r"); //打开磁盘D:\\1.txt 文件
for(int nI=0; nI<10; nI++)
{
fscanf(fp,"%5d",&nA[nI]); //按固定格式取出数字到数组
}
fclose(fp);
for(nI=0;nI<10;nI++)
{
printf("%d-",nA[nI]); //输出
}
printf("\n");
}

/*文件中存放数字的格式必须是以下格式
12 25 36 69 47 52 58 24 47 36
*/

回答4:

包含命令拼错了~~
直接把算法写到输出那里~
定义的float类型,记得scanf的时候是%f,不是%d
#include
main()
{
float a,b,c,x,y,z;
a=0.8;
b=1.0;
c=3.5;

scanf("%f%f%f",&x,&y,&z);

printf("%f\n",a*x+b*y+c*z);
}

回答5:

你把scanf语句放前面试试啊,程序如下:
#includes
main()
{
scanf("%d%d%d",&x,&y,&z);
float a,b,c,x,y,z,sum;
a=0.8;
b=1.0;
c=3.5;
sum=a*x+b*y+c*z;
printf("%f\n",sum);
}