大一新生入门尝试

军训后上了一周的学,对C语言还是一无所知的状态,勉勉强强看完了翁恺C语言全部课程,开始自己尝试完成C语言入门级题目了。

## 题目样例1

给定一个整数 x,判断它能否被 3,5,7整除,并输出以下信息:

1、能同时被3,5,7整除(直接输出 `3 5 7`,每个数中间一个空格);

2、只能被其中两个数整除(按从小到大的顺序输出两个数,例如:`3 5` 或者 `3 7` 或者 `5 7`,中间用空格分隔);

3、只能被其中一个数整除(输出这个除数);

4、不能被任何数整除,输出小写字符 `n`。

## 输入格式

输入一行,包括一个整数 x。

## 输出格式

输出一行,按照描述要求给出整数被 3,5,7整除的情况。

#include <stdio.h>
int main()
{
	int x;
	
	scanf("%d", &x);
	if(x%3==0&&x%5==0&&x%7==0)
	   printf("3 5 7");
	else if(x%3==0&&x%5==0&&!x%7==0)
	   printf("3 5");
	else if(x%5==0&&x%7==0&&!x%3==0)
	   printf("5 7");
	else if(x%3==0&&x%7==0&&!x%5==0)
	   printf("3 7");
	else if(x%3==0&&!x%5==0&&!x%7==0)
	   printf("3");
	else if(x%5==0&&!x%3==0&&!x%7==0)
	   printf("5");
	else if(x%7==0&&!x%5==0&&!x%3==0)
	   printf("7");
	else
	   printf("n");
	
	return 0;
}

在这里我们可以了解&&是“同时满足”的关系,!表示否定。

%用于表示余数,/是除法的标志。

==的运用在于赋值,相当于计算中“=”的作用。

## 题目样例2

利用公式 :

x_1=\frac{-b+\sqrt{b^2-4ac}}{2a} , x_2=\frac{-b-\sqrt{b^2-4ac}}{2a}$$

求一元二次方程 ax^2+bx+c=0的根,其中 a 不等于 0。结果要求精确到小数点后 5位。

## 输入格式

输入一行,包含三个浮点数 a,b,c(它们之间以一个空格分开),分别表示方程 ax^2+bx+c=0的系数。

## 输出格式

输出一行,表示方程的解。

若两个实根相等,则输出形式为:`x1=x2=aaaa`;

若两个实根不等,在满足根小者在前的原则,则输出形式为:`x1=aaaa;x2=bbbb`;

若无实根输出 `No answer!`。

所有输出部分要求精确到小数点后 5 位,数字、符号之间没有空格。

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

int main() {
    double a, b, c, y, x1, x2;

    scanf("%lf %lf %lf", &a, &b, &c);

    y = b * b - 4 * a * c;

    if (y > 0) {
        x1 = (-b + sqrt(y)) / (2 * a);
        x2 = (-b - sqrt(y)) / (2 * a);
        if (x1 > x2) {
            double temp = x1;
            x1 = x2;
            x2 = temp;
        }
        printf("x1=%.5lf;x2=%.5lf\n", x1, x2);
    } else if (y == 0) {
        x1 = x2 = -b / (2 * a);
        printf("x1=x2=%.5lf\n", x1);
    } else {
        printf("No answer!\n");
    }

    return 0;
}

一般来说浮点数用double定义而非float,这点值得注意。

并且,用double时后续用%lf更严谨。

运算中用到了数学公式,需要引入<math.h>。

if-else的入门已经基本掌握了,近期会尝试do-while和for之类的练习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值