c++ printf控制位数_C程序设计经典例题100道

第1道

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

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

掉不满足条件的排列。

2.程序源代码:

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&&j!=k)/*确保i、j、k三位互不相同*/

printf("%d,%d,%d\n",i,j,k);

}

}

d4589fa7fdaa2f10f76805507f5ee862.png

#include

void main()

{

 int i=1,j=1,k=1;

 printf("\n");

 while(i<5)

 {

  j=1;

  while(j<5)

  {

   k=1;

   while(k<5)

   {

    if(i!=k&&j!=k&&i!=j)

    {

     printf("%d%d%d\n",i,j,k);

    }

k++;

   }

    j++;

  }

  i++;

 }

}

18a9b34f1296a1f2d875c105ffc34934.png

题目2:企业发放的奖金根据利润提成。利润(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

int main()

{

int w,b1,b2,b4,b6,b10;

    long int a;

scanf("%ld",&a);

b1=100000*0.1;

b2=b1+100000*0.075;

b4=b2+200000*0.05;

b6=b4+200000*0.03;

b10=b6+400000*0.015;

if(a<=100000)

w=a*0.1;

else if(a<=200000)

w=b1+(a-100000)*0.075;

else if(a<=400000)

w=b2+(a-200000)*0.05;

else if(a<=600000)

w=b4+(a-400000)*0.03;

else if(a<=1000000)

w=b6+(a-600000)*0.01;

else

w=b10+(a-1000000);

printf("奖金为%d\n",w);

return 0;

}

91ae20c20ad6207525036fb0d76549c1.png

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

#include

#include

int main()

{

long int i, x, y;

i = 1;

while (i < 100000)

{

x = sqrt(i + 100);

y = sqrt(i + 268);

if (x * x == i + 100 && y * y == i + 268)

printf("\n%ld", i);

i++;

}

}

104c2d0ecaee755943592c3f8f75cc24.png

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

#include

int main(){

int day, month, year, sum, leap;

printf("\nplease input year,month,day\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("data error!");break;

}

sum = sum + day;    //再加上某天的天数 

if(year%400==0||(year%4==0&&year%100!=0)){  //判断是不是闰年 

leap = 1;

}else{

leap = 0;

}

if(leap == 1&&month > 2){  //如果是闰年且月份大于2,总数加1天 

sum++;

}

printf("It is the %dth day.",sum);

}

2b10ea4d3a986c335bf771c24b819e8a.png

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

#include

int main ()

{

int x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if(x>y)

{

t=x;

x=y;

y=x;

}

if(x>z)

{

t=x;

x=z;

z=t;

}

if(y>z)

{

t=y;

y=z;

z=t;

}

printf("%d %d %d\n",x,y,z);

return 0;

}

a6b17b9f5f47f8b6b24df403856e7112.png

用*号输出字母C的图案。

#include

void main()

{

printf("********");putchar('\n');

printf("**");putchar('\n');

printf("**");putchar('\n');

printf("********");putchar('\n');

}

c3f1518d0b5997de7e6614ca31879de6.png

题目7:如图,输出如下特殊图案

#include

int main()

{

char a=176,b=219;

printf("%c%c%c%c%c\n",b,a,a,a,b);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",a,a,b,a,a);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",b,a,a,a,b);

return 0;

}

题目:输出9*9口诀。

#include

int main()

{

int i=1,j=1;

    while(i<=9)

{

while(j<=i)

{

printf("%d*%d=%d\t",i,j,i*j);

j++;

}

printf("\n");

i++;

j=1;

}

return 0;

}

338f6f772f85218dd4a737c84bcdad2b.png

打印世界象棋

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

2.程序源代码:

#include "stdio.h"

main()

{

int i,j;

printf("\1\1\n");/*输出两个笑脸*/

for(i=1;i<11;i++)

{

for(j=1;j<=i;j++)

printf("%c%c",219,219);

printf("\n");

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值