PTA编程题[1]

计算物体自由下落的距离
#include<stdio.h>
int main(void)
{
    float height;
    height=10*3*3/2;
    printf("height = %.2f",height);
    return 0;
}
计算摄氏温度
#include<stdio.h>
int main(void)
{
    int C,F;
    scanf("%d",&F);
    C=5*(F-32)/9;
    printf("Celsius = %d\n",C);
    return 0;
}
整数四则运算
#include<stdio.h>
int main(void)
{
    int A,B;
    scanf("%d %d",&A,&B);
    int a,b,c,d;
    a=A+B;
    b=A-B;
    c=A*B;
    d=A/B;
    printf("%d + %d = %d\n",A,B,a);
    printf("%d - %d = %d\n",A,B,b);
    printf("%d * %d = %d\n",A,B,c);
    printf("%d / %d = %d\n",A,B,d);
    return 0;
}
计算分段函数[1]
#include <stdio.h>
int main()
{
    double x,result;
    scanf("%lf",&x);
    if(x!=0){
        result=1.0/x;
    }else{
        result=0;
    }
    printf("f(%.1f) = %.1f",x,result);
    return 0;
}
计算分段函数[2]
#include <stdio.h>
#include <math.h>
int main()
{
    double x,result;
    scanf("%lf",&x);
    if(x>=0){
        result=pow(x,0.5);
    }else{
        result=pow(x+1,2)+2*x+1/x;
    }
    printf("f(%.2f) = %.2f",x,result);
    return 0;
}
输出华氏-摄氏温度转换表
#include<stdio.h>
int main()
{
    int lower, upper, F;
    double C;
    scanf("%d %d", &lower, &upper);
    if (lower <=upper && upper <=100){
            printf("fahr celsius\n");
    for(F=lower;F<=upper;F+=2)
    {
    C = 5.0*(F-32)/9;
    printf("%d%6.1f\n",F,C);
    }
    }
    else{
        printf("Invalid.");
    }
return 0;
}
求N分之一序列前N项和
#include<stdio.h>
int main(void)
{
    int i,N;
    int fenmu=1;
    double a;
    double sum=0.0;
    scanf("%d",&N);
    for(i=1;i<=N;i++)
    {
    a=1.0/fenmu;
    sum+=a;
    fenmu+=1;
    }
    printf("sum = %.6f\n",sum);
    return 0;
}
求奇数分之一序列前N项和
#include<stdio.h>
int main(void)
{
    int i,N;
    int fenmu=1;
    double number;
    double sum=0;
    scanf("%d",&N);
    for(i=1;i<=N;i++){
    number=1.0/fenmu;
    sum+=number;
    fenmu+=2;
}
    printf("sum = %.6f\n",sum);
    return 0;
}
求简单交错序列前N项和
#include<stdio.h>
int main(void)
{
    int i,N;
        scanf("%d",&N);
int fenmu=1;
int fah=1;
    double number;
double sum=0;
   

    for(i=1;i<=N;i++){
number=fah*1.0/fenmu;
sum+=number;
fenmu+=3;
fah=-fah;
}
printf("sum = %.3f\n",sum);
return 0;
}
生成3的乘方表
#include<stdio.h>
#include<math.h>
int main(void)
{
    int i,n,result;
    scanf("%d",&n);
    for(i=0;i<=n;i++)
    {
    result=pow(3,i);
    printf("pow(3,%d) = %d\n",i,result);
    }
    return 0;
}
求组合数
#include<stdio.h>
    double fact(int n){
    int i;
double sum=1;
    for(i=1;i<=n;i++){
    sum=sum*i;
    }
    return sum;
    }
int main()
{
    int m,n;
    double result;
    scanf("%d %d",&m,&n);
    result=fact(n)/(fact(m)*fact(n-m));
    printf("result = %.0f\n",result);
    return 0;
}
求整数均值
#include<stdio.h>
int main()
{
    int a,b,c,d,sum;
    double Average;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    sum=a+b+c+d;
    Average=sum/4.0;
    printf("Sum = %d; Average = %.1f",sum,Average);
    return 0;
}
阶梯电价
#include <stdio.h>
int main()
{
    int x;
    double cost;
    scanf("%d",&x);
    if(x<0){
        printf("Invalid Value!");}
            else if(x>=0&&x<=50){
                cost=0.53*x;
                printf("cost = %.2lf",cost);
            }else{
                cost=(x-50)*0.58+0.53*50;
        printf("cost = %.2lf",cost);
            }
    return 0;
}
求平方与倒数序列的部分和
#include<stdio.h>
int main()
{
int m,n;
double a;
double sum=0;
scanf("%d %d",&m,&n);
for(m;m<=n;m++){
a=m*m+1.0/m;
sum+=a;
}
printf("sum = %.6f",sum);
return 0;
}
求交错序列前N项和
#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
int i;
int zhengfu=1;
double sum=0.0;
double a;
for(i=1;i<=N;i++){
a=zhengfu*i*1.0/(2*i-1);
sum+=a;
zhengfu=-zhengfu;
}
printf("%.3f",sum);
return 0;
}
求平方根序列前N项和
#include<stdio.h>
#include<math.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    double sum=0;
    for(i=1;i<=n;i++){
    sum+=sqrt(i);
    }
    printf("sum = %.2f",sum);
    return 0;
}
求阶乘序列前N项和
#include<stdio.h>
double fact(int n)
{
    int i,a=1;
    for(i=1;i<=n;i++){
    a*=i;
    }return a;
}
int main()
{
    int n,i,sum=0;
    n<=12;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=fact(i);
    }
    printf("%d",sum);
    return 0;
}
计算符号函数的值
#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n<0){
printf("sign(%d) = -1\n",n);}
else if(n==0){printf("sign(%d) = 0\n",n);
}else{
    printf("sign(%d) = 1\n",n);
}
    return 0;
}
统计学生平均成绩与及格人数
#include<stdio.h>
int main()
{
    int n,i,c=0;
    double a,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        int x;
    scanf("%d ",&x);
        sum+=x;
    if(x>=60){
        c++;
    }
    }
    a=1.0*sum/n;
    printf("average = %.1f\n",a);
    printf("count = %d\n",c);
    return 0;}
