zoukankan      html  css  js  c++  java
  • 新11-15次作业

    一.实验内容与设计思想

    11-5 打印杨辉三角

    设计思路:先定义一个二维数组,a[0][0]=1,剩下第0行的其他元素全部赋值为0,根据杨辉三角的概念算出下面的几行,这时你会得到一个主对角线以下是杨辉三角而主对角线以上是0的矩阵,在根据输出格式删去0。

    12-7 输出大写英文字母(15 分)

    设计思路:先从缓冲区中得到一串字符,放到a数组中,将a数组中的大写字母利用遍历a数组取出来放到b数组中,再利用嵌套的循环将b数组中重复的大写字母用1覆盖,当b数组的元素不等于1是输出元素。

    13-6 数组循环右移(20 分)

    设计思路:定义两个数组,根据数组循环右移的周期性,把a数组的值赋给b数组,从而实现数组右移。

    14-8 字符串排序

    设计思路:利用指针数组,将字符串间接存放在其中,通过strcmp的比较,利用冒泡排序法得出顺序。

    15-5 建立学生信息链表

    设计思路:理解链表的概念,就是将多个结构体连接到一起,用next连接。

    二.源程序

    11-5 打印杨辉三角

    #include<stdio.h>
    int main(){
    int n,i=0,j,k,h=0;
    scanf("%d",&n);
    int a[n][n];
    a[0][0]=1;
    for(j=1;j<n;j++){
    a[i][j]=0;
    }
    for(i=1;i<n;i++){
    for(j=0;j<n;j++){
    if(j==0){
    a[i][j]=1;
    continue;
    }
    a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
    }
    k=0;
    for(i=0;i<n;i++){
    k=h;
    for(;k<n-1;k++)
    printf(" ");
    for(j=0;j<n;j++)
    if(a[i][j]!=0)
    printf("%4d",a[i][j]);
    printf(" ");
    h+=1;
    }
    }

    12-7 输出大写英文字母

    #include<stdio.h>

    int main(){

      char a[80],b[80];

      int i=0,h=0,q=1,j=0,k;

      while((a[i]=getchar())!=' ')i++;

      a[i]='';

      for(i=0;a[i]!='';i++){

        if(a[i]>='A'&&a[i]<='Z'){

          b[j]=a[i];j++;

          q=0;

        }else h=1;

      }

      b[j]='';

      for(j=0; b[j]!='';j++){

        for(k=j+1;b[k]!='';k++){

          if(b[j]==b[k]){

            b[k]=1;

          }

        }

      }

      if(h==1&&q==1)printf("Not Found");

      else for(k=0;b[k]!='';k++){

        if(b[k]!=1)printf("%c",b[k]);

      }

    }

     

    13-6 数组循环右移

     

    #include <stdio.h>
    #define MAXN 10
     
    int ArrayShift( int a[], int n, int m );
     
    int main()
    {
        int a[MAXN], n, m;
        int i;
     
        scanf("%d %d", &n, &m);
        for ( i = 0; i < n; i++ ) scanf("%d", &a[i]);
     
        ArrayShift(a, n, m);
     
        for ( i = 0; i < n; i++ ) {
            if (i != 0) printf(" ");
            printf("%d", a[i]);
        }
        printf("
    ");
     
        return 0;
    }

    int ArrayShift( int a[], int n, int m ){

      int b[1000];

      int i,j,t;

        for(i=0;i<n;i++){

          t=(i+m)%n;

          b[t]=a[i];

        }

       for(j=0;j<n;j++){

         a[j]=b[j];

       }

       return a;

    }

    14-8 字符串排序

    #include<stdio.h>
    #include<string.h>
    int main(){
    char *color[5],*t;
    char a[5][100];
    int i=0,k,j;

    while(i<5){
    scanf("%s",a[i]);
    color[i]=a[i];
    i++;
    }


    for(k=1;k<5;k++){
    for(j=0;j<5-k;j++){
    if(strcmp(color[j],color[j+1])>0){
    t=color[j];
    color[j]=color[j+1];
    color[j+1]=t;
    }
    }
    }
    printf("After sorted: ");
    for(i=0;i<5;i++){
    printf("%s ",color[i]);
    }

    }

    15-5 建立学生信息链表

    void input()
    {
    struct stud_node *q;
    q=(struct stud_node *)malloc(sizeof(struct stud_node));
    scanf("%d", &q->num);
    while(q->num != 0)
    {
    scanf("%s %d", q->name, &q->score);
    if(head == NULL)
    {
    head = q;
    head->next = NULL;
    }
    if(tail != NULL)
    {
    tail->next = q;
    }
    tail = q;
    tail->next = NULL;
    q=(struct stud_node *)malloc(sizeof(struct stud_node));
    scanf("%d", &q->num);
    }
    }

    三、实验小结

    1.没理解strcmp 函数的使用方法。

      当strcmp 返回的值为0时,表示这两个字符串相等,若返回的数值不为0,则表示两个字符串第一次出现不同的字母的差值。

    2.没理解指针的概念。

      指针存放的是地址,使用指针可以简化代码。

    3.注意冒泡排序,选择排序在字符串中的应用,即注意知识的迁移。

      冒泡排序和选择排序不仅仅适用于数字数组,也适用于字符串数字,两种排序提供了排顺序的思路。

  • 相关阅读:
    PyTorch在NLP任务中使用预训练词向量
    使用Google的Colab+pytorch
    深度学习与Pytorch入门实战(十六)情感分类实战(基于IMDB数据集)
    深度学习与Pytorch入门实战(十五)LSTM
    深度学习与Pytorch入门实战(十四)时间序列预测
    深度学习与Pytorch入门实战(十三)RNN
    PyTorch的nn.Linear()详解
    Pytorch中with torch.no_grad()或@torch.no_grad() 用法
    深度学习与Pytorch入门实战(十二)实现ResNet-18并在Cifar-10数据集上进行验证
    深度学习与Pytorch入门实战(十一)数据增强
  • 原文地址:https://www.cnblogs.com/hexintong99/p/8378364.html
Copyright © 2011-2022 走看看