⑴ 编写函数,求用1元、5元和10元三种纸币支付n元钱 共有多少种支付方法
N种方法 因为N不是固定值。
c语言:#include
void main()
{
int n;
int i,j,k;//i表示1元的数量,j表示5元的数量,k表示10元的数量
scanf("%d",&n);
for(i=0;i<=n;i++)
for(j=0;j<=n/5;j++)
for(k=0;k<=n/10;k++)
if(i+5*j+10*k==n)
printf("i=%d,j=%d,k=%d
",i,j,k);};
拓展资料:
一、&&&区别:
1.运算符性质不同。&是一个位运算符。&&是一个逻辑运算符。
2.作用不同。&是将两个二进制的数逐位相与,结果是相与之后的结果。&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。
3.用途限制。&除了是一个位运算符,也是取地址符。&&就是一个单纯的逻辑运算符,没有任何其他含义。
二、人民币:
1999年10月1日,在中华人民共和国建国50周年之际,根据中华人民共和国国务院第268号令,中国人民银行陆续发行第五套人民币。第五套人民币共八种面额:100元、50元、20元、10元、5元、1元、5角、1角。
第五套人民币根据市场流通中低面额主币实际起大量承担找零角色的状况,增加了20元面额,取消了2元面额,使面额结构更加合理。第五套人民币采取"一次公布,分次发行"的方式。
1999年10月1日,首先发行了100元纸币;2000年10月16日发行了20元纸币、1元和1角硬币;2001年9月1日,发行了50元、10元纸币;2002年11月18日,发行了5元纸币、5角硬币;2004年7月30日,发行了1元纸币。
为提高第五套人民币的印刷工艺和防伪技术水平,经国务院批准,中国人民银行于2005年8月31日发行了第五套人民币2005年版100元、50元、20元、10元、5元纸币和不锈钢材质1角硬币。
2015年11月12日起发行提高防伪技术版本的2015年版100元纸币。
⑵ 怎么用c语言判断十周年
题目应该是想判断“整十周年”吧?60周年70周年这种。
#include <stdio.h>
void main()
{
int year;
printf("请输入年份:");
scanf("%d",&year);
if((year - 1921) % 10 == 0)
printf("%d是建党%d周年 ",year,year-1921);
else
printf("%d不是建党的整十周年 ",year);
}
⑶ 今年我50岁了,能否学习C语言
编程不限年龄,只要你肯学就ok
基础编程很简单,要是深入的话就难了
⑷ c语言如何定义超过50万的大数组
由于栈大小的限制,这种规模的数组不能存在栈上,所以必须放在堆中。C语言中申请堆空间使用函数malloc:
#include<stdlib.h>
int*arr;
arr=malloc(sizeof(int)*500000);
if(arr==NULL)
空间申请失败;
注意要引用头文件stdlib.h
⑸ c语言50的阶乘,这个for循环什么意思啊,有没有大佬解释一下
(a=b=0,1)这里是逗号运算,该运算符优先级最低,最低!。就是最后一个表达式的值。就是说(a=b=0,1)就是1{此处还有一个作用就是为a、b赋值0}
至少第一遍循环时a<=m这里的真假值暂无影响。因为||的后半部分为true
循环体:s[a]=(b+=s[a]*t)%n,b/=n;
又是一个逗号运算符,所以等价为:
s[a]=(b+=s[a]*t)%n;
b/=n;
第二个for循环:两个输出没什么好看的,就两个;中间的m--作为判断条件,m小余0时跳出。
所以,我大约展开一下。
#include<stdio.h>
#defineN50
longs[N]={1},n=10000,t=2,a,b,m;//这一排不过问了
intmain(void)
{
//for(;a<=m||++t<=N&&(a=b=0,1);m==a++&&b&&m++)
//s[a]=(b+=s[a]*t)%n,b/=n;
//a<=m||++t<=N&&(a=b=0,1)这个判断是这个顺序,首先看a<=m吗?真就返回//true后边不执行,假就执行(++t<=N&&(a=b=0,1)),看++t<=N吗?假就返//回false,真就执行(a=b=0,1),即返回true
//我将循环的第一次的a<=m||++t<=N&&(a=b=0,1)变形
boolkkk;
if(a<=m){kkk=1;}
elseif(!(++t<=N)){kkk=0;}
else{a=b=0;kkk=1;}
for(;kkk;){
//s[a]=(b+=s[a]*t)%n;
b+=s[a]*t;
s[a]=b%n;
b/=n;
//下面是每次循环的m==a++&&b&&m++变形
if(!a){m=0;}
elseif(!b){m=0;}
else{m=m;m++;}
//下面是后来每次循环的a<=m||++t<=N&&(a=b=0,1)变形
if(a<=m){kkk=1;}
elseif(!(++t<=N)){kkk=0;}
else{a=b=0;kkk=1;}
}
for(printf(("%d"),s[m]);m--;)//这个循环不重要便不多说了
printf("%04d",s[m]);
}
不容易哦,回答这个问题,我也学习了不少东西,因为有个短路原则在里面且有计算式在其间夹杂,所以两个逻辑判断必须改写成这种形式最准确、安全、有保障。
当然如果运行结果有所出入,希望您能指出,我们再学习讨论一番
⑹ c语言问题50
#include <stdio.h>
void main()
{
int i,j,n,sum,m;
sum=0;m=1;
printf ("输入n:\n");
scanf ("%d",&n);
for (i=1;i<=n;i++)
{ for (j=1;j<=i;j++)
m=m*j;
sum=sum+m;
}
printf ("计算结果为:%f",sum);
}
还有一种递归求解的
double nnn(int n)
{
if(n=0||n=1)
return (double)1;
else
return n*nnn(n-1);
}
这是求n!的方法
在main方法里用for语句求1 ! +2 ! +3 ! + … +n !的值
如:
double sum=0;
for(int i=n;i>0;i++)
sum=sum+nnn(n);