c语言例题

1. 有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?
//编程1:有1,2,3,4个数字,能组成多少个互不相同的无重复数字的三位数?都是多少?
#include"stdio.h"
main(){
    int i,j,k;
    printf("\n");
    for(i=1;i<5;i++){
        for(j=1;j<5;j++){
            for(k=1;k<5;k++){
                if(i!=k&&i!=j&&k!=j)
                printf("%d%d%d\n",i,j,k);
            }
        }
    }
    return 0;
}
 2.企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金。
/*编程2:企业发放奖金根据利润提成。利润不高于十万时,奖金可提10%,高于十万时,低于十万部分不变,
高于十万部分可提7.5%,20万到40万时,高于20万部分可提5%,40万到六十万时高于四十万部分可提3%,
60万到100万,高于60万部分可提1.5%,超过100万按1%提成。键盘输入当月利润 i,求发放的奖金。*/
#include"stdio.h"
main(){
    long int i;   //呆滞刻板
    int sum=0;
        scanf("%d",&i);
        if(i<=100000)    
        sum=100000*0.1;
            else if(i<=200000)
                sum=100000*0.1+100000*0.075;
                    else if(i<=400000)
                        sum=100000*0.1+100000*0.075+200000*0.05;
                            else if(i<=600000)
                                sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03;
                                    else if(i<=1000000)
                                        sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015;
                                            else sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;
                                            printf("sum=%d",sum);
                                            return 0;
 
第二种:
//long int i;
//int w1,w2,w4,w6,w10,sum=0;
//scanf("%d",&i);
//w1=100000*0.1;
//w2=w1+100000*0.075;
//w4=w2+200000*0.05;
//w6=w4+200000*0.03;
//w10=w6+400000*0.015;
//if(i<=100000)
//    sum=i*0.1;
//        else if(i<=200000)
//            sum=w1+(i-100000)*0.075;
//                else if(i<=400000)
//                    sum=w2+(i-200000)*0.05;
//                        else if(i<=600000)
//                            sum=w4+(i-200000)*0.03;
//                                else if(i<=1000000)
//                                    sum=w6+(i-600000)*0.015;
//                                        else 
//                                            sum=w10+(i-1000000)*0.01;
//    printf("sum=%d",sum);
//    return 0;                                                                                                                                                                                                                                                                                                                              
}

3.个整数它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问数是多少。
//编程3:一个整数它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问数是多少。
#include"stdio.h"
#include"math.h"
main(){
    long int i,x,y,z;
    for(i=1;i<1000000;i++)
    {
        x=sqrt(i+100);
        y=sqrt(i+168);
        if(x*x==i+100&&y*y==i+168)
        printf("\n%ld\n",i);
    }
    return 0;
}
4.输入某年某月某日,判断这一天是这一年的第几天?
//编程4:输入某年某月某日,判断这一天是这一年的第几天?
#include"stdio.h"
main(){
    
    int day,month,year,sum=0,leap;
    printf("请输入某年某月某天");
    scanf("%d,%d,%d",&year,&month,&day);//输入格式符合条件 例如:2022,3,7
    switch(month)
    {
        case 1:sum=0;break;
        case 2:sum=31;break;
        case 3:sum=59;break;
        case 4:sum=90;break;
        case 5:sum=120;break;
        case 6:sum=151;break;
        case 7:sum=181;break;
        case 8:sum=212;break;
        case 9:sum=243;break;
        case 10:sum=273;break;
        case 11:sum=304;break;
        case 12L:sum=334;break;         
        default:printf("error\n");
    }
    sum=sum+day;//总的sum= sum+是某月的第几天
    if(year%400==0||(year%4==0&&year%100!=0))
            leap=1;
    else 
            leap=0;
    if(leap==1&&month>2) //若是闰年且月份大于2月份加一天
    sum++;
    printf("是该年的第%d天",sum);
    return 0;                                                                                                                                                  
}

5.三个数排序
//编程5:输入三个整数想,x,y,z,三个数从小到大输出
#include"stdio.h"
main(){
    int x,y,z,t;
    scanf("%d%d%d",&x,&y,&z);
    if(x>y)
        {t=x,x=y,y=t;}
    if(x>z)
        {t=x,x=z,z=t;}
    if(y>z)
        {t=y,z=y,z=t;}
    printf("%d %d %d\n",x,y,z);
    return 0;    
}    
6.输出九九乘法表
//编程6:输出九九乘法口诀
#include"stdio.h"
main() {
int i,j,sum=0;
for(i=1;i<10;i++){
    for(j=1;j<=i;j++){
        sum=i*j;
        printf("%d*%d=%-3d",i,j,sum);
    }
    printf("\n");
}
return 0;
}
7. 输出国际象棋棋盘
//编程7:输出国际象棋棋盘
#include"stdio.h"
main(){
    int i,j;
    for(i=0;i<8;i++){
        for(j=0;j<8;j++){
            if((i+j)%2==0)
                printf("%c%c",0xa8,0x80);
                else 
                    printf(" ");    
            }
    printf("\n");
    }
return 0;
}
8.输出楼梯图形
//编程8:输出楼梯图形
#include"stdio.h"
main(){
    int i,j;
    for(i=1;i<11;i++){
        for(j=1;j<=i;j++){
            printf("%c%c",0xa8,0x80);
        }
        printf("\n");
    }
    return 0;
}
9.有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?
//编程9:有一对兔子,从出生第三个月之后,每个月生一对兔子,小兔子长到第三个月又生一对兔子,、
//假如兔子不死,求每个月兔子的数量是多少?一年之后是多少?
#include"stdio.h"
main(){
    long f1,f2;
    int i;
    f1=f2=1;
    for(i=1;i<=12;i++){
        printf("%12d%12d",f1,f2);
        if(i%2==0) printf("\n");                                                                                                                                     
        f1=f1+f2;
        f2=f1+f2;
    }
    return 0;
}
10.编程题10:输出101--200之间的素数
//编程题10:输出101--200之间的素数
#include"stdio.h"
main(){
    int i,j,cnt=0;
    for(i=101;i<=200;i++){
        for(j=2;j<i;j++){
            if(i%j==0) break;    
        }
        if(i==j){
            printf("%-5d",i);
            cnt++;
            if(cnt%5==0)
            printf("\n");
        }
        
    }
    return 0;
}

11.打印100-1000内的水仙花数
//编程11:打印100-1000内的水仙花数
#include"stdio.h"
main(){
    int i,j,k,n;
    for(n=100;n<1000;n++){
        i=n/100;
        j=n/10%10;
        k=n%10;
        if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
        printf("%-5d",n);
    }
    return 0;
}
12.将一个正整数分解因数。例如:输入90,打印90=2*3*3*5
//编程12:将一个正整数分解因数。例如:输入90,打印90=2*3*3*5
#include"stdio.h"
main(){
    int n,i;
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i<=n;i++)
    while(n!=i){
        if(n%i==0){
            printf("%d*",i);
            n=n/i;
        }
        else 
            break;
    }
    printf("%d",n);
    return 0;
}

