C语言笔记10
1.用指针打印一维数组
//1.用指针打印一维数组
#include <stdio.h>
int main()
{//int arr[] = { 1,2,3,4,5 };int arr[5] = { 0 };int* p = &arr[0];int sz = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < sz; i++){scanf("%d", &arr[i]);}//int* p = arr;for (int i = 0; i < sz; i++){printf("%d ", *(p + i));}return 0;
}
2.冒泡升序排序
//2.冒泡升序排序
//9 8 7 6 5 4 3 2 1 0 9 6 3 0 2 5 1 4 7 8 0 1 2 3 4 5 6 7 8 9
#include <stdio.h>
int count = 0;
void maopaofa(int *arr[], int sz)
{int i = 0;int flag = 1;// 假设已经排好序了for (i = 0; i < sz - 1; i++){int j = 0;for (j = 0; j < sz - 1-i; j++){if (arr[j] > arr[j + 1]){flag = 0;int temp = arr[j];arr[j] = arr[j + 1];arr[j+1] = temp;}count++;}if (flag == 1){break;}}return;
}
int main()
{int arr[10] = {0};int* p = &arr[0];int sz = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < sz; i++){scanf("%d", &arr[i]);}maopaofa(arr, sz);for (int i = 0; i < sz; i++){printf("%d ", *(p + i));}printf("\ncount=%d", count);return 0;
}
3.判断一个字符串是否为另外一个字符串旋转之后的字符串
//3.判断一个字符串是否为另外一个字符串旋转之后的字符串。#include <stdio.h>
int panduanxuan(char *s1, char* s2, int sz)
{for (int i = 0; i < sz; i++){for (int j = 0; j < sz - 1; j++){int temp = s1[j];s1[j] = s1[j + 1];s1[j+1] = temp;}if (strcmp(s1, s2) == 0)//if (s1 == s2){printf("s2是s1旋转之后的字符串\n");return 1;break;}}printf("s2不是s1旋转之后的字符串\n");return 0;
}
int main()
{char s1[10];char s2[10];scanf("%s %s", &s1, &s2);//int sz = sizeof(s1) / sizeof(s1[0]); int sz = strlen(s1); //求字符串的长度用strlen 用 sizeof 可能会栈溢出//printf("%s\n", s1);//printf("%s", s2);int a=panduanxuan(s1, s2, sz);printf("%d", a);return 0;
}
4.杨辉三角
代码如下
#include <stdio.h>//4.杨辉三角int main()
{int rows;scanf("%d", &rows);for (int i = 0; i < rows; i++){int number = 1;for (int j = 0; j <= i; j++) {printf("%d ", number);number = number * (i - j) / (j + 1);}printf("\n");}return 0;
}