牛客网C语言语法篇练习之习题集(2)

导读:本篇文章讲解 牛客网C语言语法篇练习之习题集(2),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 

牛客网C语言语法篇练习之习题集(2)牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

目录

1. 小乐乐改数字(也就是偶数变0,奇数变1)

2.牛牛的金币(坐标里找东西)

3.牛牛的计划(比日期)

4. 计算一元二次方程(计算方程按格式输出)

5.  [NOIP2008]ISBN号码(这个题我感觉特别好,因为第一遍我没做出来)

6. 简单计算器(就是实现+-*/)

7.牛牛学数列3

8. 数位之和

9.公务员面试(就是去掉最高最低分,剩下加起来求平均值)

10. 回文对称数(正着输入和反着的数字一样大)

接着上来篇来写,这个习题集我感觉写一些对我来说有点难度,并且值得大家一做的练习

下面,开始上内容吧

牛客网C语言语法篇练习之习题集(2)

 

1. 小乐乐改数字(也就是偶数变0,奇数变1)

链接   小乐乐改数字_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

 这道题就是输入一个数字 偶数变0,奇数变1

下面来分析一下、牛客网C语言语法篇练习之习题集(2)

 在实际做时,可以考虑有两种方法  递归,和非递归的

下来上代码,递归

#include<stdio.h>
int figure(long long n)
{
    int b=(n%10)%2;
    n=n/10;
    if(n)
    {
        return 10*figure(n)+b;
    }
    return b;
}
int main()
{
    long long n=0;
    scanf("%lld",&n);
    int a=figure(n);
    printf("%d",a);
    return 0;
}

非递归的

#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int x = 1,y=0;        // x 用来控制当前位于哪一位
    while(x<n)        
    {
        y+=(n/x%2)*x;        // x 从1开始,等于从个位开始往上依次摩2,得到奇偶性之后再乘 x 即当前这个位数的0或者1      比如 1+10+100 一直加到加不了
        x*=10;
    }printf("%d",y);
    return 0;
}

或者

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);

    int ret = 0;
    int i = 0;
    while (n)
    {
        int w = n % 10;
        if (0 == w % 2)
        {
            w = 0;
        }
        else
        {
            w = 1;
        }
        ret += w * pow(10, i++);
        n /= 10;
    }

    printf("%d\n", ret);

    return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

2.牛牛的金币(坐标里找东西)

链接   牛牛的金币_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

下面分析一下

牛客网C语言语法篇练习之习题集(2)

 上代码

#include<stdio.h>

int main()
{
    int x=0,y=0;
    int x1=0,y1=0;
    scanf("%d %d",&x,&y);
    scanf("%d %d",&x1,&y1);
    if(x1==x)
    {
        y1>y?printf("u"):printf("d");
    }
    else
    {
        x1>x?printf("r"):printf("l");
    }
    
    return 0;
}

牛客网C语言语法篇练习之习题集(2)牛客网C语言语法篇练习之习题集(2)

3.牛牛的计划(比日期)

链接     牛牛的计划_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

分析一下

牛客网C语言语法篇练习之习题集(2)

 上代码

#include<stdio.h>