13.利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示
//编程13利用条件运算符完成。>=90的同学用A表示,60-89分用B表示,60分以下用C表示
#include"stdio.h"
main(){
    int cj;
    char g;
    scanf("%d",&cj);
    g=cj>=90?'A':(cj>=60?'B':'C');
    printf("%d %c\n",cj,g);
    return 0;
}
14.辗除法实现输入两个正整数m和n,求最大公约数和最小公倍数。
//编程14:输入两个正整数m和n,求最大公约数和最小公倍数。
#include"stdio.h"
main(){
    int a,b,num1,num2,t;
    printf("输入两个正整数\n");
    scanf("%d,%d",&num1,&num2);
    if(num1<num2){
        t=num1;
        num1=num2;
        num2=t;
    }
    a=num1,b=num2;
    while(b!=0){
        t=a%b;
        a=b;
        b=t;
    }
    printf("最大公约数=%d\n",a);
    printf("最小公倍数=%d\n",num1*num2/a);
    return 0;
}

15.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
//编程15:输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include"stdio.h"
main(){
    char c;
    int letters=0,space=0,figure=0,others=0;
    printf("请输入一行字符\n");
    while((c=getchar())!='\n'){
        if(c>='a'&&c<='z'||c>='A'&&c<='Z')
                letters++;
            else if(c==' ')
                space++;
            else if(c>='0'&&c<='9')
                figure++;
            else others++;
    }
    printf("letters=%d,space=%d,figure=%d,others=%d",letters,space,figure,others);
    return 0;
}

16.求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字及其变式。
//编程16:求a+aa+aaa+aaaa+aaaaa+...+aa...a的值,a是一个数字。
#include"stdio.h"
main(){
    int i,n,a,s=0,ss=0;
    printf("请输入多少项,值为多少。\n");
    scanf("%d,%d",&n,&a);//输出项的数量n和数值a
    for(i=0;i<n;i++){
            s=10*s+a;//例:2+22+222+2222 每次是上次数值 ×10+a ,计算每项的值
            ss+=s;    //计算总的值
    }
    printf("%d\n",ss);    
    return 0;
}
 
//s-ss类变式
//1+(1+2)+(1+2+3)+......+(1+2+3...+9+10)=?
//1!+2!+3!+......+9!+10!=?
//1/1+1/(1+3)+1/(1+3+5)+......+1(1+3+5+...+99)=?
//求 1/2+(1+3)/(2+4)+(1+3+5)/(2+4+6)+......+(1+3+5...+19)/(2+4+...+18+20)=?
 
//#include"stdio.h"
//int main()
//{
    /*int i,s=0,ss=0;
        for(i=1;i<=10;i++)
        {
            s+=i;
            ss+=s;
        }
        printf("%d\n",ss);*/
        
    /*int i,s=1,ss=0;
        for(i=1;i<=10;i++)
        {
            s*=i;
            ss+=s;
        }
        printf("%d\n",ss);*/
        
    /*int i;float s=0,ss=0;
            for(i=1;i<=99;i+=2)
            {
                s+=i;
                ss+=1/s;
            }
        printf("%.4f\n",ss);*/
        
    /*    float i,m,s1=0,s2=0,ss=0;
        for(i=1,m=2;i<=19;i+=2,m+=2)
            {
                s1+=i;
                s2+=m;
                ss+=s1/s2;
            }
        printf("%f\n",ss);*/
            
//    return 0;
//}
 
 
//#include"stdio.h"
//int main()
//{
//    int i,x,ss=0,s=1;
//    printf(".....\n");
//    scanf("%d",&x);
//    for(i=1;i<=20;i++)
//    {
//        s*=(x-i);
//        ss+=s;
//    }
//    printf("%d\n",ss);
//    return 0;
//}

17.一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数
//编程17:一个数恰好是他的因子之和,这个数就被称为“完数”。例如;6=1+2+3.求1000内的完数。
#include"stdio.h"
main(){
    int i,j,s;
    for(i=2;i<=1000;i++){
        s=0;//s每次都要置0,所以放for循环例里面
        for(j=1;j<i;j++){
            if(i%j==0) //判断J是I的因子
            {
                s+=j;
            }
        }
        if(s==i)//除本身因子之和如果等于本身,则是完数
            printf("%d是完数\n",i);
    }
    return 0;
}

18.一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,
求十次落地后,共经过多少米?第10次多高?
//编程18:一球从100米高度自由落下,每次落地反弹后跳回原来高度的一半,再落下,
//求十次落地后,共经过多少米?第10次多高?
#include"stdio.h"
main(){
    float s=100.0,h=50;
    int i,cnt=1;
    for(i=2;i<=10;i++){
        s=s+h*2;//第一次下落s=100米 反弹高度=下落高度  =2*h
        h/=2;//减半
        cnt++;
        printf("第%d次   %f米\n",cnt,s);
    }
    printf("共经过%f米\n",s);
    printf("第10次高度是%f米\n",h);
    return 0;
}

19.猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,不过瘾,又吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天的一半多一个,到第10天只剩一个桃子。求第一天吃了多少?
//编程19:猴子吃桃问题:猴子第一天摘了若干个桃子,当即吃了一半,不过瘾,又吃了一个,
//第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天的一半多一个,
//到第10天只剩一个桃子。求第一天吃了多少?
 
//程序分析:逆向思维
#include"stdio.h"
main(){
    int day=10,x1,x2=1;
    while(day>0){    //已知第十天,从第九天起算
        x1=(x2+1)*2;
        x2=x1;
        day--;
    }
    printf("%d\n",x1);//吃不了这么多吧
    return 0;
}

20.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。a不和x比,c说不和x,z比,请找出三队选手的比赛名单。
//编程20:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。比赛名单顺序。
//a不和x比,c说不和x,z比,请找出三队选手的比赛名单。
#include"stdio.h"
main(){
      
      
}
21.打印菱形,数字类图形
//编程21:图形打印
//    *
//   ***
//  *****
// *******
//*********
// *******
//  *****
//   ***
//    *
 
//程序分析:把图形分为两部分看待,前五行,后四行,for循环嵌套,i循环次数,j输出空格,k输出*
#include"stdio.h"
main(){
    int i,j,k;
    for(i=1;i<=5;i++){  //第一个for循环,嵌套两个小for循环
        for(j=1;j<=5-i;j++)//前五行空格
            printf(" ");
        for(k=1;k<=2*i-1;k++)//输出前五行*
            printf("*");
            printf("\n");//程序执行一边换行
    }
    for(i=1;i<=4;i++){  //第二个for循环,嵌套两个小for循环
        for(j=1;j<=i;j++)//后四行空格
            printf(" ");
        for(k=1;k<=9-2*i;k++)//输出后四行*
            printf("*");
        printf("\n");    //程序执行一边换行
    }
    return 0;  
}
 
 
//图形类1
/*
******
 ******
  ******
   ******
   */
