输入15个字符,分别统计出其中英文字母、空格、数字和其他字符的个数_C语言 #include <stdio.h>#define I 15int main(){ char i[I] = {'0'}; int sum = 0,sum1 = 0,sum2 = 0,sum3 = 0; gets(i); for(int k = 0;k < I;k++) { if(i[k] >= 'A' && i[k] <= 'Z' || i[k] >= 'a' && i[k] ...
杨辉三角形_打印图形_C语言 #include <stdio.h>#define N 10int main(){ int arr[N][N] = {0}; int row = 0,col = 0; for(row = 0;row < N;row++)//每行的第一个和最后一个都是1,列的话每列都有无法找到合适的规律。 { arr[row][0] = 1; arr[row][row] = 1; } for(row = 2;row &l...
打印菱形_打印图形_C语言 //第一种#include <stdio.h>#define N 3int main(){ int row = 0,col = 0; //上半部分 for(row = 1;row <= N;row++) { for(col = 1;col <= N - row;col++)//空格和行数的关系 { printf(" "); } for(col = 1;c...
函数指针数组的应用——转移表_C语言 #define _CRT_SECURE_NO_WARNINGS 1//函数指针数组的用途——转移表//例如:计算器#include <stdio.h>int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x, int y){ return x / ...
函数指针_C语言 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>//函数指针 - 是指向函数的指针int Add(int x, int y)//有返回类型{ int z = 0; z = x + y; return z;}void Print(char *str)//无返回类型{ printf("%s", str);}int main(){ int a = 10; int b = 20;...
数组指针的应用_C语言 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>void print(int(*p)[5], int x, int y){ int i = 0; for (i = 0; i < x; i++) { int j = 0; for (j = 0; j < y; j++) { printf("%d", *(*(p + i) + j));...
二级指针_C语言 #include <stdio.h>int main(){ int a = 10; int *pa = &a;//int *--->*表示的是这是一个指针,int 表示指向一个int类型 //pa指向a,pa存的是a的地址,a里面是一个int类型的数10。 int **ppa = &pa;//int **-->*表示这是一个指针,int*表示的是指向int*类型 //*ppa指向pa,*ppa存的是pa的地址,pa里面是in...
数组地址与数组元素地址_C语言 //&arr - 数组地址 (arr是数组首元素地址)//sizeof(arr) - 取的是整个数组的地址-应用:sizeof(arr)/sizeof(arr[0])算出数组的元素个数#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int arr[10] = { 0 }; printf("%p", arr);//00EFF8E0 printf("%p", arr + 1...
标准规定_数组指针_C语言 //标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较#include <stdio.h>int main(){ float values[5]; float *vp; for (vp = &values[5]; vp > &values[0];)//建议第一种 { *vp-- = 0; } for (vp...
指针类型存在的意义_C语言 //指针类型的意义:(为什么要区分指针类型)#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ //第一点:指针的类型决定了,指针进行解引用操作的时候,能够访问空间的大小 //int *p;//*p访问4个字节 //char *p;//*p访问1个字节 int a = 0x11223344; int *pa = &a; char *pb = &a;...
野指针的成因_C语言 //野指针的形成#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ //野指针的成因一:指针未初始化 //定义变量,最好给它初始化 int a;//局部变量不初始化,默认值为随机值 int *p;//局部的指针变量不初始化,默认值为随机值 *p = 20; return 0;} //野指针的成因二:指针越界访问 int arr[10] = { 0 ...
判断字符串是否回文_C语言 //所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"level" 、 “aba”。#include<stdio.h>#include<string.h>int main(){ char str[50]; int flag = 0; scanf("%s",str); int len = strlen(str);//确定字符的长度,这里不能用sizeof它是测量所占空间的大小还有个 \0 for(int i = ...
选择排序_C语言 //选择排序//第一个数,依次和后面的数字进行比较//每次比较的最值放到第一个位置#include <stdio.h>int choice(int*arr,int sz){ for(int i = 0;i < sz - 1;i++)//i为每次比较的第一个数字的下标,5个数字比较的话,一共比较4次,每次的第一个数字下标是i { for(int j = i + 1;j < sz;j++)//j为i后面的数的下标,j<sz->s...
冒泡排序_C语言 //冒泡排序//依次比较两个数//每次只能找到最大的数,放在最后面#include <stdio.h>int bubble(int *arr,int sz){ for(int i = 0;i < sz - 1;i++)//i表示次数,每一次比较都能获得最大/最小的数,5个数的话就进行 4次比较,10个数的话就进行 9次比较。 { for(int j = 0;j < sz - 1 - i;j++)//j表示每一次要进行比较的数的个数,每一...
逆序数字(真正的改变数字) #include <stdio.h>int main(){ int x; int num=0; printf("请输入一个整数:"); scanf("%d",&x); while(x!=0) //while(x) { num = num*10 + x%10;//把一个数直接变成了,另一个数,并且数字倒过来了 x /= 10;//去掉最后一位数 } printf("%d",num);...
逆序整数(只是打印出来) #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int num; scanf("%d", &num); while (num)//非零值即为真值,即num不为0是一直循环也可以写为num != 0 { printf("%d", num % 10);//只是单纯的输出 num /= 10; } return 0;}...
逆序数组(只是打印出来就行) #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int arr[5] = { 0, 1, 2, 3, 4 }; for (int i = 4; i >= 0; i--) printf("%d\t", arr[i]); return 0;}
逆序数组(真正的改变数组内容) #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>//定义change函数void change(int a[], int n) //a[]表示a数组的首地址,也可写成*a{ int i, j, temp; for (i = 0, j = n - 1; i<n / 2; i++, j--)//交换只需要交换一半的次,中间的不动;例如:4和5位元素都只需交换2次 { temp = a[i];...