C语言 第六章 数组

2020-05-22  本文已影响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;
}
上一篇下一篇

猜你喜欢

热点阅读