#include"stdio.h"
int main(){
    /*int i,j;
        for(i=1;i<=4;i++){
            for(j=1;j<=i-1;j++)
            printf(" ");
            for(j=1;j<=6;j++){
                printf("*");
                printf("\n");
            }
        }*/
        
//数字类:printf("*");换成printf("%d",i(b变)或j(变))
//例:        1        5       1       5
//         12       45      21       45
//        123      345     321       345
//       1234     2345    4321       2345
//      12345    12345   54321       12345
int i,j,k;
    /*for(i=1;i<=5;i++){
            for(j=1;j<=5-i;j++){
                printf(" ");
            }
            for(j=1;j<=i;j++){
                printf("%d",j);
            }
            printf("\n");
        }*/
        
        
    /*for(i=1;i<=5;i++){
            for(j=1;j<=5-i;j++){
                printf(" ");
            }
            for(j=6-i;j<=5;j++){
                printf("%d",j);
            }
            printf("\n");
        }*/
        
    /*for(i=1;i<=5;i++){
            for(j=1;j<=5-i;j++){
                printf(" ");
            }
            for(k=i;k>=1;k--){
                printf("%d",k);
            }
        
            printf("\n");
        }*/
    
    for(i=1;i<=5;i++){
        for(j=6-i;j<=5;j++){
            printf("%d",j);
        }
        printf("\n");
    }            
        
    return 0;
}
 
 
 
 
//图形类2
/*  A
   AB
  ABC
 ABCD
ABCDE */
 
//#include"stdio.h"
//int main(){
//    
//    int i,j;
//    for(i=1;i<=5;i++){
//            for(j=1;j<=5-i;j++){
//                printf(" ");
//            }
//            for(j=1;j<=i;j++){
//                printf("%c",j+64);
//            }
//            printf("\n");
//        }
//}
 
//九九乘法表
//    int i,j;    
//    for(i=1;i<=9;i++){
//        for(j=1;j<=i;j++){
//            printf("%d*%d=%-3d",i,j,i*j);
            printf("%d*%d=%-3d",j,i,i*j);
//        }
//        printf("\n");
//    }      
//}

22.有一序列 2/1,3/2,5/3,8/5,13/8,21/13...求这个数列的前20项之和。
//编程22;有一序列 2/1,3/2,5/3,8/5,13/8,21/13...求这个数列的前20项之和。
 
//程序分析:后一个分子是前一个数的分子+分母,分母是前一个的分子
#include"stdio.h"
main(){
    int i,t;
    float a=2,b=1,s=0.0;//float 分数
    for(i=1;i<=20;i++){
        s+=a/b;
        t=a;a=a+b;b=t;//a+b赋给下个a,a赋给下个b
    }
    printf("%9.6f\n",s);
    return 0;
}
23.1+2!+3!+4!+...+20!的和?
//编程23:1+2!+3!+4!+...+20!的和?
 
//程序分析:类似于累加
#include"stdio.h"
main(){
    int i;
    float s=1,ss=0;//s*= 中s必须是初始值为 1
    for(i=1;i<=20;i++){
        s*=i;
        ss+=s;        
    }
    printf("%f\n",ss);
}
24.水仙花数
#include"stdio.h"
int main(){
    int i,x,y,z;
    for(i=100;i<1000;i++){
        x=i%10;
        y=i/10%10;
        z=i/100%10;
        if(x*x*x+y*y*y+z*z*z==i){ //判断条件
            printf("%d\n",i);
        }
    }

25.将一个正整数分解质因数
#include"stdio.h"
int main(){
    int n,i;
    printf("请输入整数:");
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i<=n;i++){
        while(n%i==0){
            printf("%d",i);
            n/=i;
            if(n!=1){
                printf("*");
            }
        }
    } 
}

26.输入一个大于3的整数,判定它是否是素数
//输入一个大于3的整数,判定它是否是素数
 
 
#include"stdio.h"
int main(){
    int a;
    printf("请输入一个大于三的正整数;\n");
    scanf("%d",&a);
    for(int i=2;i<=a/2;i++){
        if(a%i==0) break;                      //
        if(i<a) printf("%d不是素数\n",a);       //
        else printf("%d是素数",a);              //
    }
    return 0;
}
//输入一个大于3的整数,判定它是否是素数
 
 
#include"stdio.h"
int main(){
    int a;
    printf("请输入一个大于三的正整数;\n");
    scanf("%d",&a);
    for(int i=2;i<=a/2;i++){
        if(a%i==0) break;                      //
        if(i<a) printf("%d不是素数\n",a);       //
        else printf("%d是素数",a);              //
    }
    return 0;
}
//输入一个大于3的整数,判定它是否是素数
 
 
#include"stdio.h"
int main(){
    int a;
    printf("请输入一个大于三的正整数;\n");
    scanf("%d",&a);
    for(int i=2;i<=a/2;i++){
        if(a%i==0) break;                      //
        if(i<a) printf("%d不是素数\n",a);       //
        else printf("%d是素数",a);              //
    }
    return 0;
}
27.给一个不多已5位数的正整数,要求:一、求是个几位数。二、逆序打印
程序分析:将每个位取出来计算.
//编程27:给一个不多已5位数的正整数,要求:一、求是个几位数。二、逆序打印
//程序分析:将每个位取出来计算
#include"stdio.h"
main(){
    int a,b,c,d,e,x;
    scanf("%d",&x); //万
    a=x/10000;  //千
    b=x/1000%10; // 百
    c=x/100%10; //十
    d=x/10%10;  //个
    e=x%10;
    if(a!=0) printf("有5位 %d %d %d %d %d\n",e,d,c,b,a);
    else if(b!=0) printf("有4位 %d %d %d %d\n",e,d,c,b);
    else if(c!=0) printf("有3位 %d %d %d\n",e,d,c);
    else if(d!=0) printf("有2位 %d %d \n",e,d);
    else if(e!=0) printf("有1位 %d\n",e);
    else printf("error\n");
    return 0;
}

28.一个5位数,判断是不是回文数。12321是回文数,个位和万位相同,十位和千位相同。程序分析:将每个位取出来比较。
//编程28:一个5位数,判断是不是回文数。12321是回文数,个位和万位相同,十位和千位相同。
//程序分析:将每个位取出来比较
#include"stdio.h"
main(){
    int a,b,c,d,e,x;
    printf("请输入一个5位数\n");
    scanf("%d",&x);
        a=x/10000;//万
        b=x/1000%10;//千
        d=x/10%10;//十
        e=x%10;//个
        if(a==e&&b==d) //判断条件是否符合
            printf("%d是回文数\n",x);
        else 
            printf("该数不是回文数\n");
        return 0;
        
}

