sse哈工大C语言编程练习31

2026年3月3日

收获:

1.要判断输入的是否能构成三角形,任意两边之和大于第三边且各边长度大于0,否则输出非数area=-nan。
2.找三个数的中位数时,可判断其他两数是否都大于当前数,取其他两数中的较小数返回;或判断是否都小于当前数,取其他两数的较大值返回;否则返回当前数,即为三个数的中位数。
3.寻找自幂数时可将各位存到数组中,或直接进行每一位的pow(x,n)x的n次幂求和操作,需要一个临时变量依次取余得到每一位数。

题目:

1、Q324.(语言: C)按如下公式计算三角形面积。输入三角形的三个边长,计算三角形的面积。设三角形的三个边长分别为a、b、c,为简单起见,我们认为输入的三个边长数据是正确的,可以组成一个三角形。

**输入格式要求:“%f,%f,%f” 提示信息:“Enter 3 floats:”
**输出格式要求:“area=%.2f\n”
程序运行示例如下:
Enter 3 floats:2,2,3
area=1.98

#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c;
    printf("Enter 3 floats:");
    scanf("%f,%f,%f",&a,&b,&c);
    float s=(a+b+c)/2;
    float area=sqrt(s*(s-a)*(s-b)*(s-c));
    if(a+b>c&&b+c>a&&a+c>b&&a>0&&b>0&&c>0){
        printf("area=%.2f\n",area);
    }else{
        printf("area=-nan\n");
    }
    return 0;
}

2、Q3117.(语言: C)寻找中位数v1.0

编写一个函数返回三个整数中的中间数。
函数原型:int mid(int a, int b, int c);
功能是返回a,b,c三数中大小位于中间的一个数。

程序运行结果示例1:
12 6 18↙
The result is 12

程序运行结果示例2:
-9 7 -2↙
The result is -2

输入格式: “%d%d%d”
输出格式:“The result is %d\n”

#include <stdio.h>
int mid(int a ,int b,int c);
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    int re=mid(a,b,c);
    printf("The result is %d\n",re);
    return 0;
}
int mid(int a, int b, int c){
    int mid=a;
    if(b<mid&&c<mid){
        mid=b>c?b:c;
    }else if(b>mid&&c>mid){
        mid=b<c?b:c;
    }
    return mid;
}

3、Q188.(语言: C)用二维字符数组方法编程实现从键盘任意输入10个字符串,将这10个字符串按字典顺序排序后打印输出,字符串最大长度80。

**输入提示信息格式: 无
**输入数据格式要求: 要求读入的字符串可以包含有空格
**输出数据格式要求: 一行输出一个字符串
注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。

#include <stdio.h>
#include <string.h>
int main()
{
    char str[10][80];
    for(int i=0;i<10;i++){
        gets(str[i]);
    }
    for(int i=0;i<10;i++){
        for(int j=i+1;j<10;j++){
            if(strcmp(str[i],str[j])>0){
                char tmp[80];
                strcpy(tmp,str[i]);
                strcpy(str[i],str[j]);
                strcpy(str[j],tmp);
            }
        }
    }
    for(int i=0;i<10;i++){
        puts(str[i]);
    }
    return 0;
}

4、Q6446.(语言: C)由键盘输入一个数,判断它是否为偶数。

程序运行结果示例:
输入一个整数:
26
26 是偶数!

输入提示:“输入一个整数:\n”
输入格式:%d
输出格示:“%d 是偶数!\n” “%d 不是偶数!\n”

#include <stdio.h>
int main()
{
    int x;
    printf("输入一个整数:\n");
    scanf("%d",&x);
    if(x%2==0){
        printf("%d 是偶数!\n",x);
    }else{
        printf("%d 不是偶数!\n",x);
    }
    return 0;
}

5、Q2243.(语言: C)一个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方幂数。设计求3~6位自方幂数。

**输出格式要求:“%d位自幂数有:” “%ld\t” “\n” (每位完后换行)

程序运行示例如下:
3位自幂数有:153 370 371 407
4位自幂数有:1634 8208 9474
5位自幂数有:54748 92727 93084
6位自幂数有:548834

#include <stdio.h>
#include <math.h>
int main()
{
    int x=100,now=100;
    for(int i=3;i<7;i++){
        printf("%d位自幂数有:",i);
        x*=10;
        while(now<x){
            int a[7],tmp=now,sum=0;
            for(int j=0;j<i;j++){
                a[j]=tmp%10;
                tmp/=10;
                sum+=pow(a[j],i);
            }
            if(now==sum){
                printf("%ld\t",now);
            }
            now++;
        }
        printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值