我是靠谱客的博主 正直魔镜,最近开发中收集的这篇文章主要介绍牛客网C语言语法篇练习之习题集(2)1. 小乐乐改数字(也就是偶数变0,奇数变1)2.牛牛的金币(坐标里找东西)3.牛牛的计划(比日期)4. 计算一元二次方程(计算方程按格式输出)5.  [NOIP2008]ISBN号码(这个题我感觉特别好,因为第一遍我没做出来)6. 简单计算器(就是实现+-*/)7.牛牛学数列38. 数位之和9.公务员面试(就是去掉最高最低分,剩下加起来求平均值)10. 回文对称数(正着输入和反着的数字一样大),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

目录

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

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

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

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

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

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

7.牛牛学数列3

8. 数位之和

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

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

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

下面,开始上内容吧

 

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

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

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

下面来分析一下、

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

下来上代码,递归

#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("%dn", ret);

    return 0;
}

 

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

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

下面分析一下

 上代码

#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;
}

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

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

分析一下

 上代码

#include<stdio.h>

int main()
{
    int y,m,d;
    int y1,m1,d1;
    scanf("%d %d %dn",&y,&m,&d);
    scanf("%d %d %dn",&y1,&m1,&d1);
    if((y1>y)||((y1>=y)&&(m1>m))||((y1>=y)&&(m1>=m)&&(d1>=d)))
    {
        printf("yesn");
    }
    else
    {
        printf("non");
    }
    
    return 0;
}

 

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

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

 

#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=%.2lfn",(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a));
        }else if(d ==0){
            if((-b/(2*a))==0){
                printf("x1=x2=0.00n");
            } else{
                printf("x1=x2=%.2lfn",-b/(2*a));
            }
        }else{
           
              float s = -b/(2*a);
              float x = sqrt(-d)/(2*a);
              if(x>0){
                  printf("x1=%.2f-%.2fi;x2=%.2f+%.2fin",s,x,s,x);
              }else{
                  printf("x1=%.2f-%.2fi;x2=%.2f+%.2fin",s,-x,s,-x);
              }
              
        }
    }else{
        printf("Not quadratic equation");
    }
   }
    return 0;
}

 

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

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

 

 

#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("Rightn");
    }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;
}

 

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

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

 

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

#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=%.4lfn",a,c,b,a+b);
        }
        else if(c=='-')
        {
             printf("%.4lf%c%.4lf=%.4lfn",a,c,b,a-b);
        }
        else if(c=='*')
        {
             printf("%.4lf%c%.4lf=%.4lfn",a,c,b,a*b);
        }
        else{
              if(c=='/'&&b==0.0)
              {
            printf("Wrong!Division by zero!n");
              }
             else{
            printf("%.4lf%c%.4f=%.4lfn",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;

 

7.牛牛学数列3

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

 

#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("%.3lfn",sum);
    return 0;
}

 

8. 数位之和

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

#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;
}

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

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

 

#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("%.2fn", (sum - max - small) / 5.0);
			count = 0;
			max = 0;
			small = 100;
			sum = 0;
		}	
	}

	return 0;
}

 

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

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

分析一下

 

#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("%dn",i);
        }
    }
    return 0;
}

 

 

 

 

 

 

最后

以上就是正直魔镜为你收集整理的牛客网C语言语法篇练习之习题集(2)1. 小乐乐改数字(也就是偶数变0,奇数变1)2.牛牛的金币(坐标里找东西)3.牛牛的计划(比日期)4. 计算一元二次方程(计算方程按格式输出)5.  [NOIP2008]ISBN号码(这个题我感觉特别好,因为第一遍我没做出来)6. 简单计算器(就是实现+-*/)7.牛牛学数列38. 数位之和9.公务员面试(就是去掉最高最低分,剩下加起来求平均值)10. 回文对称数(正着输入和反着的数字一样大)的全部内容,希望文章能够帮你解决牛客网C语言语法篇练习之习题集(2)1. 小乐乐改数字(也就是偶数变0,奇数变1)2.牛牛的金币(坐标里找东西)3.牛牛的计划(比日期)4. 计算一元二次方程(计算方程按格式输出)5.  [NOIP2008]ISBN号码(这个题我感觉特别好,因为第一遍我没做出来)6. 简单计算器(就是实现+-*/)7.牛牛学数列38. 数位之和9.公务员面试(就是去掉最高最低分,剩下加起来求平均值)10. 回文对称数(正着输入和反着的数字一样大)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部