//------函数功能------
//输入十个数据,寻找其中的三个质数,若不满足重新输入,若满足进行下一阶段
//判断三个质数是否满足构成三角形的条件,若满足进行面积计算
// 将三个质数进行排序(简单排序)
//将三个质数依次转化为摄氏度
//退出程序
#include<stdio.h>
#include<math.h>
int Max(int a, int b);
int If_Fac(int a);
int If_Tri(int a, int b, int c);
void work();
void work1();
void Swap(int *a, int *b);
void sort();
int b[5];
int Max(int a, int b)
{
return a > b ? a : b;
}
int If_Fac(int a)
{
if(a == 1)return 0;
int i;
for(i=2; i*i<=a; i++)
if(!(a % i)) return 0;
return 1;
}
int If_Tri(int a, int b, int c)
{
if(a + b > c && a + c > b && b + c > a) return 1;
return 0;
}
void Swap(int *a, int *b)
{
int t=*a;
*a=*b, *b=t;
}
void sort()
{
int i, j;
for(i=1; i<=3; i++)
for(j=1; j<3; j++)
if(b[j] > b[j+1]) Swap(&b[i], &b[j]);
}
void work1()
{
int i;
if(If_Tri(b[1], b[2], b[3]))
{
double s;
s = (double)(b[1]+b[2]+b[3])/2.0;
printf("S = %lf\n",sqrt(s*(s-b[1])*(s-b[2])*(s-b[3])));
}
sort();
for(i=1; i<=3; i++)
printf("%d ",b[i]);
printf("\n");
for(i=1; i<=3; i++)
printf("%d摄氏度 ",b[i]);
}
void work()
{
int temp, i, tot;
while(1)
{
tot=0;
for(i=1; i<=10; i++)
{
scanf("%d",&temp);
if(If_Fac(temp)) b[++tot] = temp;
if(tot == 3)
{work1(); return;}
}
}
}
int main()
{
work();
return 0;
}
//1 1 3 1 1 5 7 8 9 10
提示这么明显,你哪块代码少了分号吧
27行是哪句代码呢。标注一下吧。这个方法修改为如下:
void Swap(int *a, int *b)
{
int t=*a;
*a=*b; *b=t;
}
如有帮助,望采纳。
这个应该是分号吧
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m