统计字符
#include<stdio.h>
int main()
{
    int letter,blank,digit,other,i;
    char ch;
    letter=blank=digit=other=0;
    for(i=1;i<=10;i++)
    {
    ch=getchar();
    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
    {
        letter++;
}else if(ch==' '||ch=='\n'){
        blank++;
}else if(ch>='0'&&ch<='9'){
    digit++;
}else{
        other++;
}
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
    return 0;
}
输出闰年
#include<stdio.h>
int main()
{
    int nianfen,i;
    scanf("%d",&nianfen);
    if(nianfen>2003&&nianfen<2101){

    for(i=2003;i<=nianfen;i++){
        
        if((i%4==0&&i%100!=0)||i%400==0)
        printf("%d\n",i);}}else if(nianfen>2000&&nianfen<2004){
printf("None");}
    else{printf("Invalid year!");
}
    return 0;
}
成绩转换
#include<stdio.h>
int main()
{
    int cj;
    char jg;
scanf("%d",&cj);
    switch(cj/10){
        case 10:jg='A';break;
        case 9:jg='A';break;
        case 8:jg='B';break;
        case 7:jg='C';break;
        case 6:jg='D';break;
        case 5:
        case 4:
            case 3:
            case 2:
            case 1:
        case 0:jg='E';break;
      }   
    printf("%c",jg);
    return 0;
}
查询水果价格
#include<stdio.h>
int main()
{ int i;
double price;
    int ch;
        printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
for(i=1;i<=5;i++){
scanf("%d",&ch);
    if(ch==0)
    break;
    switch(ch){
        case 1:price=3.00;break;
        case 2:price=2.50;break;
        case 3:price=4.10;break;
        case 4:price=10.20;break;
        default:price=0.00;break;
}
printf("price = %.2f\n",price);
}
return 0;
           }
比较大小
#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    if(a<b&&b<c)
        printf("%d->%d->%d",a,b,c);
        else if(a<c&&c<b)
        printf("%d->%d->%d",a,c,b);
        else if(b<a&&a<c)
        printf("%d->%d->%d",b,a,c);
        else if(b<c&&c<a)
        printf("%d->%d->%d",b,c,a);
        else if(c<a&&a<b)
        printf("%d->%d->%d",c,a,b);
        else
        printf("%d->%d->%d",c,b,a);
    return 0;
}
高速公路超速处罚
#include<stdio.h>
int main()
{
    int cs,xs;
    double x;
    scanf("%d %d",&cs,&xs);
    x=100.0*(cs-xs)/xs;
    if(x<10){
printf("OK");
    }
    else if(x>=50)
    {
        printf("Exceed %.0f%%. License Revoked",x);
    }
    else{
    printf("Exceed %.0f%%. Ticket 200",x);
    }
    return 0;
}
出租车计价
#include<stdio.h>
int main()
{
    double s,jieguo,m1;
    int t,m2,a;
    scanf("%lf %d",&s,&t);
    if(s<=3){
    m1=10;
    }
    if(s>3&&s<=10){
    m1=10+(s-3)*2;
    }
    if(s>10){
    m1=10+14+(s-10)*3;
    }
    a=t/5;
    m2=a*2;
    jieguo=m1+m2;
    printf("%.0f",jieguo);
    return 0;
}
统计学生成绩
#include<stdio.h>
int main()
{
    int cj;
    int i,n;
int A=0;
    int B=0;
    int C=0;
    int D=0;
    int E=0;
        scanf("%d\n",&n);
    for(i=1;i<=n;i++){
scanf("%d ",&cj);
    switch(cj/10){

                    case 10:A++;break;
                    case 9:A++;break;
                    case 8:B++;break;
                    case 7:C++;break;
                    case 6:D++;break;
        default:E++;break;
    }
}printf("%d %d %d %d %d\n",A,B,C,D,E);
return 0;}
三角形判断
#include<stdio.h>
#include<math.h>
int main()
{
    double x1,x2,x3,y1,y2,y3;
    scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
        double a, b,c,l,s,p;
    a=pow((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2),0.5);
    b=pow((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3),0.5);
    c=pow((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2),0.5);
    if(a+b>c&&a+c>b&&b+c>a){
    l=a+b+c;
    p=(a+b+c)/2.0;
    s=pow(p*(p-a)*(p-b)*(p-c),0.5);
        printf("L = %.2f, A = %.2f",l,s);
    }
    else{
        printf("Impossible\n");
    }return 0;
}
求给定精度的简单交错序列部分和
#include <stdio.h>
int main()
{
    int i,fm=1;
    double sum=0,eps,flag=1;
    scanf("%lf",&eps);
    for(i=1;;i++){
        sum+=flag*1.0/fm;
        flag=-flag;
                if((1.0/fm)<=eps)
           break;
        fm+=3;

    }
    printf("sum = %.6f",sum);
    return 0;
}
猜数字游戏
#include<stdio.h>
int main()
{
    int shuiji,n,x;
    int i;
    scanf("%d %d",&shuiji,&n);
    for(i=1;i<=n;i++)
    {
    scanf("%d",&x);
        if(x<0)
    {printf("Game Over");
    break;
    }
    if(x>shuiji)
    printf("Too big\n");
    if(x<shuiji)
    printf("Too small\n");
    if(x==shuiji){
            if(i==1)
        printf("Bingo!");
    if(i==2||i==3)
        printf("Lucky You!");
    if(i>3&&i<=n)
        printf("Good Guess!");
        break;}

        if(i>n)
        printf("Game Over");
    return 0;
}
求e的近似值
#include<stdio.h>
double fact(int n)
{
    int i;
    double sum=1;
    for(i=1;i<=n;i++){
    sum=sum*i;
    }
    return sum;
}
int main()
{
    int n,i,j;
    double sum=0;
    double a;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
{
a=fact(i);
    sum+=1.0/a;
    }sum = sum + 1;
    printf("%.8f",sum);
    return 0;
}
找出最小值
#include<stdio.h>
int main()
{
    int i,n,x,x1;
    scanf("%d",&n);
    scanf("%d",&x1);
    for(i=1;i<n;i++)
    {
    scanf("%d",&x);
    if(x1>x)
    x1=x;
}
    printf("min = %d",x1);
    return 0;
}

统计素数并求和
#include<stdio.h>
int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    int x,i;
    int c=0,sum=0;
for(x=m;x<=n;x++){
        for(i=2;i<=x;i++){
        if(x%i==0&&x!=i)
            break;
        if(i==x){c+=1;sum+=x;}
    }}
    printf("%d %d",c,sum);
    return 0;
}
求奇数和
#include<stdio.h>
int main()
{
    int i,x,sum=0;
    do{
    scanf("%d",&x);
    if(x%2==1)
        sum+=x;
    }while(x>0);
    printf("%d",sum);
    return 0;
}
求幂级数展开的部分和
#include<stdio.h>
#include<math.h>
double fact(int n){
int i;
    double sum=1;
    for(i=1;i<=n;i++){
    sum*=i;
    }return sum;
}
int main()
{
    int i=1,n;
    double fz,fm,x,a,sum=1;
    scanf("%lf",&x);
    do{
        fz=pow(x,i);
        fm=fact(i);
        i++;
        a=1.0*fz/fm;
       sum+=a;
}while(a>=0.00001);
    printf("%.4f",sum);
    return 0;
}
求分数序列前N项和
#include<stdio.h>
int main()
{
    int i,n;
    double x,y,a,sum=0;
    scanf("%d",&n);
    x=2,y=1;
    for(i=1;i<=n;i++){
        sum+=1.0*x/y;
        a=x;
        x=x+y;
        y=a;
    }
    printf("%.2f",sum);
    return 0;
}
特殊a串数列求和
#include<stdio.h>
int main()
{
    int a,n,i,m=0;
    int sum=0;
    scanf("%d %d",&a,&n);
    for(i=1;i<=n;i++){
m=m*10+a;
            sum+=m;
    }
    printf("s = %d",sum);
    return 0;
}
换硬币
#include<stdio.h>
int main()
{
    int a,b,c,x;
    int count=0;
    scanf("%d",&x);
    for(a=x/5;a>=1;a--){
        for(b=x/2;b>=1;b--){
            for(c=x;c>=1;c--){
 if(x==(5*a+2*b+c)){
  printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",a,b,c,a+b+c);
     count++;
                }
            }
        }
}
    printf("count = %d",count);
    return 0;
}
水仙花数
#include<stdio.h>
int pow(int a,int n){
    int i;
    int sum=1;
    for(i=1;i<=n;i++){
    sum*=a;
    }
    return sum;
}
int main()
{
    int a,c,sum,n,x;
    int max,min;
    scanf("%d",&n);
    max=pow(10,n);
    min=pow(10,n-1);
    
    for(x=min;x<max;x++){
     c=x;
        sum=0;
    while(sum<=x&&c!=0){
        a=c%10;
        sum+=pow(a,n);
        c/=10;
    }
    if(sum==x)printf("%d\n",sum);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值