29.请输入星期几的第几个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:情况语句比较好,如果第一个字母一样,可以用if条件语句判断。
//编程29:请输入星期几的第几个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
//程序分析:情况语句比较好,如果第一个字母一样,可以用if条件语句判断。
#include"stdio.h"
main(){
    char letter;
    printf("输入英文日期\n");
    while((letter=getchar())!='#'){ //以字符'#'结束
        switch(letter){  //Switch语句,搭配break使用
            case 'S':printf("请输入第二个字母\n");//第一个字母一样,判断第二个字母
            if((letter=getchar())=='a')  //if判断,符合条件输出
                printf("saturday\n");
            else if((letter=getchar())=='u')
                printf("sunday\n");
            else printf("error\n");//上面两种都不符合输出error
            break;//case 结束,跳出循环
            case 'F':printf("friday\n");break;
            case 'M':printf("monday\n");break;
            case 'T':printf("请输入第二个字母\n");
            if((letter=getchar())=='h')
                printf("thursday\n");
            else if((letter=getchar())=='u')
                printf("tuesday\n");
            else printf("error\n");
            break;
            case 'w':printf("wednesday\n");break;
            default:printf("data error\n");//以上条件都不符合,执行default语句
        }
    }
    return 0;
}

30.求一百以内的素数
//编程30:求一百以内的素数
#include"stdio.h"
#include"math.h"
int main(){
    int i,j;
    for(i=3;i<=100;i++){//素数:除1和它本身之外没有其他因子的数
        for(j=3;j<=i;j++){
        if(i%j==0) break;//若有其他因子直接跳出
        }    
        if(i==j)//找到本身的数就是素数
        printf("%-5d",i);
    }
}
31. 对10个数排序
//编程31:对10个数排序
//程序分析:可以利用选择法,即从后九个比较过程中,选择一个最小的与第一个元素交换,下次类推。
#include"stdio.h"
main(){
    int i,j,min,a[10],t;
    for(i=0;i<10;i++){
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
    }                      
    for(i=0;i<10;i++)
        printf("%5d",a[i]);  
        printf("\n");
    for(i=0;i<9;i++){
        min=i;
        for(j=i+1;j<10;j++){
            if(a[min]>a[j]) 
                {min=j;}
            t=a[i];
            a[i]=a[min];
            a[min]=t;
        }
    }
    for(i=0;i<10;i++)
        printf("%5d",a[i]);                    
    return 0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
}

32.求一个3*3矩阵对角线元素之和
//编程32:求一个3*3矩阵对角线元素之和
//程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
#include"stdio.h"
main(){
    float a[3][3],sum=0;
    int i,j;
    for(i=0;i<3;i++)//外循环
        {for(j=0;j<3;j++)//内循环
        scanf("%f",&a[i][j]);//键入数据值
    }
    for(i=0;i<3;i++)
        {sum=sum+a[i][i];}//对角线i=i 
    printf("对角线之和%6.2f",sum);
    return 0;            
}
 

33.有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入数组中。
//编程33:有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入数组中。
//程序分析:先判断是否大于最后一个数,排除不在其中的情况,再考虑插入中间的情况。
//#include"stdio.h"
//main(){
//    int a[11]={1,2,3,4,5,6,7,8,9,10};
//    int temp1,temp2,i,j,end,number;
//    for(i=0;i<10;i++)
//        printf("%5d",a[i]);//输出原有数组
//    printf("\n");
//    printf("请输出一个新的数字number:\n");//提示语句
//    scanf("%d",&number);//输入
//    end=a[9];//找到最后一个元素
//    if(number>a[9])//与a[9]比较大小,超过a[9]放在数组第十位上
//        a[10]=number;//第十位
//    else {//上面条件不成立执行该语句
//        for(i=0;i<10;i++){//遍历
//            if(a[i]>number){//判断number会是第几位,将number赋给该位置
//                temp1=a[i];
//                a[i]=number;//将number赋给该位置
//                for(j=i+1;j<11;j++){//从i位往后,将数组后一个下标的数值赋给前面一个下标,
//                    temp2=a[j];      
//                    a[j]=temp1;
//                    temp1=temp2;//重复,实现每位数对应下标往后推一位
//                }
//            break;//执行完跳出
//        }
//    }
//}
//    for(i=0;i<11;i++){
//        printf("%5d",a[i]);
//    }
//return 0;
//}
 
#include"stdio.h"
main(){
    int a[10]={38,29,25,18,17,12,9,6,4},x,i,t;
    printf("请输入一个数x,要求0<=x<=40:\n");
    scanf("%d",&x);
    a[9]=x;
    for(i=0;i<9;i++)
    printf("a[%d]=%d  ",i,a[i]);
    printf("\n");
    for(i=0;i<10;i++){
        if(a[9]>a[i]){
            t=a[9];
            a[9]=a[i];
            a[i]=t;
        }
    }
    for(i=0;i<10;i++)
        printf("a[%d]=%d  ",i,a[i]);
        return 0;
}

34.将一个数组逆序输出
//编程34:将一个数组逆序输出
//程序分析:将第一个和最后一个互换
#include"stdio.h"
#define N 5
main(){
    int a[N]={1,4,7,5,9},i,temp1;
    for(i=0;i<N;i++){//原数组输出
        printf("%3d",a[i]);    
    }
    printf("\n");
    for(i=0;i<N/2;i++)//取数组的一半值对应下标,对应互换,奇数偶数都符合
    {
        temp1=a[i];//数值互换
        a[i]=a[N-1-i];
        a[N-i-1]=temp1;
    }
    for(i=0;i<N;i++)//一位数组输出
        printf("%3d",a[i]);
        return 0;
}

35.杨辉三角,输出前十行
//编程35:杨辉三角,输出前十行
/*    1
      1   1
      1   2   1
      1   3   3   1
      1   4   6   4   1
      1   5   10  10  5   1  
*/
#include"stdio.h"
main(){
    int i,j,a[10][10];//定义
    for(i=0;i<10;i++){//特殊情况
        a[i][0]=1;
        a[i][i]=1;
    }
    for(i=2;i<10;i++)//规律   某个位置的值=该值上面数值+该值上方左边的数值
        for(j=1;j<i;j++)
        a[i][j]=a[i-1][j]+a[i-1][j-1];    //[i][j]不要写反了
    for(i=0;i<10;i++){//二维数组输出方式
    for(j=0;j<=i;j++)
        printf("%5d",a[i][j]);
        printf("\n");        
        }
    return 0;
}

36.好数 各位数乘积能被各位之和整除
//76:好数 各位数乘积能被各位之和整除
#include "stdio.h"
main()
{
int i,j,k,b,c,d,m[10],cnt=0,a[10];
    printf("请输入一组不超过10个数的三位数并以-1作为结束:\n");
    for(i=0;i<10;i++){
            scanf("%d",&a[i]);
            b=a[i]/100%10;
            c=a[i]/10%10;
            d=a[i]%10;
        }
    for(i=0;i<10;i++){
        if((b+c+d)%(b*c*d)==0)
        m[cnt++]=a[i];
    }
    for(j=0;j<cnt;j++)
        printf("m[%d]=%d\n",j,m[j]);
    return 0;
}

