慕课C语言第六周:数组与函数

  1. 数组

视频1:初试数组

//写一个程序计算用户输入的数字的平均数。
//并输出所有大于平均数的数

#include<stdio.h>
int main()
{
	int x;
	double sum = 0;
	int cnt =0;
	int number[100];
	scanf("%d",&x);
	while(x!=-1){
	    number[cnt] = x;
	    sum += x;
	    cnt ++;
	    scanf("%d",&x);
	}
	if(cnt>0){
	    printf("%f\n",sum/cnt);
	    int i;
	    double average = sum/cnt;
	    for( i=0; i<cnt;i++){
	        if(number[i]>average){
	            printf("%d ",number[i]);
	        }
	    }
	}
	return 0;
} 

视频3:用数组做散列计算

//写一个程序,输入数量不确定的[0,9]范围内的整数,
//统计每一种数字出现的次数,输入-1表示结束。


#include<stdio.h>
int main()
{
    const int number =10;
	int x;
	int count[number];
	int i;
	for(i=0;i<number;i++){
	    count[i]=0;
	}
	scanf("%d",&x);
	
	while(x!=-1){
	    if(x>=0 && x<=9){
	        count[x] ++;
	    }
	    scanf("%d",&x);
	}
	for(i=0;i<number;i++){
	    printf("%d:%d\n",i,count[i]);
	}
	return 0;
} 

2.函数的定义与使用

函数是 一块代码,接受零个或多个参数做一件事,并返回零个或一个值。

视频1:初见函数


#include<stdio.h>

void cheer()
{
    printf("cheer\n");
}
int main()
{
    cheer();

	return 0;
} 

 视频2:函数的定义与使用

#include<stdio.h>

void sum(int begin,int end)
{
    int i;
    int sum = 0;
    for(i=begin;i<=end;i++){
        sum += i;
    }
    printf("%d到%d的和是%d\n",begin,end,sum);
}
int main()
{
    sum(1,10);
    sum(20,30);
    sum(35,45);
    
	return 0;
} 

视频3:从函数中返回

#include<stdio.h>

int max(int a,int b)
{
    int ret;
    if(a>b){
        ret = a;
    }else{
        ret=b;
    }
    return ret;
}
int main()
{
    int a,b,c;
    a=5;
    b=6;
    c=max(10,12);
    c=max(a,b);
    c=max(c,23);
    printf("%d\n",max(a,b));
    
	return 0;
} 

3.函数的参量与变量

视频1:函数原型

#include<stdio.h>

void sum(int begin,int end);   //声明

int main()
{
    sum(1,10);        //int sum(int,int)
    sum(20,30);
    sum(35,45);
    
	return 0;
} 

void sum(int begin,int end)   //  定义
{
    int i;
    int sum = 0;
    for(i=begin;i<=end;i++){
        sum += i;
    }
    printf("%d到%d的和是%d\n",begin,end,sum);
}

 视频3:本地变量

 

 

 视频4:杂事

 

 

 

 

 4.二维数组

 井字棋

 

 读入矩阵


    const int size = 3;
    int board[size][size];
    int i,j;
    int numOfX;
    int numOfO;
    int result = -1;     //-1:没人赢,1:X赢,0:O赢
    
    //读入矩阵
    for(i=0;i<size;i++){
        for(j=0;j<size;j++){
            scanf("%d",&board[i][j]);
        }
    }

 检查行

  //检查行
    for(i=0;i<size && result == -1;i++){
        numOfO = numOfX = 0;
        for(j=0;j<size;j++){
            if(board[i][j]==1){
                numOfX ++;
            }else{
                numOfO ++;
            }
        }
        if(numOfO == size){
            result = 0;
        }else if(numOfX == size){
            result =1;
        }
    }

检查列

if(result == -1){
    for(j=0; j<size && result == -1){
        numOfO = numOfX = 0;
        for( i=0; i<size; i++){
            if(board[i][j] == 1){
                numOfX ++;
            }else{
                numOfO ++;
            }
        }
        if( numOfO == size){
            result = 0;
        }else if (numOfX == size){
            result = 1;
        }
    }
}

检查对角线

numOfO = numOfX = 0;
for( i=0; i<size; i++){
    if(board[i][j] == 1){
        numOfX ++;
    }else {
        numOfO ++;
    }
}
if(numOfO == size){
    result = 0;
}else if(numOfX == size){
    result = 1;
}


numOfO = numOfX = 0;
for(i=0;i<size;i++){
    if(board[i][size-i-1] == 1){
        numOfX ++;
    }else{
        numOfO ++;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值