struct结构{数值类型、布尔类型、自定义类型},

作者: 编程  发布:2019-11-06

unsigned char a[5] = { 12,36,96,128,182 };

练习与注意事项:

1.while循环练习题

  • 7的倍数
int a = 7;
    while (a <= 100) {
        if (a % 7 == 0) {
            printf("%d是7的倍数n",a);
        }
        a++;
    }
  • 个位为7的数
int b = 7;
    while (b <= 100) {
        if (b % 10 == 7) {
            printf("%d是个数为7的数n",b);
        }
        b++;
    }
  • 十位为7的数
int c = 0;
    while (c <= 100) {
        if (c / 10 == 7) {
            printf("%d是十为7的数n",c);
        }
        c++;
    }
  • 既不是7的倍数并且不包含7
int d = 0;
    while (d <= 100) {
        if (d % 7 != 0 && d % 10 != 7 && d / 10 != 7) {
            printf("%d既不是7的倍数并且不包含7n",d);
        }
        d++;
    }

2.判断一个数是几位数(两种方法)

  • 1️⃣
int n = 0;
    int sum = 0;
    printf("请输入任意一个数:");
    scanf("%d位",&n);
    while (n) {
        sum++;
        n /= 10;
    }
    printf("%dn",sum);
  • 2️⃣
int num = 0;
    printf("请输入一个数:");
    scanf("%d",&num);
    num = abs(num);
    int count = 1;
    int temp = num;
    while ((num /= 10) > 0) {
        count++;
    }
    //printf("%d位数n",count);
    printf("%d是%d位数n",temp,count);

3.回顾:判断质数

int num = 13;
    BOOL flag = YES;
    for (int i = 1; i <= 100; i++) {
        if (num % i == 0 && num != 1 && num != i) {
            flag = NO;
            break;
        }
    }
    if (flag) {
        printf("shi");
    } else {
        printf("bushi");
    }

4.数组

    形式1:
      int arr[5] = {1,2,3,4,5};
    形式2:(开辟5个元素大小的空间,后面元素不够的补0)
      int arr1[5] = {1,2,3};
    形式3:(如果声明一个数组没有赋初值,必须要声明数组的长度,否则会报错)
      int arr2[];
    形式4:(数组长度由后面的赋值决定)
      int arr3[] = {1,2,3,4,5};
      int a1 = arr1[3];
    //注意数组越界问题

5.数组的遍历

int numArr[] = {10, 20, 30, 40, 50};
    for (int i = 0; i < 5; i++) { //i<=length-1或i<length
        printf("%dn",numArr[i]);
    }

6.定义一个具有20个元素的整型数组,每个元素的取值范围是30-70之间,求数组元素的和

int arr[20] = {};
    int sum = 0;
    for (int i = 0; i < 20; i++) {
        arr[i] = arc4random() % (70 - 30 + 1) + 30;
        sum+=arr[i];

    }
    printf("%dn",sum);

7.复制一个数组,即两个数组容量一样,把其中一个数组中的元素复制到另外一个数组中

int numArr[20];
    int numArr2[20];
    for (int i = 0; i < 20; i++) {
        numArr2[i] = numArr[i];
    }
    for (int i = 0; i < 20; i++) {
        printf("%dn",numArr2[i]);

    }

8.对存储十个整型元素的数组随机赋值(20-30),计算最大值和所有元素和

int arr[10];
    int max = 0;
    int sum = 0;
    for (int i = 0; i < 10; i++) {
        arr[i] = arc4random() % (30 - 20 + 1) + 20;
        max = max > arr[i] ? max : arr[i];
        sum += arr[i];

    }
    printf("max=%dn",max);

9.生成两个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相加,放到另外一个数组中

int arr1[10];
    int arr2[10];
    int arr3[10];
    for (int i = 0; i < 10; i++) {
        arr1[i] = arc4random() % (40 - 20 + 1) + 20;
        arr2[i] = arr1[i];
        arr3[i] = arr1[i] + arr2[i];
        printf("%dn",arr3[i]);
    }

10.整型数组的长度20,随机数范围35-90,找到数组中最大的元素的值和它所对应的下标

int array[20];
    int max = 0;
    int maxIndex = 0;
    for (int i = 0; i < 20; i++) {
        array[i] = arc4random() % (90 - 35 + 1) + 35;
        //max = max > array[i] ? max : array[i];
        if (max < array[i]) {
            max = array[i];
            maxIndex = i;  //存i的值
        }
    }
