从零开始的c语言学习

函数
函数分为库函数和自定义函数,解决问题的时候大部分需要自己写一个函数。当写一个函数的时候,如果是指针形式(int* pa),代表的是传址调用,这时候函数是跟函数外面的值挂钩的。如果是传值调用(int a),值相当于是拷贝了一份值,并不会影响函数外面的数值。函数外面给出值叫做实参,函数里给的数值叫形参。写函数时一般先写怎么用,再写函数。
代码
求100-200的质数。
#define _CRT_SECURE_NO_WARNINGS 1
//void–没有返回值
#include<stdio.h>
int is_prime(int x)
{
int j = 0;
for (j = 2; j < x; j++)
{
if (x%j == 0)
return 0;
}
return 1;//在循环完成之后才能返回值,不然在括号里出现符合条件的就会给出1.
}
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
if (is_prime(i) == 1)
printf("%d “, i);
}
return 0;
}
写一个函数进行查找
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int chazhao(int arr[],int k, int sz)//arr[]在这里的效果实际上类似于指针
{
int left = 0;
int right = sz-1;
while (left <= right)
{
int mid = (left + right) / 2;//这句话因为添加循环导致被留在外面出现了bug。
if (k < arr[mid])
right = mid - 1;
else if (k>arr[mid])
left = mid + 1;
else
return mid;
}
return 0;
}
int main()
{
int arr[] = { 1, 3, 5, 7, 9, 13, 14, 17, 19, 20 };
int i = 0;
int k = 0;
scanf(”%d",&k);
int sz = sizeof(arr) / sizeof(arr[0]);
int ret = chazhao(arr, k, sz);//arr指的是一个元素,而不是整个数组。
if (ret != 0)
printf(“找到了,下标是:%d\n”, ret);
else
printf(“找不到此数\n”);
return 0;
}
结语
感觉似乎很简单的代码,当自己进行操作的时候,却是各种错误不断,我渐渐有点明白多敲代码的正真意图了。

上一篇:web自动化学习03——quit和close区别


下一篇:C语言中的择中,二分查找算法解析