C
ʚVVcatɞ
时光难留,只有一去不返。
展开
-
C语言 一维数组 练习
交错数列问题(二)题目描述求交错数列的前n项,并输出结果。 交错数列如: 1 -3 5 -7 9 -11 13 -15 17 要求:用数组存储数列内容 第一个数据一定为正数输入第一行输入a,n,m, 其中a表示数列中第1个数据的值,n表示数列数据个数,m是数列绝对值的等差值(a > 0 ,30 > n >=2,p >= 1)输出输出n项数列的数据内容样例输入2 6 3样例输出2 -5 8 -11 14 -17#include<stdio.h>i原创 2021-11-20 16:24:19 · 973 阅读 · 0 评论 -
C语言 找数码是否存在
题目描述定义一个函数check(n,d),它送回一个结果。如果数字d在整数n的某位中出现,则送回“1”,否则送回“0”。例如check(3256,2)的返回值=1,check(1725,3)的返回值=0。编写完整程序效果如下输入41632,6输出The digit 6 is in data 41632样例输入25348,7样例输出The digit 7 is not in data 25348#include "stdio.h"int check(int n,int d);原创 2021-11-12 23:58:33 · 1994 阅读 · 2 评论 -
C语言 数字翻转输出
翻转数题目描述M国的数字体系比较特别,高位数字位于右侧,低位数字位于左侧,刚好与我们的日常数字体系相反,给在M国旅游的中国游客带来很大麻烦。例如,M国中标价“128”元的商品,其实际标价,按照中国的数字体系,实际上是821元。请你写一个程序,帮助游客完成数字翻转。输入-99到99之间的一个整数(含-99和99),表示M国数字体系中的一个整数。提示:例如 -21 翻转数为 -12 20 翻转数为 02 9 翻转数为 9输出将输入的MM国数字体系中的整数,按其所表示的实际原创 2021-10-16 20:41:06 · 2880 阅读 · 0 评论 -
C语言 递归实现分解质因数
#include <stdio.h>void prim(int n, int i){ if(n >= i){ while(n % i){ i++; } n /= i; prim(n, i); printf("%d\n", i); }}int main(){ int num, i = 2; scanf("%d", &num); prim(num, i); return 0;} 运行结果:wh原创 2020-12-18 14:45:21 · 2908 阅读 · 0 评论 -
C语言 递归求阶乘和
#include <stdio.h>double fact(int n) { if (n > 0) { return n * fact(n - 1); } else { return 1; }}double factsum(int n) { int i; int sum = 0; if (n > 0) { for (i = 1; i <= n; i++) { sum += fact(i); } } return sum;原创 2020-07-14 12:55:05 · 903 阅读 · 0 评论 -
C语言 学生管理系统
#include <stdio.h> #include <string.h>#define NAME_LEN 64 /* 姓名字符数 */ typedef struct students { long studne_id; /* 学号 */ char name[NAME_LEN]; /* 姓名 */ char sex[3]; /* 性别 */ int age; /* 年龄 */ double height;原创 2020-07-13 22:51:53 · 477 阅读 · 0 评论 -
C语言 使用递归函数计算1到n之和
#include <stdio.h>int sum(int n);int main(){ int n; scanf("%d", &n); printf ("%d\n", sum(n)); return 0;}int sum(int n){ if(n > 1){ return n + sum(n - 1); } else if(n <= 0){ return 0; }else { return 1;原创 2020-07-13 17:32:27 · 9629 阅读 · 2 评论 -
C语言 二进制文件读取和写入
fwrite函数头文件原型说明返回值#include <stdio.h>size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);从ptr指向的数组中将最多nmemb个长度为size的元素写入stream指向的流中。若定义了流的文件位置指示符,则以成功写入的字符数为单位向前移动。当发生错误时,该流的文件位置指示符的值不可预测。返回成功写入的元素个数。仅当发生写入错误时,元素个数会原创 2020-07-12 16:38:53 · 2145 阅读 · 0 评论 -
C语言 显示指定月的日历
#include <stdio.h>int mday[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int dayofweek(int year, int month, int day){ if (month == 1 || month == 2){ year--; month += 12; } return (year + year / 4 - year / 100 + year / 400 + (13原创 2020-07-12 11:13:52 · 491 阅读 · 0 评论 -
C语言 将文件内容转换成Dump文件数据格式
isprint函数:头文件原型说明返回值#include <ctype.h>int isprint(int c);判断字符c是否为可打印字符(含空格)。若判断成功则返回0以外的值(真),否则返回0。#include <stdio.h>#include <ctype.h>int main(void){ int n; unsigned long count = 0; unsigned char buf[16]; FILE *原创 2020-07-11 23:11:49 · 464 阅读 · 0 评论 -
C语言 将程序运行的时间记录在记事本中,下次运行进行读取
fprintf函数:头文件原型说明返回值#include <stdio.h>int fprintf(FILE *stream, const char *format, …);向stream指向的流(而不是标准输出流)写入数据。除此之外,与printf函数完全相同。返回发送的字符数。当发生输出错误时,返回负值。fscanf函数:头文件原型说明返回值#include <stdio.h>int fscanf(FILE *st原创 2020-07-11 21:59:12 · 1274 阅读 · 0 评论 -
C语言 复制文件内容粘贴到另一个文件中
#include <stdio.h>int main(void){ int ch; FILE *sfp; FILE *dfp; char sname[FILENAME_MAX]; char dname[FILENAME_MAX]; printf("要复制的原文件:"); scanf("%s", sname); printf("要粘贴的文件:"); scanf("%s", dname); if((sfp = fopen(sname, "r")) == NULL)原创 2020-07-11 20:07:52 · 6603 阅读 · 0 评论 -
C语言 读取文件内容
要读取的目标文件:要读取的目标内容:运行前请将代码文件和要读取的文件放在同一目录下。#include <stdio.h>int main(void){ int ch; FILE *fp; char fname[FILENAME_MAX]; printf("文件名:"); scanf("%s", fname); if((fp = fopen(fname, "r")) == NULL){ printf("文件打开失败。\n"); } else { whil原创 2020-07-11 19:44:35 · 5230 阅读 · 0 评论 -
C 语言获取系统时间
time函数:获取当前日期。头文件原型说明返回值#include <time.h>time_t time(time_t *timer)求出日期时间。返回当前的日期时间。若日期时间无效,则返回-1。若timer不为NULL,则在timer指向的对象中也保存日期时间。localtime 函数可以将 time_t类型的时间转换为 年 、月、日、时、分、秒等我们日常生活中使用的时间形式。头文件原型说明返回值#include <time原创 2020-07-11 12:23:59 · 391 阅读 · 0 评论 -
C语言 结构体的使用
#include <stdio.h>#include <string.h>#define NUMBER 5#define NAME_LEN 64void swap_int (int *x, int *y){ int temp = *x; *x = *y; *y = temp;} void swap_str(char *sx, char *sy){ char temp[NAME_LEN]; strcpy(temp, sx); strcpy(sx, sy原创 2020-07-11 11:44:19 · 384 阅读 · 0 评论 -
C语言 比较字符串的大小关系
头文件原型说明返回值#include<stdio.h>int strcmp(const char *s1, const char *s2)比较s1指向的字符串和s2指向的字符串的大小关系(从第一个字符开始逐一比较,当出现不同的字符时,便可确定这些字符的大小关系)。若s1 和 s2相等,则返回0;若s1 大于 s2,则返回正整数值;若s1 小于 s2,则返回负整数值。#include <stdio.h>#include <string.h&g...原创 2020-07-10 19:56:07 · 1729 阅读 · 0 评论 -
C语言 连接字符串
头文件原型说明返回值#include<stdio.h>char *strcat(char *s1, const char *s2)将s2指向的字符串连接到s1指向的数组末尾。若s1和s2指向的内存空间重叠,则作未定义处理。返回s1的值。#include <stdio.h>#include <string.h>int main(void){ char str[] = "vv"; char *p = "cat"; print...原创 2020-07-10 19:23:30 · 1421 阅读 · 0 评论 -
C语言 字符串转换成int、long和double型
#include <stdio.h>#include <stdlib.h>#define LENGTH 128int main(void){ char str[LENGTH]; puts("请输入字符串:"); scanf("%s", str); printf("转换为int型后为 %d。\n", atoi(str)); printf("转换为long型后为 %ld。\n", atol(str)); printf("转换为double型后为 %lf原创 2020-07-08 23:24:14 · 925 阅读 · 0 评论 -
C语言 复制字符串
#include <stdio.h>#define LENGTH 128char* str_copy(char *p, const char *s){ char *t = p; while (*p++ = *s++){ } return t;}int main(void){ char str[LENGTH] = ""; char tmp[LENGTH]; printf("str = \"%s\"\n", str); puts("请输入要复制的字符原创 2020-07-08 21:47:57 · 1787 阅读 · 0 评论 -
C语言 字符串和指针
用指针实现的字符串:#include <stdio.h>int main(void){ char *p = "vv"; printf("p = \"%s\"\n", p); p = "cat"; printf("p = \"%s\"\n", p); return 0;}运行结果:char *p = "vv";printf("p = \"%s\"\n", p);用指针实现的数组 p:p 是指向char型变量的指针变量,它的初始值为字符串字面量 “vv”。对字符原创 2020-07-08 19:46:46 · 427 阅读 · 1 评论 -
C语言 排序
#include <stdio.h>#define NUMBER 5 // 自定义学生人数void swap(int *px, int *py){ int temp = *px; *px = *py; *py = temp;}void bsort(int a[], int n){ int i, j; for (i = 0; i < n -1; i++){ for (j = n -1; j > i; j--){ if (a[j - 1] >原创 2020-07-08 12:57:12 · 153 阅读 · 0 评论 -
C语言 显示数组元素的值和地址
#include <stdio.h>int main(void){ int i; int a[5] = {1, 2, 3, 4, 5}; int *p = a; for(i = 0; i < 5; i++){ printf("a[%d] = %d *(a + %d) = %d | p[%d] = %d *(p + %d) = %d\n", i, a[i], i, *(a + i), i, p[i], i, *(p + i)); } for(i = 0; i原创 2020-07-08 11:53:00 · 2629 阅读 · 0 评论 -
C语言 下标运算符和指针运算符
#include <stdio.h>int main(void){ int i , a[4]; 0[a] = a[1] = *(a + 2) = *(a + 3) = 7; for(i = 0; i < 4; i++){ printf("a[%d] = %d\n", i, a[i]); } return 0;}运行结果:下标运算符[ ],是具有两个操作数的双目运算符。指向Type型对象的指针整数类数据类型下标运算符[ ]的操作数的顺序是随意的原创 2020-07-08 10:41:08 · 1655 阅读 · 0 评论 -
C语言 使用指针对两个变量的数值进行互换
#include <stdio.h>void swap(int *px, int *py){ int temp = *px; *px = *py; *py = temp;} int main(void){ int num1, num2; puts("请输入两个整数:"); printf("整数A:"); scanf("%d", &num1); printf("整数B:"); scanf("%d", &num2); swap(&nu原创 2020-07-07 22:49:47 · 4987 阅读 · 0 评论 -
C语言 使用指针计算两个整数的和与差
#include <stdio.h>void sum_diff(int num1, int num2, int *sum, int *diff){ *sum = num1 + num2; *diff = (num1 > num2) ? num1 - num2 : num2 - num1;}int main(void){ int num1 ,num2; int sum, diff; puts("请输入两个整数。"); printf("整数A:"); scanf("原创 2020-07-07 22:17:00 · 11458 阅读 · 0 评论 -
C语言 指针
#include <stdio.h>int main(void){ int box_1 = 3; int box_2 = 5; int box_3 = 10; int *person_1, *person_2; puts("--------盒子中糖果的数量---------"); printf("第一个盒子有%d个糖果。\n", box_1); printf("第二个盒子有%d个糖果。\n", box_2); printf("第三个盒子有%d个糖果。\n", box原创 2020-07-07 15:31:16 · 161 阅读 · 0 评论 -
C语言 显示对象地址
#include <stdio.h>int main(void){ int x; double y; int arr[3]; printf("x 的地址: %p\n", &x); printf("y 的地址: %p\n", &y); printf("arr[0] 的地址: %p\n", &arr[0]); printf("arr[1] 的地址: %p\n", &arr[1]); printf("arr[2] 的原创 2020-07-07 14:09:32 · 413 阅读 · 0 评论 -
C语言 遍历字符串数组
遍历字符串数组#include <stdio.h>int main(void){ int i; char cs[][6] = {"VV", "cat", "2020"}; for (i = 0; i < 3; i++){ printf("cs[%d] = \"%s\"\n", i, cs[i]); } return 0;} 注:数组声明中初始值不足时,用 0 来初始化该元素。因此各个字符串后面的空白部分都初始化为 null 字符。使用函数遍历字符串数原创 2020-07-07 12:58:01 · 4689 阅读 · 2 评论 -
C语言 将字符串中数字字符全部删除
不存储改变数组删除数字字符:#include <stdio.h>#define LENGTH 128void del_digit(const char str[]) { int i = 0; while (str[i]) { if (str[i] < '0' || str[i] > '9') { putchar(str[i++]); }else { i++; } }}int main(){ char str[LENGTH];原创 2020-07-06 21:43:10 · 10672 阅读 · 0 评论 -
C语言 大小写字符转换
#include <stdio.h>#include <ctype.h>void str_toupper(char s[]){ int i = 0; while (s[i]){ s[i] = toupper(s[i]); i++; }}void str_tolower(char s[]){ int i = 0; while (s[i]){ s[i] = tolower(s[i]); i++; }}int main(void){ char原创 2020-07-05 23:06:30 · 606 阅读 · 0 评论 -
C语言 字符串逆向输出
#include <stdio.h>#define LENGTH 128int str_length(const char s[]){ int len = 0; while (s[len]){ len++; } return len;}void put_string(const char s[],int len){ int i; for (i = len - 1; i >= 0; i--){ putchar(s[i]); }}int main原创 2020-07-05 22:45:48 · 1140 阅读 · 0 评论 -
C语言 读取字符串数组中的字符串并获取字符串的长度
#include <stdio.h>#define LENGTH 128#define NUMBER 5int main(void){ int i; char s[NUMBER][LENGTH]; for(i = 0; i < NUMBER; i++){ printf("s[%d] : ", i); scanf("%s", s[i]); } puts("-----------打印字符串-----------"); for(i = 0; i <原创 2020-07-04 19:13:46 · 7744 阅读 · 0 评论 -
C语言 字符串的读取
对数组的初始化以下3种形式都可以实现字符数组的初始化赋值。 1. char str[] = {'V', 'V', 'c', 'a', 't'}; 2. char str[] = "VVcat"; 3. char str[] = {"VVcat"};因为初始值的个数决定了数组元素的个数,所以元素个数可以省略。除了初始化赋值的时候,不能将数组的初始值或字符串直接赋予数组变量。以下3种是错误的赋值方式:char str[6];1. str = {'V', 'V', 'c', 'a', 't'原创 2020-07-03 23:08:23 · 9193 阅读 · 0 评论 -
C语言 计算一串字符中出现的数字字符数
getchar 函数的功能是读取字符串并将其返回。输入结束或读取过程中发生错误时,就会返回EOF值。#include <stdio.h>int main(void){ int i, str; int count[10] = {0}; puts("请输入数字:"); puts("输入完成后 按 Enter"); puts("再按 Ctrl + z "); puts("Enter 结束"); while ((str = getchar()) != EOF){ switc原创 2020-06-28 15:11:31 · 1399 阅读 · 0 评论 -
C语言 递归实现辗转相除法 和 辗转相减法
假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里德算法,是这样进行的:1997 / 615 = 3 (余 152)615 / 152 = 4(余7)152 / 7 = 21(余5)7 / 5 = 1 (余2)5 / 2 = 2 (余1)2 / 1 = 2 (余0)至此,最大公约数为1以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数 1。程序实现:#include <stdio.h>原创 2020-06-28 08:56:21 · 2102 阅读 · 0 评论 -
C语言 枚举类型
#include <stdio.h>enum month { End, January, February, March, April, May, June, July, August, September, October, November, December };void january(void){ puts("一月");}void february(void){ puts("二月");}void march(void){ puts("三月");}void原创 2020-06-27 21:54:23 · 268 阅读 · 0 评论 -
C语言 函数式宏的使用
未使用函数式宏:#include <stdio.h>int diff_int(int x, int y){ return x- y;}long diff_long(long x, long y){ return x- y;}int main(void){ int num1; int num2; puts("请输入减数:"); scanf("%d", &num1); puts("请输入被减数:"); scanf("%d", &num2);原创 2020-06-21 19:37:37 · 968 阅读 · 0 评论 -
C语言 求出平面直角坐标系中两点的距离
#include <math.h>#include <stdio.h>double dist(double x1, double y1, double x2, double y2){ return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));}int main(void){ double x1, y1; double x2, y2; puts("求两点间的距离。 \n"); puts("点A: ".原创 2020-06-21 16:25:43 · 3777 阅读 · 1 评论 -
C语言 浮点数从0递增至1.0的过程
#include <stdio.h>int main(void){ float x; for (x = 0; x <= 1.0; x += 0.01){ printf("x = %f\n", x); } return 0;} 最后x的值不是1.0,而是0.999999。这是因为计算机不能保证其内部转换为二进制的浮点数的每一位都不发生数据丢失。所以在浮点数计算时,会存在误差并进行积累。运行结果:#include <stdio.h>int m原创 2020-06-20 18:31:20 · 1131 阅读 · 1 评论 -
C语言 以十进制、二进制、八进制和十六进制的形式显示
#include <stdio.h>int count_bits(unsigned x){ int count = 0; while(x) { if (x & 1U) { count++; } x >>= 1; } return count;}int int_bits(void){ return count_bits(~0U);}void print_nbits(unsigned x, unsigned n){ int i = i原创 2020-06-14 22:06:16 · 611 阅读 · 0 评论