printf("最大值为:%dn",max);
printf("最大值的下标为:%dn",maxIndex);

11.冒泡排序法(一)

//需要比length-1次
    int numbers[] = {6, 2, 8, 3, 9, 7};
    BOOL flag = YES; 
    for (int j = 0; j < 6 - 1 && flag == YES; j++) {
        flag = NO;
        for (int i = 0; i < 6 - 1 - j; i++) { //6-1不需要访问最后一个了
            if (numbers[i] > numbers[i + 1]) {
                int temp = numbers[i + 1];
                numbers[i + 1] = numbers[i];
                numbers[i] = temp;
                flag = YES;
            }
        }
    }

    //进行遍历
    for (int i = 0; i < 6; i++) {
        printf("%dn",numbers[i]);
    }

12.冒泡排序法(二)

    int n[] = {124,76,78,35,9,21,76,12};
    //sizeof查看所占空间大小
    int count = sizeof(n) / sizeof(n[0]);
    BOOL f = YES;
    for (int j = 0; j < count - 1 && f == YES; j++) {
        f = NO;
        for (int i = 0; i < count - 1 - j; i++) {
            if (n[i] > n[i + 1]) {
                int t = n[i + 1];
                n[i + 1] = n[i];
                n[i] = t;
                f = YES;
            }
        }
    }

    for (int i = 0; i < count; i++) {
        printf("%dn",n[i]);
    }

13.字符串&字符数组

    char str1[] = {'a','b','c'}; //字符数组
    char str2[] = "abc"; //字符串
    char str3[] = {'a','b','c',''}; //字符串
    printf("%sn",str3);

//strlen()计算字符串长度
    unsigned long len = strlen(str2);
    printf("字符串长度为:%lun",len);

//strcpy()字符串拷贝
    char str5[] = "haha";
    unsigned long len1 = strlen(str5);
    char str4[len1 + 1];
    strcpy(str4, str5);
    printf("拷贝结果是:%sn",str4);

//strcat()字符串拼接
    char str6[20] = "ni";
    //unsigned long len2 = strlen(str6);
    char str7[] = "sha";
    strcat(str6, str7);
    printf("字符串拼接后是:%sn",str6);

//strcmp()字符串比较
    char str8[] = "lala";
    char str9[] = "luelue";
    int result = strcmp(str8, str9);
    printf("较大的是:%dn",result);

14.对查找字符串的空格数:例如:“I love iOS”

char string[] = "I love iOS";
    int count = 0;
    int kongge = 0;
    while (string[count] != '') {
        if (' ' == string[count]) {
            kongge++;
        }
        count++;
    }
    printf("空格数:%dn",kongge);

C# 类型体系包含下列3种类型:

一,指针和数组
         1) C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来
         2) 对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针.
例子1:
        int a[3];
                sizeof(a) = 12   结果是整个数组a的大小,而不是指向数据a的元素的指针的大小.
      int calendar[12][30];
               sizeof(calender[4]) = 120   大小为31个sizeof(int)的值
               calendar[1][2] 与*(*(calendar+4)+7)等价

 a[]范围为0~256. 数组中数都有效。

知识点:

1.数组

1️⃣数组:
  由相同数据类型组成的构造类型,每个成员称为一个数组元素。
  最简单的数组是一维数组。
2️⃣定义:
  类型说明符 数组名[常量表达式] = {值1,值2...};
一维数组定义:
  数据类型 数组名称[元素个数];
  int arges = [10];
3️⃣数组初始化:
  数组元素的访问:数组名 + 下标
4️⃣数组下标:数组元素在数组中的序号。
5️⃣下标可以是常量,也可以是变量。
6️⃣访问数组中的元素下标可以为变量。
7️⃣访问数组中的所有元素叫遍历。
8️⃣系统不会检测数组元素的下标是否越界,编程时,必须保证数组下标不能越界。
9️⃣不能这样定义数组:
  int array[] = {}; 或者 int array[2] = {1, 2, 3};

					

本文由9159.com发布于编程,转载请注明出处:struct结构{数值类型、布尔类型、自定义类型},

关键词:

上一篇:没有了
下一篇:没有了