C语言编程错误整理集合(不定时更新)


注意一下所有程序皆无文件包含命令,如有需要请自行添加 !

#include <stdio.h>
#include <string.h>
#include <math.h>

找出整型数组中最大的整数并输出

//返回整形数组中最大的偶数
int main()
{
    int a[6];
    int i,n,max;
    printf("请输入整型数组元素\n");
    for (i=0;i<6;i++)
    {
        scanf("%d",&a[i]);    //循环向数组输入内容
    }
    for (i=0;i<6;i++)
    {
        if(a[i]%2==0)
        {
            max=a[i];         //找出数组中的第一个偶数赋值给max
            break;              //找到第一个偶数后就跳出循环,目的已达到
        }
    }
    for (i=0;i<6;i++)
    {
        if ((a[i]%2==0)&&(a[i]>max)) max=a[i];     //利用攻擂法循环将数组内偶数数值与找的的第一个最大值进行比较,比max大就称为新的max
    }
    printf("整型数组中最大的偶数是%d",max);
    return 0;
    
}

判断三边是否可以构成直角三角形,若能构成则计算该直角三角形的面积

int main()
{
    double a,b,c,s;
    printf("请输入直角三角形的三边,中间请用空格隔开\n");
    scanf("%lf%lf%lf",&a,&b,&c);                             
    if ((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))     //判断是否为直角三角形(任意两边之和等于第三边)
    {
        if(a>b&&a>c) s=b*c/2.0;
        if(b>a&&b>c) s=a*c/2.0;                            //为方便计算面积,找出两条直角边    重点!!
        if(c>b&&c>a) s=a*b*0.5;                             //两条直角边相乘除以2.0(注意),稳妥起见可以乘以0.5
        printf("该三边可以构成直角三角形,直角三角形面积是%lf",s);
    }
    else  printf("该三边不可以可以构成直角三角形");
    return 0;
}

计算输入的三边是否能构成三角形,如果能就计算该三角形的周长和面积

int main()
{
    double a,b,c;
    double s,p;
    printf("请输入三角形的三条边,中间用空格隔开\n");
    scanf("%lf%lf%lf",&a,&b,&c);
    if (a+b>c&&a+c>b&&b+c>a)        //判断是否为三角形
    {
        p=a+b+c;  //周长
        s = sqrt(p*(p-a)*(p-b)*(p-c));   //面积公式
        printf("该三角形的周长为%lf\n该三角形的面积为%lf",p,s);
    }
    else printf("该三边无法构成三角形\n");
    return 0;
}

利用数组实现逆置(数字和字母)

int main()
{
    char a[10],t;
    int i,j;
    printf("请输入字符串\n");
    gets(a);
    j = strlen(a)-1;     //因为i,j俩变量一个递增一个递减都要考虑到
    for (i=0;i<j;i++,j--)
    {
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    puts(a);
    return 0;
}

输出五个俩位数整数,并且按照个个位数又小到大进行排序

int main()
{
    int i,j,t;
    int a[5];
    printf("请输入一个五个俩位数整数,中间用空格隔开\n");
    for (i=0;i<5;i++)
    {
        scanf("%d",&a[i]);  //输入五个俩位数整数
    }
    for (i=0;i<4;i++)
    {
        for (j=0;j<4-i;j++)
        {
            if (a[j]%10>a[j+1]%10)
            {
                t=a[j];                //利用冒泡排序按照个位数从大到小进行排序
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    for (i=0;i<5;i++)
    {
        printf("%d\t",a[i]);          //循环遍历输出
    }
    return 0;
}

从键盘输入十个正整数,并且将最小值和首元素交换,不改变数组内其他元素的值

int main()
{
    int a[10],i,min,m,t;
    printf("请输入十个正整数,中间用空格隔开\n");
    for (i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    min = 0;
    for (i=0;i<10;i++)
    {
        if (a[i]<a[min])     //求最小值 下标框架
        {
            min = i;
        }
    }
    t = a[0];
    a[0] = a[min];
    a[min] = t;               //交换值
    for (i=0;i<10;i++)
    {
        printf("%d\t",a[i]);
    }
    return 0;
}

输入二十个整数,由大到小进行排序,最后输出四行每行五个整数

int main()
{
    int a[20],i,j,t,c=0,z=4;
    for (i=0;i<20;i++)
    {
        scanf("%d",&a[i]);
    }
    for (i=0;i<19;i++)
    {
        for (j=0;j<19-i;j++)
        {
            if (a[j]<a[j+1])
            {
                t=a[j];        //冒泡排序
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    // for (i=0;i<4;i++)
    // {
    //     for (j=c;j<z;j++)
    //     {
    //         printf("%d\t",a[j]);    //第一种输出方法
    //     }
    //     printf("\n");
    //     c+=5;
    //     z+=5;
    // }
    for (i=0;i<20;i++)
    {                                //第二种输出方法
        if (i%5==0) printf("\n");    //必须先判断后输出
        printf("%d\t",a[i]);
    }
    return 0;
}

求数值n的阶乘(递归方式)

int main()
{
    int fun(int);
    int s,n;
    printf("请输入需要阶乘的数值\n");
    scanf("%d",&n);
    s=fun(n);
    printf("%d的阶乘为%d",n,s);
    return 0;
}
int fun(int n)
{
    if (n==1) return 1;
    else return(n*fun(n-1));
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦同学学学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值