要求写一个完整的C程序,实现:从键盘输入一个大于或等于零的数,求这个数的平方根(用函数sqrt)。

要求写一个完整的C程序,实现:从键盘输入一个大于或等于零的数,求这个数的平方根(用函数sqrt)。,第1张

#include<stdio.h>

#include<math.h>

int main()

{ double x

  scanf("%lf",&x)  

  printf("%g\n",sqrt(x))

  return 0

}

#include <stdio.h>

#define MAX 20/* userCode(<100字符): 自定义函数之原型声明 */

void rotate( int (*arrA)[MAX], int (*arrB)[MAX], int m, int n)

int main(void)

{

int arrA[MAX][MAX], arrB[MAX][MAX], i, j, m, n

printf("请输入 m n: ")

scanf("%d %d", &m, &n)

printf("请输入 %d 行 %d 列矩阵:\n", m, n)

for (i=0i<mi++)

{

for (j=0j<nj++)

{

scanf("%d", &arrA[i][j])

}

}

rotate(arrA, arrB, m, n)

/* 调用函数进行转置 */

printf("\n转置后的矩阵为:\n")

for (i=0i<ni++)

{

for (j=0j<mj++)

{

printf("%5d ", arrB[i][j])

}

putchar('\n')

}

return 0

}

void rotate( int (*arrA)[MAX], int (*arrB)[MAX], int m, int n)

{

int i = 0

int j = 0

for( i=0i<mi++ )

{

for( j=0j<nj++ )

{

arrB[j][i] = arrA[i][j]

}

}

}

你写的这个程序错误略多,首先用到sqrt()函数需要调用math.h,然后x=0.5*(a+b+c)右边是一个double型,赋给一个整型变量x是不行的,下一行的s同理。解决办法:将x和s直接定义为double型变量。另外,三角形三条边不一定是整数吧,建议定义为float型变量,double型也一样。还有if的用法错误了,if语句后面的语句x=0.5*(a+b+c)后一个分号已经让if结束了。后面的else就变成了一个没有if对应的非法使用,所以这里需要把x=……到printf语句两侧加{ }。最后要指出一个相对低级的错误--! s=sqrt……后面的x(x-a)(x-b)(x-c)中间的乘号*是不能省的。下面是我给你改好的代码,祝你好运。

#include<stdio.h>

#include <math.h>

void main()

{

float a,b,c

double x,s

scanf("%f %f %f",&a,&b,&c)

if (a+b>c&&a+c>b&&b+c>a)

{

x=0.5*(a+b+c)

s=sqrt(x*(x-a)*(x-b)*(x-c))

printf("%f\n",s)//'\n'应该知道吧,换行的意思

}

else printf("不能构成三角形\n")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7991822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存