XTU C语言程序设计作业2-分支结构

XTU C语言程序设计作业2-分支结构

温馨提示

1.新手上路用Dev-c++,就好了。官网或者应用商店都可以下载
2.先去“中国大学慕课”搜索“翁恺”,找浙江大学翁恺老师的“程序设计入门——C语言”课程看。一边看一边跟着敲。看完了,再来刷oj作业吧.

1062 大小写转换

Description
接收一个字母,如果是小写,则将其转换成大写;如果是大写,就将其转换成小写。

Sample Input
b

Sample Output
B

Source
C语言程序设计

Hint
输出最后没有换行

#include <stdio.h>
int main()
{
    char a;
    scanf("%c",&a);
    if(a>90)//a~z的ascii码大于90
    printf("%c",a-32);//小写字母的ascii码比大写字母的要大32,故相减
    else//大写转小写
    printf("%c",a+32);
}

下面的方法跟第一个本质上是差不多的

#include<stdio.h>
int main()
{
    char x;
    scanf("%c",&x);
    if(x>='a'&&x<='z')
    {
         x=x-32;
        printf("%c",x);
    }
    else if(x>='A'&&x<='Z')
    {
        x=x+32;
        printf("%c",x);
    } 
    return 0;
 } 

1068 if语句1

Description
输入一个整数,如果整数在90和100之间,那么输出A;否则输出B。

Sample Input
90

Sample Output
A

Source
ericxie

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);//输入
    if(n>=90&&n<=100)//如果不懂,乖乖去看中国大学慕课翁恺老师的c语言入门课程
    {
        printf("A");//输出A
    }
    else//其他情况输出B
    {
        printf("B");
    }
    return 0;
}

1070 if3

Description
输入一个三位的整数,如果它有且仅有两位数码相同,那么就输出Yes,否则输出No

Sample Input
112

Sample Output
Yes

Source

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a,b,c;
    a=n/100;//百位数
    b=n/10%10;//十位数
    c=n%10;//个位数
    if((a==b&&a!=c)||(a==c&&a!=b)||(b==c&&b!=a))//判断是否有且仅有两位数码相同
    {
        printf("Yes");
    }
    else
    {
        printf("No");
    }
    return 0;
}

1071 if4

Description
输入三角形的三条边a,b,c;如果构成三角形那么就计算三角形的面积并输出,保留2位小数,否则输出“Not a triangle.”

Sample Input
3 5 4

Sample Output
6.00

Source
ericxie

Hint
海伦公式: 令d=(a+b+c)/2,面积s为d*(d-a)(d-b)(d-c)的平方根

#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c;
    scanf("%f%f%f",&a,&b,&c);//题目没说整型,那就单精度浮点数
    if(a+b>c&&a+c>b&&b+c>a)//判断是否成立三角形
    {
        float d=(a+b+c)/2;
        printf("%.2f",sqrt(d*(d-a)*(d-b)*(d-c)));//保存小数点后两位的写法。sqrt()是math.h的函数,作用为求平方根
    }
    else
    {
        printf("Not a triangle.");
    }
    return 0;
}

1072 switch

Description
计算下面函数的值

y=cos(x+3.0) 当0<=x<10;

y=(cos(x+7.5))^2 当10<=x<20;

y=(cos(x+4.0))^4 当20<=x<30;

表示幂运算,如x2表示x的平方

如果x不在定义域内,输出“Not define”,否则输出y,保留5位小数

Sample Input
40

Sample Output
Not define

Source
ericxie

#include <stdio.h>
#include <math.h>
int main()
{
    float x;
    scanf("%f",&x);
    if(x>=0&&x<10)
    {
        printf("%.5f",cos(x+3.0));
    }
    else if(x>=10&&x<20)
    {
        printf("%.5f",pow(cos(x+7.5),2));//pow()函数,后面的2即是二次方。函数详细用法请百度
    }
    else if(x>=20&&x<30)
    {
        printf("%.5f",pow(cos(x+4.0),4));//pow()函数,后面的4即四次方
    }
    else
    {
        printf("Not define");
    }
    return 0;
}

1073 最大最小数

Description
输入3个互不相等的整数a,b,c,请输出最大的和最小的数,中间用一个空格隔开。

Sample Input
1 2 3

Sample Output
3 1

Source
ericxie
法一:
直接一一列举

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    if(a>b&&a>c&&b>c)
    {
        printf("%d %d",a,c);
    }
    if(a>b&&a>c&&c>b)
    {
        printf("%d %d",a,b);
    }
    if(b>a&&b>c&&a>c)
    {
        printf("%d %d",b,c);
    }
    if(b>a&&b>c&&c>a)
    {
        printf("%d %d",b,a);
    }
    if(c>a&&c>b&&a>b)
    {
        printf("%d %d",c,b);
    }
    if(c>a&&c>b&&b>a)
    {
        printf("%d %d",c,a);
    }
    return 0;
 } 

法二:
先排好序,再输出。
三个数的排序,没必要用到算法,直接比较就好了

#include <stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if(b<a)//如果b<a,则交换
    {
        t=b;//t用于存储b的数值
        b=a;
        a=t;
    }
    if(c<b)//如果c<b,则交换
    {
        t=c;
        c=b;
        b=t;
    }
    if(b<a)//这个if的代码跟第一个if的代码一摸一样,作用也一样。
    {
        t=b;
        b=a;
        a=t;
    }
    printf("%d %d",c,a);
    return 0;
}

多思,多想,多动手敲代码。如果不开心,去散散步,或者运动,或者整理卫生,再回来学习吧。
写于2021年8月3日19:46分。

上一篇:matlab快速入门(15):绘制向量图


下一篇:Java 创建 PDF 文件包的两种方法