37.不超过
#include"stdio.h"
main(){
    int i,sum=0,s=0;
    for(i=1;;i+=3){
        sum+=i;
        if(sum>1000)
        {printf("不超过1000的最大i的值为 %d\n",(i-3)); break;}    
    }
        printf("超过1000的值为 %d\n",sum);
        for(i=1;i<=73;i+=3)
            s+=i;
        printf("不超过1000的最大值为 %d\n",s);
    return 0;
}
38.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子分成5份,多了一个,这只猴子将多了的一个仍入海中,拿走了一份。第二只猴子把剩下的桃子又分均分成5份,又多了一个,同样的扔海中了,拿走了一份,第三、第四、第五都是这样做的。求海滩原来最少有多少个?
//编程38:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子分成5份,多了一个,这只猴子将多了的一个
//仍入海中,拿走了一份。第二只猴子把剩下的桃子又分均分成5份,又多了一个,同样的扔海中了,拿走了一份,
//第三、第四、第五都是这样做的。求海滩原来最少有多少个?
 
#include"stdio.h"
main(){
    int m,i,j,k,count;//i为每次剩下的桃子数量   j 为桃子的总数
      for(i=4;i<10000;i+=4){  //循环5次  第一次剩余4个,第二次应该(4+1+1)/4*5   所以必须是4的倍数
          count=0;
          m=i;
          for(k=0;k<5;k++){
              j=i/4*5+1;         //对应每一次总的桃子数 
              i=j;               //下一次的桃子数量是上一次剩余桃子数量
              if(j%4==0)         //剩余的能被4整除才能继续算 
                  count++;
              else 
                  break;
          }
      i=m;
      if(count==4)            //能被4整除的次数为4 
      {printf("原数量最少为 %d 个\n",j);break;}
    }
    return 0;
}

39.八进制转换成十进制
//编程39:八进制转换成十进制
 
#include <stdio.h>
int main()
{
    char *p, s[8];    // 100  1*8^2+0*8^1+0*8^0
    int n;
    p=s;
    gets(p);
    n = 0;
    while (*p)
        n = n * 8 + *(p++) - '0';
    printf("%d\n", n);
    return 0;
}
/*
//#include <stdio.h>
///*10进制转换为8进制*/
//void fun(int a)
//{
//    int chu, yu;
//    chu=a/8;
//    yu=a%8;
//    if(chu==0)
//    {
//        printf("%d",yu);
//    }
//    else
//    {
//        fun(chu);
//        printf("%d",yu);
//    }
//}
//int main()
//{
//    int x;
//    printf("请输入10进制数:");
//    scanf("%d",&x);
//    printf("转化后的8进制为:");
//    fun(x);
//    return 0;
//}
 
 
 
#include <stdio.h>
/*10进制转换为16进制*/
int sum(int a,char b[])
{
    int chu, yu;
    chu=a/16;
    yu=a%16;
    if(chu==0)
        printf("%c",b[yu]);
    else
    {
        sum(chu,b);
        printf("%c",b[yu]);
    }
}
int main()
{
    int a;
    char b[17]="0123456789ABCDEF";
    printf("请输入10进制数:");
    scanf("%d",&a);
    printf("转化后的16制数为:");
    sum(a,b);
    return 0;
}
 
 
1.首先理解一下八进制转化为十进制,是数字形式的转化,但是在计算机中数字字符都是按照acsii
的形式存储的,所以说首先要将数字字符的ascii码转化为数字,代码就是   n=*p-'0';
2.转化成数字成功之后就是将指针的地址指向下一个数组的值的地址  p++;
然后就是去判断,将输入发的几个数字字符都转化为十进制数字之后,再整体结合成一个完整的十进制数
 
要清楚的两点是:1.数字字符(ascii)转化为数字   n=*p-'0';
                2.八进制转化为为十进制的算法  n=n*8+*p-'0';
 
解释链接:https://blog.csdn.net/zmyyyyu/article/details/120212562
*/

40.0-3所能组成的奇数个数
//编程40:0-3所能组成的奇数个数
#include"stdio.h"
main(){
    long sum=4,s=4;      //s是范围内奇数个数    sum=4是一位数时奇数个数
     int j;
    for(j=2;j<=8;j++)    // j代表位数
    {
        printf("%ld\n",sum);
    if(j<=2)             //个位为1,3,5,7    
        s*=3;            // 十位不能为0,7种情况
    else 
        s*=4;            //大于两位数就是八种情况
    sum+=s;}             //s是一位,两位数...八位数时可以有多少个奇数    sum是s的和
    printf("sum=%ld",sum);
    return 0;
}
 
/*public static void main(String[] args) {
        //求0-7组成的奇数个数,不重复,如果可以重复,结果无数多个
        int count = 0;
        //一位数
        count = 4; //1,3,5,7 个位必须保证为奇数
        //两位数
        count += 6 * 4; //排列问题,个位从4个奇数中选一个,十位不能为0,不能与各位相同,还有6种选择
        //三位数
        count += 6 * 6 * 4; //同两位数
        //四位数
        count += 6 * 6 * 5 * 4;
        //五位数
        count += 6 * 6 * 5 * 4 * 4;
        //六位数
        count += 6 * 6 * 5 * 4 * 3 * 4;
        //七位数
        count += 6 * 6 * 5 * 4 * 3 * 2 * 4;
        //八位数
        count += 6 * 6 * 5 * 4 * 3 * 2 * 1 * 4;
        System.out.println("0-7所能组成的奇数个数:"+count);
    }
*/

41.一个偶数总能表示两个素数之和
//编程41:一个偶数总能表示两个素数之和
//#include"stdio.h"
//#include"math.h"
//main(){
//    int a,b,c,d;
//    scanf("%d",&a);
//    for(b=3;b<=a/2;b+=2){
//        for(c=2;c<=sqrt(b);c++)
//        if(b%c==0) break;
//        if(c>sqrt(b))
//            d=a-b; 
//        else 
//            break;
//        for(c=2;c<=sqrt(d);c++)
//        if(d%c==0) break;
//        if(c=sqrt(d))
//        printf("%d=%d+%d\n",a,b,d);
//    }
//    return 0;
//}
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int isPrime(int n) 
{
    if(n < 2) {
        return 0;
    }
    for(int i = 2; i <= sqrt(n); i++) {
        if(n % i == 0) {
            return 0;
        }
    }
    return 1;
}
 
