代码改变世界

第二次作业

2018-04-07 21:29  孙佳钰  阅读(226)  评论(0编辑  收藏  举报

一.学习内容总结

       我们把某一元素的地址放到一个指针变量中,数组元素的指针就是数组元素的地址,这个地址不仅可以是变量的地址, 也可以是其它数据结构的地址。因为数组或函数都是连续存放的。通过访问指针变量取得了数组或函数的首地址, 也就找到了该数组或函数。指针可以自加或自减,而数组名是指针常量,不能自加或自减

 

二.在课堂或课后编程学习遇到的问题及解决过程

      1 .不懂指针的用法及意义

    解决:看书查询资料,了解运用指针的意义以及如何操作

      2 .总弄混 & 与 *,而在便宜侯总显示错误

    解决:翻阅书籍或相关资料,搞懂地址和变量,反复练习

      3.在编译后发现错误,错误在于头文件的落写

    解决:先打出#include<stdlib.h>,最基本的框架不能落下

 

三.作业

   1.

#include <stdio.h>
#include <string.h>void main()
{char c,s[80];  int i,k=0;
 gets(s);  
 c=getchar();
 for(i=0; s[i]!='\0'; i++)
 {if(s[i]==c)
    k++;
 }
 printf("%d",k);
}

 

   截图:

 

 2.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int n=5,i,j;
    char **str;
    char s[100];
    str=(char**)malloc(sizeof(char*)*n);
    for(i=0;i<n;i++)
    {
        str[i]=(char*)malloc(sizeof(char)*100);
        printf("请输入第%d个字符串\n",i+1);
        gets(str[i]);
    }
    puts("排序后的字符串为:");
    for(i=0;i<n;i++)
    {
        for(j=i;j<n-1;j++)
        {
            if(strcmp(str[j+1],str[j])<0)
            {
                strcpy(s,str[j+1]);
                strcpy(str[j+1],str[j]);
                strcpy(str[j],s);
            }
        }
    }
    for(i=0;i<n;i++)
    {
        puts(str[i]);
    }
    for(i=0;i<n;i++)
    {
        free(str[i]);
        str[i]=NULL;
    }
    free(str);
    str=NULL;
    return 0;
}

截图:

 

 

四.附加内容

     1.截图: