2018.7.10学习日志

                                                                       学习日志                                                   

今日学习任务

数组和函数

今日任务完成情况

(详细说明本日任务是否按

计划完成,开发的代码量)

按照要求积极完成了当天的学习任务

1、讨论学习7.9日布置的作业,对最大公约数和最小公倍数的问题,以及在200~300之间不能被3整除的数,5个一行输出的问题进行进一步学习。

2、编写遍历数组的相关代码,讨论局部变量和全局变量之间的问题,讨论一维数组的初始化方式。

3、用数组写一个冒泡排序。

4、一维数组的赋值和在内存中的存放,以及二维数组的基本应用。

5、字符数组的运用,编写代码进行实例化讨论。

6、函数的构成方法(可以只包含一个主函数main(),也可以包含一个主函数和若干的其他函数。自定义函数的编写。)

7、将之前写好的用数组方式进行冒泡排序的代码修改成运用函数思想编写的代码。

8、函数调用的步骤,形参和实参之间的关系,传值方式。

9、值传递和地址传递。

10、特殊关键字的用法(extern、static、auto、register)

11、预处理的相关知识。

今日开发中出现的问题汇总

在编写遍历数组的代码时,发现了未初始化的局部变量都是随机值以及未初始化的全局变量都是0这两个问题;

数组的存放一定是从低地址到高地址的;

注意在编写代码时,变量和函数用意义相对明显的英语词汇来进行表达能够便于理解;

被register声明的变量一定不能取地址;

今日未解决问题

暂无。

课后作业:

字符数组中在指定位置插入字符;

设计一个洗牌发牌的程序。

今日开发收获

对于C语言中数组和函数部分的相关应用有了进一步的认识和理解。

拓展了自己在 本方面的认知和了解。

自我评价

(是否按开发规范完成

既定任务,需要改进的地

方,与他人合作效果等)

按开发规范完成了既定任务;

需要加强自己的理解应用能力;

同学之间积极讨论,互相帮助,一同学习编写代码以及各类基础知识。

其他

形成天才的决定因素应该是勤奋!继续加油~
附:

课后作业:

1、字符数组中在指定位置插入字符;

#include <stdio.h>


#include <string.h>


int Insert(char a[],char num,int a_i);


void main()


{

int a_i;

char a[50],num;

printf("请输入一个字符串:");

gets(a);

printf("请输入您想插入的一个字符:");

num=getchar();

getchar();

printf("请输入您想插入的位置:");

fflush(stdin);

scanf("%d",&a_i);

if (Insert(a,num,a_i))

printf("没有插入!\n");

else

printf("插入后的字符串为:%s\n",a);

system("pause");

}


/*函数功能:在字符串的某个位置插入一个字符*/


int Insert(char a[],char num,int a_i)


{

int i;

if(a_i >= strlen(a))

{

printf("您输入的位置超出字符串长度了!"); 

return -1;

}

else

{

for(i=strlen(a);i >= a_i;i--)

{

a[i+1]=a[i];

}

a[i]=num;

return 0;

}

}

2、设计一个洗牌发牌的程序。



#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//card structure definition//
struct card
{
        const char *face;
        const char *suit;
};//end structure card
 
typedef struct card Card;//new type name for struct card
 
//prototypes
void fillDeck( Card * const wDeck, const char * wFace[], const char * wSuit[] );
void shuffle( Card * const wDeck );
void deal( const Card * const wDeck );
 
int main( void )
{
        Card deck[ 52 ];//define array of Cards
        
        //initialize array of pointers
        const char *face[] = {"A", "2", "3", "4", "5",
                "6", "7", "8", "9", "10", "J", "Q", "K" };
        //initialize array of pointers
        const char *suit[] = { "红桃", "方块", "黑桃", "梅花" };
 
        srand( time( NULL ) );        //randomize
 
        fillDeck( deck, face, suit );//load the deck with Cards
        shuffle( deck );//put Cards in random order
        deal( deck );//deal all 52 Cards
 
        return 0;
}//end main
 
//place strings into Card structures
void fillDeck( Card * const wDeck, const char * wFace[], const char * wSuit[] )
{
        int i;
 
        for ( i = 0; i<=51; i++ )
        {
                wDeck[ i ].face = wFace[ i % 13 ];
                wDeck[ i ].suit = wSuit[ i / 13 ];
        }
}//end function fillDeck
//shuffle cards
void shuffle( Card * const wDeck )
{
        int i;
        int j;//variable to hold random value between 0 - 51
        Card temp;//define temporary structure for swapping Cards
        for ( i = 0; i <=51; i++ )
        {
                j = rand() % 52;
                temp = wDeck[ i ];
                wDeck[ i ] = wDeck[ j ];
                wDeck[ j ] = temp;
        }
}//end function shuffle
//deal cards
void deal( const Card * const wDeck )
{
        int i;
        for ( i = 0; i <= 51; i++ )
        {
                printf( "%5s %-8s%c", wDeck[ i ].face, wDeck[ i ].suit, ( i + 1 ) % 2 ? '\t' : '\n' );
        }
}












猜你喜欢

转载自blog.csdn.net/lemonm/article/details/80980002