int main()
{
    int n;
    int i;
    printf("请输入一个偶数:");
    scanf("%d",&n);
    for (i = 1; i < n; i++) {
        if (isPrime(i) && isPrime(n-i)) {
            break;
        }
    }
    printf("偶数%d可以分解成%d和%d两个素数的和:", n, i, n-i);
    return 0;
}

42.strcat
//编程75:strcat
#include"stdio.h"
#include"string.h"
main(){
//    char a[100],b[100];
//    int i,j,k;
//    printf("请输出a数组:\n");
//    gets(a);
//    printf("请输出b数组:\n");    
//    gets(b);
//    for(i=strlen(a),j=0;i<=strlen(a)+strlen(b);i++,j++)
//    a[i]=b[j];
//    puts(a);
//    return 0;
 
char a[100],b[100],i,j,k; 
printf("输入数组a\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=1,j=0;i<=strlen(a);i++,j++)
a[i]=b[j];
for(i=0;i<strlen(a);i++)
printf("%d",a[i]);
    return 0;
}

//输入一个球的半径,计算这个球的表面积和体积,输出计算结果。
#include"stdio.h"
int main(){
    double r,s,v;  //定义半径、面积和体积
    double pi=3.14;//定义Π
    printf("请输入球的半径:\n");
    scanf("%lf",&r);//输入
    s=4*pi*r*r;
    v=4.0/3.0*pi*r*r*r;
    printf("球的表面积为%lf,球的体积为%lf",s,v);
    return 0;
}
 44.输入一个三角形的三条边长,判断这三条边是否能构成直角三角形,输出计算结果
//输入一个三角形的三条边长,判断这三条边是否能构成直角三角形,输出计算结果。
#include"stdio.h"
int main(){
    float a,b,c,t;//定义a,b,c三条边和交换变量t
    printf("请输入三条边a,b,c\n");
    scanf("%f%f%f",&a,&b,&c);//输入
    if(a>b){
        t=a;
        a=b;
        b=t;
    }
    if(a>c){
        t=a;
        a=t;
        c=t;
    }
    if(b>c){
        t=b;
        b=c;
        c=t;          //保证a边大于b边大于c边
    }
    if((a*a)+(b*b)==(c*c)){//直角三角形条件
        printf("a,b,c三条边能构成直角三角形:\n");
    }else{
        printf("a,b,c三条边不能构成直角三角形:\n");
    }
    return 0;
}

45.根据公示Π/4=1-1/3+1/5-1/7+1/9-1/11+......,计算Π的近似值,当最后一项的绝对值小于0.000001为止。
//根据公示Π/4=1-1/3+1/5-1/7+1/9-1/11+......,计算Π的近似值,当最后一项的绝对值小于0.000001为止。
 
#include"stdio.h"
#include"math.h"
int main(){
    int f=1;//变号用
    double i=1.0,sum=0; //i是分母,sum是Π/4的值
    while (fabs(1.0/i)>=1e-6)//当绝对值小于10的-5次方认为为0
    {
        sum=sum+f*1.0/i;//累加每项的值
        f*=-1;//变号
        i+=2;//分母+2变化
    }
    printf("Π的近似值为%.5lf",sum*4);
}
46.从键盘输入20个学生的姓名和总分,按总分从大到小顺序输出这20个学生的姓名和总分。
//从键盘输入20个学生的姓名和总分,按总分从大到小顺序输出这20个学生的姓名和总分。
#include"stdio.h"
struct student
    {
        char name[100]; 
        int score;
    };
void main(){
    struct student a[20];
    struct student s;  //s替换变量
    int i,j;
    for(i=0;i<20;i++){
        printf("请输入第%d名同学的姓名总分:\n",i+1);
        scanf("%s%d",a[i].name,&a[i].score);        //为什么啊a[i].score需要加取地址符
    }
    for(i=0;i<20;i++){
        for(j=0;j<20-1-i;j++){
            if(a[j].score<a[j+1].score){//冒泡排序
                s=a[j];
                a[j]=a[j+1];
                a[j+1]=s;
            }
        }
    }
    for(i=0;i<20;i++){
        printf("%s*****%d\n",a[i].name,a[i].score);//遍历输出
    }
    
 
}

47.一个数只能被它本身和1整除的数叫素数,设计一函数可以判断一个数是不是素数,并利用此函数输出2-1000以内的所有素数,并每行十个输出。
//一个数只能被它本身和1整除的数叫素数,设计一函数可以判断一个数是不是素数,并利用此函数输出2-1000以内的所有素数,并每行十个输出。
#include"stdio.h"
int sushu(int m){//函数体
    int f=1,j;//定义返回值真假f,j
    for(j=2;j<m;j++){//判断是否是素数
        if(m%j==0){
            f=0;
            break;
        }
        return f;
    }
}
int main(){
    int i,cnt=0;
    printf("2-1000以内的素数如下:\n");
    for(i=2;i<=1000;i++){
        if(sushu(i)==1){//如果i是素数,cnt加一
            cnt++;
            printf("%5d",i);
            if(cnt%10==0){//每输出10个换行
                printf("\n");
            }
        }
    }
}

48.输入一个圆的半径r,输出这个圆的直径,周长,面积计算结果
//输入一个圆的半径r,输出这个圆的直径,周长,面积计算结果
#include"stdio.h"
int main(){
    double pi=3.1415926;//定义Π
    double r,d,s,l;//定义半径r、直径d、周长l和面积s
    printf("请输入半径r:\n");
    scanf("%lf",&r);//输入半径r
    d=2*r;
    l=pi*2*r;
    s=2*pi*r*r;
    printf("%lf%12lf%12lf",d,l,s);  
}
49.判断输入的正函数既是5的又是7的倍数,如果是输出“yes”,如果不是输出“no”。
//判断输入的正函数既是5的又是7的倍数,如果是输出“yes”,如果不是输出“no”。
#include"stdio.h"
int main(){
    int i;
    printf("请输入一个人正整数:\n");
    scanf("%d",&i);//输入正整数i
    if(i%5==0&&i%7==0){//判断i既是5的倍数,又是7的倍数
        printf("yes");
    }else{
        printf("no");
    }
    return 0;
}
50.从键盘输入一个正整数n,计算1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n) 的值
//从键盘输入一个正整数n,计算1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+n) 的值
#include"stdio.h"
int main(){
    double sum=0,den=1;//定义总和sum、分母den
    int i,n;//定义变量i,定义项数n
    printf("请输入一个正整数n\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum+=1/den;//累加每一项的值
        den+=i+1;//分母变化
        printf("%-12lf",den);
    }
    printf("%lf",sum);
}
51.从键盘输入一个四行三列的矩阵,输出这个矩阵以及它的转置矩阵
//从键盘输入一个四行三列的矩阵,输出这个矩阵以及它的转置矩阵
#include"stdio.h"
void main(){
        int a[4][3],b[3][4],i,j;//定义数组a,数组b
        printf("请输入一个四行三列的矩阵:\n");
        for(i=0;i<4;i++){
            for(j=0;j<3;j++){
                scanf("%d",&a[i][j]);//遍历输入a数组
            }
        }
        for(i=0;i<4;i++){
            for(j=0;j<3;j++){
                printf("%d\t",a[i][j]);//遍历输出a数组
            }
            printf("\n");//一行4个,第5个换行
        }
        printf("转置矩阵为:\n");
        for(i=0;i<3;i++){
            for(j=0;j<4;j++){
                b[i][j]=a[j][i];//转置
            }
        }
        for(i=0;i<3;i++){
            for(j=0;j<4;j++){
                printf("%d\t",b[i][j]);//遍历输出b数组
            }
            printf("\n");//一行3个,第4个换行
        }
 
    return 0;
}