int main()
{
    int y,m,d;
    int y1,m1,d1;
    scanf("%d %d %d\n",&y,&m,&d);
    scanf("%d %d %d\n",&y1,&m1,&d1);
    if((y1>y)||((y1>=y)&&(m1>m))||((y1>=y)&&(m1>=m)&&(d1>=d)))
    {
        printf("yes\n");
    }
    else
    {
        printf("no\n");
    }
    
    return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

4. 计算一元二次方程(计算方程按格式输出)

链接  计算一元二次方程_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

#include<stdio.h>
#include<math.h>
int main()
{
  float a=0,b=0,c=0;
   while(~scanf("%f %f %f",&a,&b,&c)) {
    double d=b*b-4*a*c;
       if(a != 0){
        if(d > 0){
            printf("x1=%.2lf;x2=%.2lf\n",(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a));
        }else if(d ==0){
            if((-b/(2*a))==0){
                printf("x1=x2=0.00\n");
            } else{
                printf("x1=x2=%.2lf\n",-b/(2*a));
            }
        }else{
           
              float s = -b/(2*a);
              float x = sqrt(-d)/(2*a);
              if(x>0){
                  printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",s,x,s,x);
              }else{
                  printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",s,-x,s,-x);
              }
              
        }
    }else{
        printf("Not quadratic equation");
    }
   }
    return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

5.  [NOIP2008]ISBN号码(这个题我感觉特别好,因为第一遍我没做出来)

链接      [NOIP2008]ISBN号码_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

牛客网C语言语法篇练习之习题集(2)牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

#include<stdio.h>

int main()
{
    char arr[13]={0};
    int i,j;
    scanf("%s",arr);
    int s=0;
    for(i=0,j=1;i<11;i++){
        if(arr[i]!='-'){
            s += (arr[i]-'0')*j;
            j++;
        }
    }
    int m=s%11;
    if(m == arr[12]-'0' || (m==10 && arr[12]=='X')){
        printf("Right\n");
    }else{
        if(m==10){
            for(i=0;i<12;i++){
                printf("%c",arr[i]);
            }
            printf("X"); 
        }else{
            for(i=0;i<12;i++){
                printf("%c",arr[i]);
            }
            printf("%d",m);
        }
    } 
    return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

6. 简单计算器(就是实现+-*/)

 链接   简单计算器_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

 好了上代码,大家自己看一下,和自己想的一样吗

#include<stdio.h>

int main()
{
    double a,b;
    char c;
    scanf("%lf%c%lf",&a,&c,&b);
    if(c=='+'||c=='-'||c=='*'||c=='/')
    {
        if(c=='+')
        {
             printf("%.4lf%c%.4lf=%.4lf\n",a,c,b,a+b);
        }
        else if(c=='-')
        {
             printf("%.4lf%c%.4lf=%.4lf\n",a,c,b,a-b);
        }
        else if(c=='*')
        {
             printf("%.4lf%c%.4lf=%.4lf\n",a,c,b,a*b);
        }
        else{
              if(c=='/'&&b==0.0)
              {
            printf("Wrong!Division by zero!\n");
              }
             else{
            printf("%.4lf%c%.4f=%.4lf\n",a,c,b,a/b);
             }
        }
      
    }else{
        printf("Invalid operation!\n");
    }
    return 0;
}

{
    switch (c)
   {
        case '+':
            printf("%.4lf+%.4lf=%.4lf",a,b,a+b);
            break;
        case '-':
            printf("%.4lf-%.4lf=%.4lf",a,b,a-b);
            break;
        case '*':
            printf("%.4lf*%.4lf=%.4lf",a,b,a*b);
            break;
        case '/':
            if(b == 0.0)
          {
            printf("Wrong!Division by zero!");
          }
            else
            printf("%.4lf/%.4lf=%.4lf",a,b,a/b);
            break;
        default:
            printf("Invalid operation!");
      break;
   }
}
return 0;

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

7.牛牛学数列3

链接   牛牛学数列3_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    int i,s=1;
    int tmp=0;
    double sum=0;
    for(i=1;i<=n;i++)
    {
        tmp+=s*(2*i-1);
        sum+=1.0/tmp;
        s=-s;
    }
    printf("%.3lf\n",sum);
    return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

8. 数位之和

链接  ​​​​​​数位之和_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)牛客网C语言语法篇练习之习题集(2)

#include<stdio.h>

int main()
{
    int a=0,sum=0,b=0;
    scanf("%d",&a);
    while(a>0)
    {     
        sum+=a%10;
        a/=10;
    }
    printf("%d",sum);
    return 0;
}

牛客网C语言语法篇练习之习题集(2)牛客网C语言语法篇练习之习题集(2)

9.公务员面试(就是去掉最高最低分,剩下加起来求平均值)

链接    公务员面试_牛客题霸_牛客网 (nowcoder.com) 

牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

#include <stdio.h>
int main()
{
	int a, max = 0, small = 100, sum = 0, count = 0;
	while (scanf("%d", &a) != EOF)
	{   //把最大最小值找出拿出来
		if (a > max)
		{
			max = a;
		}
		if (a < small)
		{
			small = a;
		}
        //求和
		sum += a;
		count++;
		if (count == 7)//计数器=7时代表一组的分数好了可以进行计算
		{
			printf("%.2f\n", (sum - max - small) / 5.0);
			count = 0;
			max = 0;
			small = 100;
			sum = 0;
		}	
	}

	return 0;
}

牛客网C语言语法篇练习之习题集(2) 牛客网C语言语法篇练习之习题集(2)

10. 回文对称数(正着输入和反着的数字一样大)

链接   回文对称数_牛客题霸_牛客网 (nowcoder.com)

牛客网C语言语法篇练习之习题集(2)

分析一下牛客网C语言语法篇练习之习题集(2)

 牛客网C语言语法篇练习之习题集(2)

#include<stdio.h>

int main()
{
    int n=0;
    scanf("%d",&n);
    int i=0;
    for(i=1;i<=n;i++)
    {
        int t=0,num=i;
        while(num>0)
        {
            t=t*10+num%10;
            num=num/10;
        }
        if(t==i)
        {
            printf("%d\n",i);
        }
    }
    return 0;
}

牛客网C语言语法篇练习之习题集(2)

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/91281.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!