函数的使用
函数就是代码块 { } == 独立空间
一个功能对应一个函数
1.init
2.isExists;
3.bubleSort;
4.play
5.userInput
返回 函数名(type param1,type param2){
代码块
return ;
}
void int float char
驼峰命名法 add download parse
scaleImageToSize
int add(int a, int b){
}
形式参数:这个代码块的局部变量
定义函数的两种方式
1. 声明和实现一起
int add(int a, int b){
int sum = a + b;
return sum;
}
int minus(int a, int b){
return a - b;
}
2. 先声明 后实现
int minus(int a, int b);
int add(int a, int b);
void test(void);
int main(int argc, const char * argv[]) {
//函数的使用
//通过调用函数的函数名();
add(1, 2);
int result = add(3, 3);
return 0;
}
下面以两种方法来做一个小游戏
规则如下
自动生成四个随机数,不给玩家看
玩家通过输入四个数字来给出提示
若数字和位置都对这是A 若只有位置对则是B
第一种
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, const char * argv[]) {
int org[4] = {};//保存随机数
int input[4] = {};//保存用户输入
int aCount = 0;
int bCount = 0;
//播种子
srand(time(NULL));
//产生随机数
for(int i = 0; i < 4; i++){
int temp = rand()%9 + 1;
if (i == 0) {
//第一次 直接保存
org[i] = temp;
} else{
//判断是否重复
//i正好和当前已有个数对应
int j = 0;
for(; j < i; j++){
if (temp == org[j]) {
//重复了
break;
}
}
//判断for循环怎么出来的额
if (i == j) {
//不重复 保存
org[i] = temp;
}else{
//重复了
i--;
}
}
}
//排序 冒泡 选择 插入
//冒泡排序
for (int i = 0; i < 4-1; i++){
for(int j = 0; j < 4 - i-1; j++){
if (org[j] > org[j+1]) {
int temp = org[j];
org[j] = org[j+1];
org[j+1] = temp;
}
}
}
// for(int i = 0; i < 4; i++){
// printf("%d ", org[i]);
// }
//开始游戏
while(1){
//提示输入
printf("请输入猜测的数字:");
for (int i = 0; i < 4; i++) {
scanf("%d", &input[i]);
}
//开始
//1 5 8 9
//1 2 3 5
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (org[i] == input[j]) {
//数字存在 判断位置
if (i == j){
aCount++;
}else{
bCount++;
}
}
}
}
//提示用户结果
printf("%dA%dB\n", aCount, bCount);
//判断是否正确
if( aCount == 4){
printf("全对!!!!\n");
break;
}else{
aCount = 0;
bCount = 0;
}
}
return 0;
}
第二种
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
int generateNumber(int min, int max);
//产生4个随机数 保存到数组中
void initArray(int array[], int count);
//判断数组中是否包含一个数字
bool isNumberExist(int array[], int temp,int num);
//输出数组
void show(int array[],int num);
int main(int argc, const char * argv[]) {
int org[4] = {};
initArray(org, 4);
show(org,4);
return 0;
}
int generateNumber(int min, int max){
srand(time(NULL));
return rand()%(max-min+1) + min;
}
void initArray(int array[], int count){
for (int i = 0; i < count; i++) {
//获取随机数
int temp = generateNumber(1, 9);
//判断当前数组里面是否存在
bool result = isNumberExist(array, temp,4);
if (result == true) {
i--;
}else{
array[i] = temp;
}
}
}
bool isNumberExist(int array[], int temp,int num){
for (int i = 0; i < num; i++) {
if (array[i] == temp) {
return true;
}
}
return false;
}
void show(int array[],int num){
for (int i = 0; i < num; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
运行结果
![0Q@1H22D7{@AU]SNV(%SENK.png](https://upload-images.jianshu.io/upload_images/20123017-90844c0711e1e199.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)