52.设计一个判别素数的函数,在主函数中输入两个正整数,判别这两个数之和是否是素数
//设计一个判别素数的函数,在主函数中输入两个正整数,判别这两个数之和是否是素数
#include"stdio.h"
#include"stdbool.h"
#include"math.h"
int pd(int x,int y){//判断是否是素数的函数
    int z=x+y;//定义z存放两个数之和
    printf("%d\n",z);
    for(int i=2;i<=sqrt(z);i++){//从2开始,遍历到在z的平方根就行
       if(z%i==0){//判断是否是素数
        return false;//如果z取余i为0是真,则不是素数
       }else{
        return true;
       }
    }
}
int main(){
    int a,b;//定义输入整形
    printf("请输入两个正整数;\n");
    scanf("%d%d",&a,&b);
    if(pd(a,b)){//判断函数返回值,即两个数之和是否是素数的布尔值
        printf("%d和%d之和是素数\n",a,b);  
    }else{
        printf("%d和%d之和不是素数\n",a,b);
    }
}

54.输入梯形的上底、下底和高,计算梯形的面积,并输出结果
//输入梯形的上底、下底和高,计算梯形的面积,并输出结果
#include"stdio.h"
void main(){
    double a,b,h,s=0;
    printf("输出梯形的上底下底和高,中间用空格分隔:\n");
    scanf("%lf%lf%lf",&a,&b,&h);
    s=(a+b)*h/2;
    printf("梯形的面积为 %.2lf",s);
}
55.首先输入一个点A的平面坐标,在输入一个矩形的左上角和右下角的平面坐标,判断这个点A在矩形的内部、外部还是边上,输出计算结果。
//首先输入一个点A的平面坐标,在输入一个矩形的左上角和右下角的平面坐标,判断这个点A在矩形的内部、外部还是边上,输出计算结果。
#include"stdio.h"
struct point
{
    float x;
    float y;
};
 
void main(){
    struct point p;
    struct point pr;
    struct point pl;//声明变量
    printf("判断这个点A在矩形的内部、外部还是边上:\n");
    printf("首先输入一个点A的平面坐标,在输入一个矩形的左上角和右下角的平面坐标:\n");
    scanf("%f%f",&p.x,&p.y);
    scanf("%f%f",&pl.x,&pl.y);
    scanf("%f%f",&pr.x,&pr.y);
    if((p.x==pr.x&&p.y<=pl.y&&p.y>=pr.y)||(p.x==pl.x&&p.y<=pl.y&&p.y>=pr.y)||(p.y==pr.y&&p.x<=pr.x&&p.x>=pl.x)||(p.y==pl.y&&p.x<=pr.x&&p.x>=pl.x)){
        printf("点A落在矩形的边上:\n");
    }
    if((p.y>pl.y)||(p.y<pr.y)||(p.x>pr.x)||(p.x<pl.x)){
        printf("点A落在矩形的外部:\n");
    }
    else printf("点A落在矩形的内部:\n");
    return 0;
}

56.输入1980年1月1日至2009年12月31日之间的任一年月日,计算该日期为该年的第几天。
//输入1980年1月1日至2009年12月31日之间的任一年月日,计算该日期为该年的第几天。
 
//switch{}  31 28/29 31 30 
 
#include"stdio.h"
void main(){
    int year,month,day,sum,leap=0;//定义年月日,该年的第几天sum,
    printf("输入1980年1月1日至2009年12月31日之间的任一年月日\n");
    scanf("%d%d%d",&year,&month,&day);
    printf("%d年%d月%d日\n",year,month,day);
    if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年
        leap=1;//闰年加一天
    }
    switch (month)
    {
    case 12:sum+=31;
    case 11:sum+=30;
    case 10:sum+=31;
    case 9 :sum+=30;
    case 8 :sum+=31;
    case 7 :sum+=31;
    case 6 :sum+=30;
    case 5 :sum+=31;
    case 4 :sum+=30;
    case 3 :sum+=31;
    case 2 :sum+=leap+28;
    case 1 :sum+=31;
    }
    sum+=day;
    printf("%d",sum);
}

57.从键盘输出两个三行三列的矩阵,输出这两个矩阵的和矩阵。
//从键盘输出两个三行三列的矩阵,输出这两个矩阵的和矩阵。
#include"stdio.h"
int main(){
    int a[3][3],b[3][3],i,j;
    printf("输入两个三行三列的矩阵:\n");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            scanf("%d",&b[i][j]);
        }
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            printf("%d\t",b[i][j]);
        }
        printf("\n");
    }
 
 
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            a[i][j]+=b[i][j];
        }
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

58.求a的平方根的迭代公式Xn+1 = (Xn+a/Xn)/2设计一个自定义求平方根函数,并利用此函数输出1-100的平方根。
//求a的平方根的迭代公式Xn+1 = (Xn+a/Xn)/2设计一个自定义求平方根函数,并利用此函数输出1-100的平方根。
 
 
//要求:用函数实现迭代求平方根         平方根:开根号
#include"stdio.h"
#include"math.h"
void function(int n){       //传参
    float x0,x1,x;  
    x=(float)n;
    x1=(float)n;
    do{
        x0=x1;
        x1=(x0+(x/x0))/2;         //按公式来写呗,迭代公式就是开平方的公式
    }while (fabs(x0-x1)>=1e-5);
    printf("%f\n",x1);   
}
 
void main(){
    int i;
    for(i=1;i<=100;i++){        //1-100循环
        function(i);
    }
}

59.1千克=2.2046226磅,输入一物体的质量(以千克为单位),计算该物体有多少磅,输出计算结果
//1千克=2.2046226磅,输入一物体的质量(以千克为单位),计算该物体有多少磅,输出计算结果     
#include"stdio.h"
# define N 2.2046226
void hs(float n){
    double s=0.0;
    s=n*N;
    printf("%.7lf",s);
}
 
