C语言经典程序一

时间:2022-05-24 03:59:52

题目一、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?


程序代码:

#include "stdio.h"
int main(void)
{
    unsigned int i,j,k,Length,Num[]={1,2,3,4},Result;
    Length = sizeof(Num)/sizeof(unsigned int);
    
    for(i=0;i<Length;i++)
    {
           for(j=0;j<Length;j++)
           {
                 for(k=0;k<Length;k++)
                  {
                       if(i!=j && i!=k && j!=k)
                       {
                              //printf("%d%d%d \r\n",Num[i],Num[j],Num[k]);
                              Result = Num[i]*100 + Num[j]*10 + Num[k];
                              printf("%d \r\n",Result);
                       }
                 }
            }
     }

}

运行结果:

C语言经典程序一


题目二、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?


程序代码:

#include "stdio.h"
int main(void)
{
       unsigned long Money,Metal;

       unsigned int Bound10,Bound20,Bound40,Bound60,Bound100;

       Bound10 = 100000 * 0.1;
       Bound20 = Bound10 + 100000*0.075;
       Bound40 = Bound20 + 200000*0.05;
       Bound60 = Bound40 + 200000*0.03;
       Bound100 = Bound60 + 400000*0.015; 

       printf("输入利润数据/元单位 \r\n");
       scanf("%ld",&Money);

       if(Money<=100000)
       {
            Metal = Money * 0.1;
       }
       else if(Money<=200000)
       {
           Metal = Bound10 +(Money-100000)*0.075;
       }
       else if(Money<=400000)
      {
          Metal = Bound20 +(Money-200000)*0.05;
      }
      else if(Money<=600000)
      {
          Metal = Bound40 +(Money-400000)*0.03;
       }
       else if(Money<=1000000)
       {
          Metal = Bound60 +(Money-600000)*0.015;
       }
       else
       {
          Metal = Bound100 +(Money-1000000)*0.01;
      }
       printf("Metal=%d \r\n",Metal);

}

运行结果:

C语言经典程序一




题目三、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?


程序代码:

#include "stdio.h"
#include "math.h"

int main(void)
{
unsigned long int i,x,y;
for(i=0;i<200000;i++)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x == (i+100) && y*y == (i+268))
{
printf("该数为%ld \r\n",i);
}
}

}

运行结果:

C语言经典程序一






题目四、输入某年某月某日,判断这一天是这一年的第几天?


程序代码:

#include "stdio.h"
int main(void)
{
unsigned int day,month,year,sum,leap;
printf("请以年月日格式输入日期 \r\n");
scanf("%d %d %d",&year,&month,&day);

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 12:sum=334;break;
default:printf("日期错误");break;  
}
  
sum = sum+day;
if(year%400 ==0 || (year%4==0 && year%100!=0))
{
leap =1;
}
else
{
leap =0;
}
if(leap==1 && month>2)
{
sum++;
}
printf("这是一年中的第%d天 \r\n",sum);

}


运行结果:

C语言经典程序一




题目五、输入三个整数x,y,z,请把这三个数由小到大输出。


程序代码:

#include "stdio.h"

int main(void)
{
unsigned int x,y,z,temp;
printf("请输入3个整数 \r\n");
scanf("%d %d %d",&x,&y,&z);
if(x>y)
{
temp = x;
x = y;
y = temp;
}
if(x>z)
{
temp = x;
x = z;
z = temp;
}
if(y>z)
{
temp = y;
y = z;
z = temp;
}
printf("小到大排列: %d %d %d \r\n",x,y,z);

}

运行结果:

C语言经典程序一