• C语言的第二次实验报告


    一、思路及方法

    11-8 螺旋方阵

    设计二维数组,通过对方阵的行和列进行特征分析找出其中规律,利用循环即可将方阵输出。

    12-6 字符串转换成十进制整数

    设计字符数组,用getchar函数逐个截取,并设定以#为结束符;将每个符合条件的数组元素,利用ASCII码的十进制关系进行变化并输出。

    13-5 判断回文字符串

    设计字符型数组,并利用指针来传递输入内容;通过函数来判断是否为回文。

    14-6 通讯录的录入与显示

    通过定义结构数组,通过循环输入和输出存储内容。

    15-10 建立学生信息链表

    设计动态链表,对每项内容分别进行判断和处理。

    二、部分源程序

    11-8 螺旋方阵

      for(i=0;i<m;i++){
        for(j=i;j<n-i;j++){
          a[i][j]=N;
          N++;
        }
        for(j=i+1;j<n-i;j++){
          a[j][n-i-1]=N;
          N++;
        }
        for(j=n-i-2;j>=i;j--){
          a[n-i-1][j]=N;
          N++;
        }
        for(j=n-2-i;j>=i+1;j--){
          a[j][i]=N;
          N++;
        }
      }
      for(i=0;i<n;i++){
        for(j=0;j<n;j++)
        printf("%3d",a[i][j]);
        printf("
    ");
      }

    12-6 字符串转换成十进制整数

      while((str[i]=getchar())!='#')
      i++;
      for(j=0;j<=i;j++){
        if(str[j]=='-'){
         k=j;
         break;
        }
      } 
     for(j=0;j<=i;j++){
        if((str[j]<='9'&&str[j]>='0')||(str[j]<='F'&&str[j]>='A')||(str[j]<='f'&&str[j]>='a')){
        a=j;
        break;
        }
      }
      b=k;
      k=0;
      for(j=0;str[j]!='';j++){
        if((str[j]<='9'&&str[j]>='0')||(str[j]<='F'&&str[j]>='A')||(str[j]<='f'&&str[j]>='a')){
          c[k]=str[j];
          k++;
        }
      }
      c[k]='';
      int number=0;
      for(i=0;c[i]!='';i++){
        if(c[i]>='0'&&c[i]<='9')
        number=number*16+c[i]-'0';
        else if(c[i]>='a'&&c[i]<='f')
        number=number*16+c[i]-'a'+10;
        else if(c[i]>='A'&&c[i]<='F')
        number=number*16+c[i]-'A'+10;
      }
    

     13-5 判断回文字符串

    bool palindrome( char *s )
    {
      int i=0,n,m;
      n=strlen(s);
      if(n%2==0){
        m=n/2;
        for(i=0;i<=m;i++){
          if(s[i]!=s[n-1-i]){
            return false;
          }
        }
        return true;
      }
      else{
        m=n/2+1;
        for(i=0;i<=m;i++){
          if(s[i]!=s[n-1-i]){
            return false;
          }
    	}
        return true;
      }
    }
    

    14-6 通讯录的录入与显示

    #include<stdio.h>
    struct message {
      char name[100];
      char birth[100];
      char sex;
      char number[100],phone[100];
    };
    int main()
    {
      int N,n;
      scanf("%d",&N);
      struct message s[11];
      int i,j,k;
      for(i=0;i<N;i++)
        scanf("%s %s %c %s %s",&s[i].name,&s[i].birth,&s[i].sex,&s[i].number,&s[i].phone);
      
      scanf("%d",&n);
      for(i=0;i<n;i++){
      scanf("%d",&k);
      if(k<N&&k>=0){
        printf("%s %s %s %c %s
    ",s[k].name,s[k].number,s[k].phone,s[k].sex,s[k].birth);
      }
      else
      printf("Not Found
    ");
      }
      return 0;
    }
    

    15-10 建立学生信息链表

    void input()
    {
    int num,score;
    char name[20];
    struct stud_node *p;
    scanf("%d",&num);
    while(num){
    p=(struct stud_node *)malloc(sizeof(struct stud_node));
    scanf("%s %d",name,&score);
    p->num=num;
    p->score=score;
    strcpy(p->name,name);
    if(head==NULL)
    head=p;
    else
    tail->next=p;
    tail=p;
    scanf("%d",&num);
    }
    }
    

      

    三、心得体会

    1.在创建链表时一定要注意对每个链表进行空间的分配,核对链表最后一个的NEXT是否指向NULL。

    2.定义嵌套结构时一定要注意能否正确的表示嵌套起来的结构内的部分。

    3.在用利用自定义函数的功能时指针可以避免返回值的书写。

    4.灵活运用ASCII码和getchar();注意%c会“吃”空格。

    5灵活分析目标要求的特征,可以通过特点进行总结,使函数作用域扩大。

  • 相关阅读:
    jQuery插件之jquery editable plugin点击编辑文字插件
    firefox与ie的javascript兼容性编程汇编【转载】
    css前端制作 经验总结
    非常棒的jqChart图表插件
    WPF Image Source设置文件路径后 在编辑状态下显示图片,运行时不显示
    WPF RadioButton 绑定枚举
    WPF MVVM实现数据增删改查逻辑全流程详细解析demo
    bigNumber.js的简单使用
    PHP程序的“Missing argument 3”的错误提示解决方法
    PHP判断0和空的方法
  • 原文地址:https://www.cnblogs.com/liu601525221/p/8351887.html
Copyright © 2020-2023  润新知