C语言 第四章 程序控制结构 课后10道习题

1.规定一个工人工作时间为160小时/月,每小时工资为5元,如果加班,每小时增加4元,编程计算并打印此工人一个月的工资,要求工作时间由键盘输入
#include <stdio.h>
int main()
{
	int a,b;
	printf("请输入工作时间:");
	scanf("%d",&a);
	if(a==160)
		printf("本月工资为:%d\n",a*5);
	else if(a>=160)
    {
		b=160*5+(a-160)*9;
		printf("本月工资为:%d\n",b);
    }                  //多条语句应用花括号扩起来 缩进用tab 
                        
    else  
		printf("本月工作时间不够!");
	return 0; 
}

在这里插入图片描述

2.企业发放的奖金根据利润提成。利润(1)低于或等于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%提成,从键盘输入当月利润(1),求应发放奖金总数
#include <stdio.h>
int main()
{
	double a;
	printf("请输入本月利润(万):");
	scanf("%lf",&a);
	if(a<=10)
	 	printf("%lf",a*0.1);
    else if(a<=20)
     	printf("%lf",10*0.1+(a-10)*0.075);
    else if(a<=40)
    	printf("%lf",10*0.1+10*0.075+(a-20)*0.05);
    else if(a<=60)
    	printf("%lf",10*0.1+10*0.075+20*0.05+(a-40)*0.03);
    else if(a<=100)
        printf("%lf",10*0.1+10*0.075+20*0.05+20*0.03+(a-60)*0.015);
    else 
    	printf("%lf",10*0.1+10*0.075+20*0.05+20*0.03+(a-100)*0.01);
    return 0;
}

在这里插入图片描述

3.输入100~999能被3整除,不能被7整除的数
#include <stdio.h>
int main()
{
	int i;
	for(i=100;i<1000;i=i+1)
	{
		if(i%3==0&&i%7!=0)
			printf("%d\t",i);  	//格式化直接\t (很有用)
	} //for
	return 0;
}

在这里插入图片描述

4.从键盘输入20个实数,分别计算并输出:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数和负数的个数
#include <stdio.h>
int main()
{
	int i,b=0,c=0;   //定义b,c并赋初值 用于记录正数和负数的个数 
	double a,zs=0,fs=0,jdz=0;    //定义a输入20个实数的变量 
	for(i=1;i<=20;i=i+1)
	{
		scanf("%lf",&a);
		if(a>0)
		{
			b++;
			zs=zs+a;
		}//if 
		if(a<0)
		{
			c++;
			fs=fs+a;
		}//if
	}//for
	jdz=zs-fs;
	printf("所有正数之和:%lf,所有负数之和:%lf,所有数的绝对值之和:%lf,正数的个数:%d,负数的个数:%d",zs,fs,jdz,b,c);
	return 0;
}

在这里插入图片描述
耶耶耶~

5.编写程序实现:棋盘有32个格子,第一个格子放1粒芝麻,第二个格子放2粒,第三个格子放4粒,第四个格子放8粒…每粒芝麻的质量为0.00001kg,如果要放满整个棋盘,需要多少千克的芝麻
#include <stdio.h>
int main()
{
	int i;  //i计数 
	double kg=0,a=1.0,sum=1.0;  //sum为芝麻数的总和  
	for(i=2;i<=32;i++)
	{
		a=a*2;   //a为每一个格子的芝麻数 
		sum=sum+a;
	}//for
	kg=sum*0.00001;
	printf("需要%lf千克的芝麻",kg);
	return 0;
}

在这里插入图片描述
a和sum是double型的,放int会报错 (捂脸)

6.编写求3~100所有素数的程序
#include <stdio.h>
int main()
{
	int i,n;
	for(i=3;i<=100;i=i+1)
	{
		for(n=2;n<=i-1;n=n+1)
			if(i%n==0)break;//for
		if(i==n)
		printf("%d\n",i);//if
	}//for
	return 0;
}

在这里插入图片描述
总感觉素数有点难 肯定不是我的问题~

***7.编程计算:1!+3!+…+(2n-1)!的值。其中,n值由键盘输入
#include <stdio.h> 
int main()
{ 
	int sum = 1, last = 1; 
	int i, n;	
	scanf("%d", &n); 
	printf("%d!", 1); 	
	for (i=2; i<=n; i++)
	{ 
		last *= (2 * i - 1) * (2 * i - 2); 
		sum += last; 
		printf(" + %d!", (2 * i - 1)); 
	}//for	
	printf(" = %d\n", sum); 
	return 0;
}

在这里插入图片描述

怎么这么难呀 想买脑花帽惹

8.爱因斯坦曾出过这样一道数学题:有一条长街梯,每步跨2阶,最后剩下一阶,每步跨3阶,最后剩下2阶,每步跨5阶,最后剩下4阶,每步跨6阶,最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩,问共有多少阶?
#include <stdio.h>
int main()
{
	int i; 
	for(i=1;i>=1;i++)  //无限循环 
	{
		if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)
		{
			printf("阶梯数为:%d",i);
			break; 
		}//if
	}//for
	return 0;
}

在这里插入图片描述

9.编程计算12+34+…+(n-1)*n的值,其中,n的值由键盘输入
#include <stdio.h>
int main()
{ 
	int i,n,s=0; //s求和 
	printf("请输入大于等于2的偶数:\n");
	scanf("%d",&n);
    if(n>=2&&n%2==0)//满足上述大于等于2的偶数 
	{
		for(i=2;i<=n;i+=2)
    		s+=(i-1)*i;//for
		printf("%d\n",s);
    }//if  
    return 0; 	
}

在这里插入图片描述

***10.求2000以内的全部亲密数,亲密数是指:如果整数a的全部因子(包括1但不包括a本身)之和等于b;且整数b的全部因子(包括1但不包括b本身)之和等于a,则将a和b称为亲密数
#include <stdio.h>
#include <math.h>
int main()
{ 
	int a,i,b,n;
    printf("There are following friendly--numbers pair smaller than 2000:\n");
    for(a=1;a<2000;a++) 
   {
        for(b=0,i=1;i<=a/2;i++) 
            if(!(a%i)) b+=i; 
        for(n=0,i=1;i<=b/2;i++)
            if(!(b%i)) n+=i;
        if(n==a&&a<b)
            printf("%4d..%4d\n",a,b); 
    }
	return 0;
}

在这里插入图片描述

心得

现在睡午觉不知道还来不来得及😴

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值