
1void是无返回值,return 0;是返回值为0,也就是无返回值。用的return的时候是因为要根据它的返回值继续主函数的一些判断等等。
2函数中传递过去的是什么,你就看函数里的形参定义的是什么类型,定义了整形传过去的就是一个整形值,定义的是指针传过去的就是指针所指向的地址。
3函数执行到return的时候程序就会结束,return 1;就是返回真。0就是假。所以执行了return 1;就不会执行return 0;了。
4主函数里定义n传到子函数处理之后主函数的n是不变的。如果将n的地址传过去,主函数的n就变了。
5double是双精度浮点型,float是单精度。假如函数的类型和变量的类型不一样则以函数的类型为准。不是什么隐士转换。
#include <stdioh>
int change(int amount, int index, int const coins[]) {
if(amount == 0) return 1;
if(index <= 0) return 0;
for(int i = amount / coins[index - 1]; i >= 0; --i) {
if(change(amount - i coins[index - 1], index - 1, coins)) {
if(i)
printf(" %d%d", i, coins[index - 1]);
return 1;
}
}
return 0;
}
int main()
{
int coins[] = { 20, 50};
int const size = sizeof(coins)/ sizeof(int);
int amount;
for(int i = 0 ; i < size; ++i) {
for(int j = i + 1 ; j < size; ++j) {
if(coins[i] > coins[j]) {
int temporary = coins[i];
coins[i] = coins[j];
coins[j] = temporary;
}
}
}
if(coins[0] <= 0) {
printf("数据有误,零钱必须大于0\n");
return -1;
}
printf("请输入要兑换的货币金额: ");
scanf("%d", &amount);
if(change(amount, size, coins))
printf("\n兑换成功\n");
else printf("\n兑换失败\n");
return 0;
}
#include
int
main(void)
{
int
i,a[3];
printf("enter
3
numbers:");//输入3个书
for(i=0;i
{
scanf("%d",&a[i]);
if(a[i]>a[0])
a[i]=a[0]+a[i]-(a[0]=a[i]);//把最大的放在a〔0〕,就只要比较一次就行了。
}
if(a[1]
printf("the
number
from
max
to
low:");
for(i=0;i
printf("%d\t",a[i]);
printf("\n");
return
0;
}
算法(Algorithm)是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,能够得出所要求或期望的终止状态或输出数据。
算法常常含有重复的步骤和一些比较或逻辑判断。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
笔者学过数据结构就会对算法更加了解。
C语言程序设计,输入一个四位正整数,将它们倒排输出的算法如下:
#include
#include
int main()
{
int oldnum;
int newnum=0;
int temp;
printf("please input number\n");
scanf("%d",&oldnum);
printf("the old number is %d\n",oldnum);
while (oldnum !=0)
{
newnum = newnum10+oldnum%10;
oldnum = oldnum/10;
}
printf("the change number is %d",newnum);
getch();
return 0;
};
以上就是关于C语言之基本算法全部的内容,包括:C语言之基本算法、设计算法,并用c语言实现。、用C语言设计个算法,比较三个数的算法从大到小输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)