void main(){
    float x;
    printf("请输入物体的重量,以千克为单位:\n");
    scanf("%f",&x);
    hs(x);
}
60.标准差公式为 a=sqrt(1/NΣi=1-->N(Xi-u)²)公式中N为样本个数,Xi为样本值,u为样本均值,输入20个数
//标准差公式为 a=sqrt(1/NΣi=1-->N(Xi-u)²)公式中N为样本个数,Xi为样本值,u为样本均值,输入20个数,
//计算这20个数的标准差,输出计算结果。
#include"stdio.h"
#include"math.h"
#define N 20
void main(){
    int a[20],i,sum=0,u;
    double b=0;
    printf("输入20个整数:\n");
    for(i=0;i<20;i++){
        scanf("%d",&a[i]);
    }   
    for(i=0;i<20;i++){
        printf("%d ",a[i]);//输出验证
        a[i]+=sum;
        u=sum/20.0;
        b+=pow((a[i]-u),2);
    }
    printf("%-20lf",sqrt(1.0/N*b));
}

61.设计一个函数可以将10进制转化为2进制字符串,并利用此函数计算从键盘的输入的3个10进制正数,输出相应的2进制数。
//设计一个函数可以将10进制转化为2进制字符串,并利用此函数计算从键盘的输入的3个10进制正数,输出相应的2进制数。
 
#include"stdio.h"
void function(int n){
     int i=0,j;
     char b[20];
     while (n>0)
     {
        if(n%2==0){
            b[i]='0';
            i++;
        }else{
            b[i]='1';
            i++;
        }
        n/=2;
     }
     for(j=i-1;j>=0;j--){
        printf("%c",b[j]);
     }
     printf("\n");
}
void main(){
    int i,a[3];
    printf("请输入三个正整数:\n");
    for(i=0;i<3;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<3;i++){
        function(a[i]);
    }
}

62.编写程序输出100-300之间的所能同时被3和5整除的数
//编写程序输出100-300之间的所能同时被3和5整除的数
#include"stdio.h"
int main(){
    int i,s=0;
    for(i=100;i<301;i++){
        if(i%3==0 && i%5==0){
            printf("%5d",i);
            s++;
        }
    }
}
63.编写一个程序,将两个字符串链接起来,要求不用strcat函数
//编写一个程序,将两个字符串链接起来,要求不用strcat函数
#include"stdio.h"
#include"string.h"
void main(){
    char a[20],b[20];
    int i=0,j=0;
    printf("输入a数组:\n");
    gets(a);
    printf("输入b数组:\n");
    gets(b);
    i=strlen(a);
    while (b[j]!=0)
    {
        a[i++]=b[j++];
    }
    a[i]='\0';
    puts(a);
    
}

64.判断是否是水仙花数
//判断是否是水仙花数
#include"stdio.h"
int main(){
    int i,a,b,c;
    char x;
    do
    {
    printf("请输入一个三位正整数:\n");
    scanf("%d",&i);
    if(i>999||i<100){
        printf("请输入合适的正整数:\n");
    }
    a=i/100;
    b=i/10%10;
    c=i%10; 
    if(i==(a*a*a+b*b*b+c*c*c)){
        printf("%d是水仙花数:\n");
    } 
 
    printf("选择是否继续,继续请按y键:\n");
    scanf(" %c",&x);
    } while(x=='y'||x=='Y');
}

65.已知圆柱高h=5,要求输入圆的半径,求出圆周长,圆的面积和圆柱体积,输入对应数字输出对应结果
//已知圆柱高h=5,要求输入圆的半径,求出圆周长,圆的面积和圆柱体积,输入对应数字输出对应结果
#include"stdio.h"
#define pi 3.1415926
#define h 5
void function(double r){
    double l,s,v;
    int m;
    double yz[4];
    l=2*pi*r;
    s=pi*r*r;
    v=s*h;
    yz[0]=r;
    yz[1]=l;
    yz[2]=s;
    yz[3]=v;
    printf("请输入程序对应的数字:\n");
    printf("0:圆的半径 1:圆周长 2:圆的面积 3:圆柱体积\n");
    scanf("%d",&m);
    printf("%6.2lf",yz[m]);
}
int main(){
    double n;
    int i;
    printf("请输入圆的半径:\n");
    scanf("%lf",&n);
    function(n);
}

66.矩阵转置:将二维数组a的行和列元素互换后存到另一个二维数组b中
//矩阵转置:将二维数组a的行和列元素互换后存到另一个二维数组b中
#include"stdio.h"
int main(){
    int i,j,x,y;
    printf("请输入X行Y列的矩阵:\n");
    scanf("%d%d",&x,&y);
    int a[x][y];
    for(i=0;i<x;i++){
        for(j=0;j<y;j++){
            scanf("%d",&a[i][j]); 
        }
    for(i=0;i<x;i++){
       for(j=0;j<y;j++){
            printf("%d",a[i][j]);         //有问题
        }
        printf("\n");
    }
}
}      

67.输入4个数,输出4个数的总和以及平均值
//输入4个数,输出4个数的总和以及平均值
#include"stdio.h"
void main(){
    int i;
    double a[4],sum=0,avg;
    printf("请输入四个数:\n");
    for(i=0;i<4;i++){
        scanf("%lf",&a[i]);
        sum+=a[i];
    }
    avg=sum/4;
    printf("总和为%.5lf,平均值为%.4lf",sum,avg);
}
68.判断一元二次方程ax²+bx+c=0的根
//判断一元二次方程ax²+bx+c=0的根
//b²-4ac  >0 =0 <0    
#include"stdio.h"
#include"math.h"
void main(){
    int a,b,c;
    float x1,x2,p;
 
 
    while (1)
    {
    printf("输入一元二次方程的系数a,b,c\n");
    scanf("%d%d%d",&a,&b,&c);
    if(a==0){
        printf("输入不是一元二次函数:\n");    //重新输出的部分
        continue;
    }else break;
    }
    
 
    if((b*b-4*a*c)>=0){
        p=sqrt(b*b-4*a*c);
        x1=((-b)+p)/2*a;
        x2=((-b)-p)/2*a;
        printf("方程有两个实根%f  %f:\n",x1,x2);
        if((b*b-4*a*c)==0){
            printf("方程有一个实根%f:\n",x1);
        }
    }else printf("方程没有实根%f:\n");
}

69.实现公路收费站的车辆收费问题。根据输入的车辆类型,输出对应的收费,A类车:15元 B类车:35元 C类车:50元  D类车:70元
//实现公路收费站的车辆收费问题。根据输入的车辆类型,输出对应的收费
//A类车:15元 B类车:35元 C类车:50元  D类车:70元
#include"stdio.h"
void main(){
    int n,a[4]={15,35,50,70};
    printf("请输入车的类型A B C D:\n");
    scanf("%c",&n);
    if(n='A') printf("%d",a[0]);
    else if(n='B') printf("%d",a[1]);
    else if(n='C') printf("%d",a[2]);
    else if(n='D') printf("%d",a[3]);
    else printf("输入有误:\n");

————————————————
版权声明:本文为CSDN博主「△卡卡西」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xujx1997/article/details/124003083

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值