考试练习:问题:要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款

·问题:要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款:
Enter a dollar amount: 93

        $20 bills: 4
        $10 bills: 1

        $5 bills: 0

        $1 bills: 3
·调用下列函数实现
void pay_amount (int dollars, int *twenties, int*tens, int *fives, int *ones);

学习到的知识,函数不能改变变量的值,如果想改变变量的值,需要通过指针,上传变量的地址,可以进行改变。

 所以函数的指针的目的是为了改变变量的值。

正确代码如下:

#include <stdio.h>

void pay_amount(int dollars,int *twenties,int *tens,int *fives,int *ones);

int main() {
	/*1.输入美金数量
	 2.输入20美金,10美金,5美金,1美金
	 	2.1功能实现:20取余,剩下的取余
		2.2注意,如果1满5,5+1,1变0
		2.3
	 3.输出结果
	 */
	int dollars;
//	dollars=93;
	printf("Enter a dollar amount:");
	scanf("%d",&dollars);
	int twenties;
	int tens;
	int fives;
	int ones;
	pay_amount(dollars,&twenties,&tens,&fives,&ones);//函数访问地址直接改变变量 
	printf("$20:%d\n",twenties);
	printf("$10:%d\n",tens);
	printf("$5:%d\n",fives);
	printf("$1:%d\n",ones);
}

void pay_amount(int dollars,int *twenties,int *tens,int *fives,int *ones) {
		*twenties = dollars / 20;
		dollars = dollars % 20;
		*tens = dollars / 10;
		dollars = dollars % 10;
		*fives = dollars / 5;
		dollars = dollars % 5;
		*ones = dollars;
	
}

输出结果如下: 

 Enter a dollar amount:93
$20:4
$10:1
$5:0
$1:3

 【补充】运用知识:

利用函数改变变量的值,实验如下

#include <stdio.h>


void change_value(int *num){
    *num *= 2; //将变量值乘以2
}
void change_value2(int num){
    num *= 2; 
}
int main(){
    int num = 5;

    printf("Original value: %d\n", num);

    //调用函数change_value并传递变量num的值
    change_value2(num);
   printf("Modified value: %d\n", num); //原变量值未改变    
    change_value(&num);

    printf("Modified value: %d\n", num); //原变量值改变

    return 0;
}

运行出结果如下:

Original value: 5
Modified value: 5
Modified value: 10

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值