- 数组
视频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 ++;
}
}