美文网首页
C语言 第六章 数组

C语言 第六章 数组

作者: 小明同学机器人 | 来源:发表于2020-05-22 18:07 被阅读0次

    [TOC]

    第六章 数组

    数组求斐波那契数列

    #include<stdio.h>
    #define P 20
    int main()
    {
        int a[P]={1,1};
        for(int i=2;i<P;i++)
        {
            a[i]=a[i-1]+a[i-2];
            printf("%d\n",a[i]);
        }
        for(int i=0;i<P;i++)
        {
            printf("%d\n",a[i]);
        }
        
     } 
    

    二维数组定义初始化

    #include<stdio.h>
    int main()
    {
        int a=3, b=4;
        int c[a][b]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
         for(int i=0;i<a;i++)
         {
            for(int j=0;j<b;j++)
            {
                printf("%d\t",c[i][j]);
             }
             printf("\n");
         }
    }
    

    二维数组初始化方式

    #include<stdio.h> 
    int main(){
      //定义一个二维数组
      //初始化1 
      int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
      //输出二维数组的每一个元素
      int i;//控制行,下标从0开始 
      int j;//控制列,下标从0开始
      //遍历数组的每一个元素 
      for(i = 0;i<=2;i++){//行 
        for(j=0;j<=3;j++){//列 
          printf("%6d",a[i][j]); 
        }
        printf("\n");
      } 
      printf("-----------------\n");
       //初始化2 
      int b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//二维数组
      for(i = 0;i<=2;i++){//行 
        for(j=0;j<=3;j++){//列 
          printf("%6d",b[i][j]); 
        }
        printf("\n");
      }   
      //初始化3---可以对部分元素赋值,对于int类型,没有初始化的数据
      //默认值为0 
      printf("-----------------\n");
      int c[3][4]={{1,2},{3},{5}};
      for(i = 0;i<=2;i++){//行 
        for(j=0;j<=3;j++){//列 
          printf("%6d",c[i][j]); 
        }
        printf("\n");
      }
      printf("-----------------\n");
      //初始化4
      //对于二维数组,行值可以省略,列值不能省 
      int d[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
      //int d[3][]={1,2,3,4,5,6,7,8,9,10,11,12};错误!!!!! 
      for(i = 0;i<=2;i++){//行 
        for(j=0;j<=3;j++){//列 
          printf("%6d",d[i][j]); 
        }
        printf("\n");
      }
      printf("-----------------\n");
      ////初始化4
      int e[][4]={{1,2},{3},{7,8,9}};
      for(i = 0;i<=2;i++){//行 
        for(j=0;j<=3;j++){//列 
          printf("%6d",e[i][j]); 
        }
        printf("\n");
      }
      return 0; 
    }
     
    

    例题

    image-20200319144935788 答案C

    选c

    image-20200319151131959 image-20200319161338406

    定义一个char[] =“hello”; 会在后面自己加一个\0,大小也为0

    头文件库函数学习(重点)

    #include<stdio.h>
    #include<string.h>
    int main() {
    //1. 字符输入 输出
        char a='A';
        //a=getchar();
        putchar(a);
        printf("\n");
    
    //常用字符串 操作函数
    //  char str[]="hello world";
    //  puts(str);
    //2. gets(string)输入字符串  和打印字符串 puts(string)
        char str1[]="等待输入,已经注释";
    //  gets(str1);
        puts(str1);
    
    //3.   strcat(字符数组1,字符数组2)   字符数组拼接
        char str2[]="hello",str3[]=" world";
        strcat(str2,str3);
        puts(str2);
    
    //4. 字符串复制  strcpy(string,string1)   string1 给string 复制
        char str4[5],str5[]="aaaaa";
        strcpy(str4,str5);
        puts(str4);
    
    //5. strcmp(string,string)  比较字符串大小   返回值0,相等 ;返回-1,str1<str2;
    //返回值1 str1>str2 ;  这个比大小是遍历比较,遍历到同一个字符 比ascall大小
    
        char str6[]="BbBA";
        char str7[]="BbWC";
        printf("\n%d",strcmp(str6,str7));
    
    //6. 比较字符串实际长度 strlen(string)
    //如下 ,字符串的数组的大小为6,因为多了一个\0,
    //但是strlen(str8)是5,是字符串实际长度
        char str8[]="12345";
        printf("\nc长度%d",strlen(str8));
    
    //7. 将字符串转换为小写 strlwr(string)
        char str9[]="ABCDEF";
        printf("\n%s",strlwr(str9));
    
    //8. 将字符串转换为大写 strupr(string)
        char str10[]="abcdef";
        printf("\n%s",strupr(str10));
    }
    

    学生成绩

    #include<stdio.h>
    #define person 10
    int main() {
        printf("请输入十个学生成绩\n");
        int grade[person];
        int sum=0;
        double ave=0;
        for(int i=0; i<person; i++) {
            scanf("%d",&grade[i]);
            sum+=grade[i];
        }
        ave=((double)sum/person);
        printf("输入完成");
        int num=0;
        for(int k=0; k<person; k++) {
            if(grade[k]<ave) {
                num++;
            }
        }
        printf("\n学生平均成绩为%.1lf,有%d个学生平均成绩低于平均分",ave,num);
    }
    
    

    最大公约数 最小公倍数 (最小公倍数=a*b/最大公约数)自己写的

    #include<stdio.h>
    int main() {
        int a,b;
        printf("请输入两个整数\n");
        scanf("%d%d",&a,&b);
        int m=0,n=0;//m最大公约数  n 最小公倍数 
        //最大公约数
        for(int i=(a<b?a:b); i>0; i--) { //从1到最小的数计算 
            if(a%i==0&&b%i==0) {
                m=i;
                break;
            }
        }
        //最小公倍数
        for(int i=(a>b?a:b); i<a*b; i++) {//从最大的数开始++  除以a 和除以b  是否相等 
            if(i%a==0&&i%b==0) {    
                n=i;
                break;
            }
        }
        printf("最大公约数为%d,最小公倍数为%d",m,n);
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:C语言 第六章 数组

          本文链接:https://www.haomeiwen.com/subject/ljrcahtx.html