C语言之基本算法

来源:百度知道 编辑:UC知道 时间:2024/09/25 01:17:23
1.有些时候好象不用返回值的时候还是没有用void或者说没有用return 0, 这个不返回值是return o 还是return 就可以了` 这两个是不是一个意思啊
有些时候好象不用返回值的时候还是没有用void,是怎么回事,我还是没有搞清楚那个VOID ,RETURN的意思

2.有这么一段
# include “stdio.h”
void js Value(int m,int k,int xx[])
{
int i,j,s=0;
for(i=m+1;k>0;i++)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
{xx[s++]=i;k--}
}
}
main()
{
int m,n,zz[100];
printf(“\n 请输入两个整数:”);
scanf(“%d %d”,&m,&n);
js Value(m,n,zz); /* 这里为什么用的zz,而不是zz[],与上面xx[]对应啊?*/
for(m=0;m<n;m++) printf(“%d”,zz[m]);
}
请问这里传值 还是传地址啊??好象这里是传地址 那也只有zz是数组名啊,其他的m,n又不是指针`~~也不是数组名,怎么可以说全是传的地址呢`~?~~
3.有这么一段,将大与100且小于1000的完全平方数输出
#include “stdio.h”
#include”math.h”
int isSquare(int m)
{
int square;
square=sqrt((double)m);
if(m==square) return 1;
return 0; /*这里的这句好象是不是书上错了,我觉得少了一个else*不是返回了一次值为1,再返回一次值为0,就把前面返回的1覆盖了吗~~?~我怎么感觉不管怎么都是要执行这个return 0这句话的``~~

1.void是无返回值,return 0;是返回值为0,也就是无返回值。用的return的时候是因为要根据它的返回值继续主函数的一些判断等等。
2.函数中传递过去的是什么,你就看函数里的形参定义的是什么类型,定义了整形传过去的就是一个整形值,定义的是指针传过去的就是指针所指向的地址。
3.函数执行到return的时候程序就会结束,return 1;就是返回真。0就是假。所以执行了return 1;就不会执行return 0;了。
4.主函数里定义n传到子函数处理之后主函数的n是不变的。如果将n的地址传过去,主函数的n就变了。
5.double是双精度浮点型,float是单精度。假如函数的类型和变量的类型不一样则以函数的类型为准。不是什么隐士转换。

1.return 0是检验程序是否正确的。
当程序正确时会显示0,错误则出现其他随机数。
void的意思是“无类型”。
如果函数没有返回值,那么应声明为void类型。
在C语言中,凡不加返回值类型限定的函数,
就会被编译器作为返回整型值处理。

2.你开始定义了int zz[100],后面能用zz[]吗?
在自定义函数中,你是不知道数组长度大小,所以用xx[]。

3.return 0你可以完全忽略它,编程时也不用编进去,它完全不重要。

4.指针传递变量的地址,变量传递的是变量的值。
在自定义函数中,如果要改变形参的话,必须改变形参的地址。
而形参的值的改变,没任何意义。

5.float到double转换有可能丢失数据。变量类型改变了。不是什么转换。
所谓隐式转换:例:int i=5; char j='a'; int n=i+j;
因char可以隐式专换为int类型,所以结果n=102 。
与什么long,short没关系。那些只是类型长度不同。

你的书写风格要注意了。不能中英文混合。
还有,头文件老写错!是#include<stdio.h>,不是双引号。