c语言实验二

发布时间:2023年12月18日

实验

某企业员工按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序计算并输出某位员工的应发工资。

具体要求:

①该员工的劳动时间和每小时工资数通过键盘输入,且在输入前要有提示信息。

②在输出结果时要有文字说明,输出结果的小数点后取2位小数。

③工作时间定义为基本整型变量,每小时工资及总工资定义为双精度类型。

#include <stdio.h>

int main(){
    double x;    //每小时工资
    int    y;    //工作小时数
    double num;  //总工资

    printf("请输入每小时工作和工作时间!\n");
    scanf("%lf %d",&x,&y);

    num = x * y;    //计算总工资
    num = num * 0.9;//扣税

    printf("这月工资为:%.2lf\n",num);

    return 0;
}    

注意:

? ? ? ? scanf读取数据时要加上&来获取地址!

? ? ? ? printf:输出%.2lf是对应的double类型且保留2位小数!

实验二:水果

编写一个程序用于水果店售货员结账:已知苹果2.50元/斤,鸭梨1.80元/斤,香蕉2.00元/斤,桔子1.60元/斤。

具体要求:

①输入各类水果的重量(输入前要有提示信息),计算并输出应付钱数,且输出结果要有文字说明。

②再输入顾客实际付款数,计算并输出应找钱数,且输出结果要有文字说明。?

#include <stdio.h>

int main(){
    //定义水果的价格
    double apple_price = 2.50, pear_price = 1.80,
                 banana_price = 2.00,orange_price = 1.60;
    double apple_weight, pear_weight,banana_weight,orange_weight;

    //输入水果的重量
    printf("请输入苹果的重量(斤):");
    scanf("%lf",&apple_weight);
    printf("请输入鸭梨的重量(斤):");
    scanf("%lf",&pear_weight);
    printf("请输入香蕉的重量(斤):");
    scanf("%lf",&banana_weight);
    printf("请输入桔子的重量(斤):");
    scanf("%lf",&orange_weight);

    //计算应付钱数
    double total = apple_price * apple_weight + pear_price * pear_weight
                 + banana_price * banana_weight + orange_price * orange_weight;
    printf("您应付的钱数是:%.2f元\n",total);

    //输入顾客实际付款数,计算并输出应找钱数
    double payment;
    printf("请输入您支付的金额(元):");
    scanf("%lf",&payment);
    double change = payment - total;
    printf("应找给您的钱数是: %.2f元\n",change);
    
    return 0;
}

在C语言的printf函数中,并没有直接添加换行符的参数。然而,当你使用printf函数输出内容时,新的一行通常会在输出的内容后自动开始。这是由于printf函数默认会在每次输出后添加一个换行符('\n'),这会导致输出后的自动换行

因此,在你的代码中,每个printf语句后都会自动开始新的一行,所以你不需要手动添加换行符。

实验三:数字反转

输入一个三位数,分离出它的百位、十位和个位,反转后输出。

样例输入:127

样例输出:721 ?

#include <stdio.h>

int main() {
	int num, reversedNum;

	printf("请输入一个三位数:");
	scanf("%d", &num);

	//反转后输出
	reversedNum = (num % 10) * 100 + (num % 100 / 10) 
				* 10 + num / 100;
	printf("反转后的数为:%d\n", reversedNum);
	return 0;
}

????????reversedNum = (num % 10) * 100 + (num % 100 / 10)??* 10 + num / 100;

  1. (num % 10) * 100: 这部分代码获取?num?的个位数,并乘以 100。例如,如果?num?是 123,那么这部分的值就是 300。
  2. (num % 100 / 10) * 10: 这部分代码首先获取?num?的十位数,方法是取?num?除以 10 的余数(即个位数)。然后,将得到的十位数除以 10。这个操作实际上是在将十位数转化为一个单个的数字。例如,如果?num?是 123,这部分的值就是 20。
  3. num / 100: 这部分代码直接获取?num?的百位数。

将上述三部分相加,我们就得到了一个反转后的三位数。

例如:

  • 如果?num?是 123,那么反转后的数就是 321。
  • 如果?num?是 456,那么反转后的数就是 654。

这种方法利用了基本的算术运算来简化反转三位数的操作。

文章来源:https://blog.csdn.net/nanshenchao/article/details/135016158
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。