C语言笔记专栏
该专栏是本人在学习C语言的过程中遇到的一些问题做的个人笔记
冯富江的技术博客
这个作者很懒,什么都没留下…
展开
-
C语言指针——基础知识理解
前言:强转与指针,并称C语言的两大神器,用好了可呼风唤雨,威力无比,用不好也会伤及自身理解指针要从变量的地址谈(1)内存是如何编址的? 内存中的每个字节都有唯一的编号(地址) 地址按字节编号,其字长一般与主机相同32位机使用32位地址,最多支持232字节内存(4G)...原创 2022-03-17 00:25:52 · 4631 阅读 · 0 评论 -
C语言,期末复习之编写程序返回三个整数中的中间数
题目如下:代码如下:#include <stdio.h>int mid(int a, int b, int c);int main(){ int a, b, c,Mid; printf("Please input a,b,c:"); scanf_s("%d,%d,%d", &a, &b, &c); Mid=mid(a, b, c); printf("Mid=%d", Mid); return 0;}int mid(int a, int .原创 2021-12-28 21:30:49 · 2845 阅读 · 0 评论 -
c语言,期末复习之求多项式分式数列 1+1/2+2/3+3/5 ...........前n项和
代码如下:#include <stdio.h>int main(){ int n,i,j,a=1,b=2; float sum = 1.0; printf("请输入项数n:"); scanf_s("%d", &n); for (i=1; i<= n-1; i++) { sum = sum +1.0* a/b; j = a; a = b; b = b + j; } printf("sum=%f", sum); return 0;}运行结原创 2021-12-28 20:51:09 · 4372 阅读 · 0 评论 -
C语言,期末复习之穷举法鸡兔同笼问题
题目:鸡兔同笼,共有98个头,386只脚,求鸡和兔分别有多少只?代码如下:#include <stdio.h>int main(void){ int j, t; for (j = 0; j <= 98; j++) { for (t = 0; t <= 98; t++) { if (j + t == 98 && j * 2 + t * 4 == 386) { printf("chickens=%d,rabbit=%d", j, t);原创 2021-12-28 19:43:24 · 4826 阅读 · 0 评论 -
C语言,编写函数exchangeMaxMin(int arr[],int n),将该数组中最大最小值交换位置;
代码如下:#include <stdio.h>#define N 5void exchangeMaxMin(int arr[]);void ReadData(int arr[]);void Printf(int arr[]);int main(void){ int arr[N]; ReadData(arr); exchangeMaxMin(arr); Printf(arr); return 0;}void ReadData(int arr[]) { printf原创 2021-12-25 11:22:00 · 880 阅读 · 2 评论 -
C语言,利用数组编写程序输入30个数,分别统计正整数,0,负数个数,并求和
代码如下:#include <stdio.h>#define N 30int main(){ int n[N],sum1=0,sum2=0; int a1 = 0, a2 = 0, a3 = 0; printf("Please input 30 numbers:\n"); for (int i = 0; i < 30; i++) { scanf_s("%d", &n[i]); } for (int i = 0; i < 30; i++) { i原创 2021-12-25 11:13:47 · 3508 阅读 · 0 评论 -
C语言,利用函数调用统计输出素数并统计素数和
声明:本编译器为vs,所以输入函数需要写为scanf_s题目:统计给定整数 M 和 N 区间内素数的个数并对它们求和。#include <stdio.h> void Judge(int min, int max);//函数原型;int main(){ int n = 0, sum = 0; int min, max; printf("Please input min and max: "); scanf_s("%d %d", &min, &max); .原创 2021-12-25 11:07:21 · 1836 阅读 · 0 评论 -
C语言,功能一、利用一维数组和选择法对成绩高低排序,功能二、输出对应的学号,功能三、查找对应学生成绩
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:#include <stdio.h>#define N 40int ReadScore(int score[], long num[]);//函数原型;void DataSort(int score[], int n, long num[]);//函数原型;void PrintfScore(int score[], int n, long num[]);//函数原型;int LinSearch(long nu原创 2021-12-15 23:23:44 · 291 阅读 · 0 评论 -
C语言,利用一维数组中选择法对成绩高低排序和输出对应的学号及利用顺序查找查找学生成绩
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:#include <stdio.h>#define N 40int ReadScore(int score[], long num[]);//函数原型;void DataSort(int score[], int n, long num[]);//函数原型;void PrintfScore(int score[], int n, long num[]);//函数原型;int LinSearch(long nu原创 2021-12-15 22:05:53 · 1290 阅读 · 0 评论 -
C语言,利用一维数组和选择法对成绩高低排序,及输出对应的学号
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:#include <stdio.h>#define N 40int ReadScore(int score[],long num[]);//函数原型;void DataSort(int score[], int n, long num[]);//函数原型;void PrintfScore(int score[], int n, long num[]);//函数原型;int main() { int scor原创 2021-12-15 21:39:14 · 1485 阅读 · 0 评论 -
C语言,利用一维数组选择法排序,使学生成绩高低排序(要求输入为负值时输入结束)
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:#include <stdio.h>#define N 40int ReadScore(int score[]);//函数原型;void DataSort(int score[], int n);//函数原型;void PrintfScore(int score[], int n);//函数原型;int main() { int score[N], n; n = ReadScore(score); pr原创 2021-12-14 11:42:57 · 971 阅读 · 0 评论 -
C语言,利用一维数组交换法排序,使学生成绩高低排序(要求输入为负值时输入结束)
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:原创 2021-12-14 11:11:07 · 1481 阅读 · 0 评论 -
C语言,向函数传递一维数组,计算最高分,平均分,人数(要求输入负值时输入结束,且不能超过40人)
声明:该编译器为vs,所以输入函数写为scanf_s形式!代码如下:#include <stdio.h>#define N 40int ReadScore(int score[]);int FindMax(int score[], int n);int Average(int score[], int n);int main(){ int score[N], max, n; n = ReadScore(score); printf("Total students a.原创 2021-12-14 10:06:56 · 1289 阅读 · 0 评论 -
最全免费C语言之苏小红版《高级语言程序设计》第七章188页小学计算机辅助教学系统程序设计
说明:以下代码编译器为vs,所以输入函数写为scanf_s,若为其他编译器,则使用scanf!题目:小學理计算机調的教学系統。计算机在教育中的应用常被你为计算故排助教等LComotsrnllCXn。请频写一个程序来帮的小学生学习乘法。使用模块化程序设计方法,技下列任务要礼。序渐进的方式编程。任务1:程序首先随机产生两个1~10之间的正整数,在屏幕上打印出问题。例如:6*7=9然后让学生输入答案。程序检查学生输入的答案是否正确。若正确,则打印“Righu”,然后问下一个问题3打印“Wrong...原创 2021-12-10 20:39:56 · 1189 阅读 · 0 评论 -
C语言,利用递归调用函数求年龄问题 问题描述:有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3那个人大2岁。问第3个人多少岁,他说比第2个人大2岁。求5人年龄
代码如下:#include <stdio.h>int YearOld(int n);int main(){ int n,i; for (i = 1; i <= 5; i++) { n = YearOld(i); printf("n%d=%d\n",i,n); } return 0;}int YearOld(int n) { if (n == 1) { return 10; } else { return (YearOld(n-1) + 2)原创 2021-12-10 16:42:38 · 2194 阅读 · 0 评论 -
C语言,椰果数量问题,计算最少的椰果数
题目:5个水手在岛上发现一堆椰子,迭代法计算原来这堆椰子总数至少是多少?说明:1、编译器为vs,所以输入函数写为了scanf_s! 2、解析已包含程序之中;代码如下:#include <stdio.h>int yeeguo(int n);//函数原型;int main(){ int n; printf("请随便输入一个数:"); scanf_s("%d", &n);//输入你所想的总椰果数(随便输一个小一点的数, //因为他不是真正的椰...原创 2021-12-09 17:55:14 · 1035 阅读 · 0 评论 -
C语言,全局变量与局部变量问题
首先,代码如下:#include <stdio.h>int m = 5;int main(){ int a = 2; a = fun(a); printf("a=%d", a + m);}fun(int x) { int m = 3; m = m + x; return m;}解析:该程序中,命名了一个与与主函数平行的数 int m=5 现在这个是一个全局变量,在整个main函数中起作用而在fun函数中命名的 int m=3 为局部变量,所以只在f...原创 2021-12-06 19:42:16 · 420 阅读 · 0 评论 -
C语言,静态局部变量作用域问题(static)
首先,代码如下:#include <stdio.h>fun(int x) { static int a = 3; a = a + x; return a;}int main(){ int k = 2, m = 1, n; n = fun(k); n = fun(m); printf("a=%d", n);}解析:在该代码中fun函数定义的a为静态局部变量,所以在第一次调用fun函数时的a的值会被保留下来,即第二次调用fun函数时的a的值是第一次调用以后的得到的原创 2021-12-06 19:27:32 · 906 阅读 · 0 评论 -
C语言,向函数传递一维数组,调用函数并计算平均成绩
代码如下:说明:编译器为vs,所以使用的是scanf_s#include <stdio.h>#define N 40int Average(int score[], int n);//Average原型void ReadScore(int score[], int n);//ReadScore原型int main(void){ int score[N], aver, n; printf("Input n:"); scanf_s("%d", &n); ReadS原创 2021-12-05 18:14:32 · 2110 阅读 · 0 评论 -
C语言,利用二维数组及条件语句计算闰年和平年每月所对应的天数
说明:1、公历的全年天数不同公历平年全年有365天,而公历闰年全年有366天。2、被整除的特性不同非整百年的年份中,能被4整除的为闰年,不能被4整除的为平年。如2004年就是闰年,2001年平年。整百年的年份中,能被400整除的是闰年,不能被400整除的是平年。如2000年是闰年,1900年是平年。3、2月份的天数不同闰年的2月有29天,平年的2月就只有28天代码如下:#include <stdio.h>#define MONTHS 12int mai.原创 2021-12-05 17:24:30 · 1384 阅读 · 0 评论 -
C语言,利用一维数组输出每月对应的天数。
代码如下:#include <stdio.h>#define MONTHS 12int main(){ int days[MONTHS] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int month; do { printf("Input a month:"); scanf_s("%d", &month); } while (month < 1 || month>12); pri原创 2021-12-05 16:58:16 · 2340 阅读 · 0 评论 -
C语言,利用循环语句找出1000以内的水仙花数
代码如下:#include <stdio.h>int main(void){ int n=100; int n1, ng, ns, nb; for (n = 100; n < 1000;) { n1 = n % 100, ng = n1 % 10, ns = (n1 - ng) / 10, nb = (n - n1) / 100; while (n == ng * ng*ng + ns * ns*ns + nb * nb*nb) { printf("n=原创 2021-12-04 23:05:57 · 1173 阅读 · 0 评论 -
C语言,利用求余运算拆分三位数的个,十,百位数字,并求和
代码如下:fabs为数学函数库中的绝对值函数#include <stdio.h>#include <math.h>int main(){ int a,ag,as,ab,n; printf("please input a:\n"); scanf_s("a=%d", &a); a = fabs(a); ab = a / 100; as = a % 100 / 10; ag = a % 100 % 10; n = ag * 100 + as * 10原创 2021-12-04 23:01:06 · 2230 阅读 · 2 评论 -
C语言,利用条件语句判断是否为三角形并输出面积
说明:1.该代码的编译器为 visual studio 所以该代码中输入函数是scanf_s ,若为其他编译器请则使用 scanf 即可#include <stdio.h>#include <math.h>int main(){ int a, b, c, p; double s; printf("input a,b,c:"); scanf_s("%d,%d,%d", &a, &b, &c); p = (a + b + c) / 2;原创 2021-12-04 22:54:13 · 2415 阅读 · 2 评论 -
C语言,利用const常量解决圆的体积和面积。
说明:1.该代码的编译器为 visual studio 所以该代码中输入函数是scanf_s ,若为其他编译器请则使用 scanf 即可。#include <stdio.h>int main(){ const double PI = 3.14; double r; printf("请输入球的半径:\n"); scanf_s("%lf", &r); double area = 4 / 3 * PI*r*r; double V = PI * r*r*r; prin原创 2021-12-04 22:46:50 · 1439 阅读 · 1 评论 -
C语言,利用条件语句进行身高预测
注:编译环境为vs,在vs中使用scanf需加上代码段#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int main()2.题目:身高预测。每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分成人后身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和相关。ight为其父身高,moHeight为其母身高,身高预测公式为性成人时身高=(faHeight+moHeight)×0.54...原创 2021-12-04 22:35:33 · 7854 阅读 · 2 评论 -
C语言,计算数据类型及所对应的字节数。
介绍:sizeof是C语言的一种单目操作符,如C语言的其他操作符++、–等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。sizeof的使用方法1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。2、用于变量sizeof使用形式:sizeof(var_name)或sizeof var_name变量名可以不..原创 2021-12-04 22:21:11 · 1231 阅读 · 0 评论 -
C语言,利用条件语句判断数的奇偶性。
1.该代码的编译器为 visual studio 所以该代码中输入函数是scanf_s ,若为其他编译器请则使用 scanf 即可。下面是代码:#include <stdio.h>int main(){ int n1; printf("please enter a number:\n"); scanf_s("%d", &n1); if (n1 % 2 == 0) printf("%d is even number\n", n1); if (n1 % 2 !..原创 2021-12-04 21:56:54 · 1006 阅读 · 0 评论 -
C语言之利用,函数的命名及变量的作用域实现两个数之间的交换。
说明:1.该代码的编译器为 visual studio 所以该代码中输入函数是scanf_s ,若为其他编译器请则使用 scanf 即可。#include <stdio.h>void Swap(int a, int b);int main(){ int a, b; printf("Input a,b:"); scanf_s("%d,%d", &a, &b); Swap(a, b); printf("In main():a=%d,b=%d\n", a, b原创 2021-12-04 21:47:37 · 110 阅读 · 0 评论 -
C语言中利用switch语句和 if--else 语句输出,,闰年或平年,及每月对应的天数。
说明:1.该代码的编译器为 visual studio 所以该代码中输入函数是scanf_s ,若为其他编译器请则使用 scanf 即可。2.判断平年和闰年:如果年份是整百年份,用年份除以400,没有余数即为闰年,有余数即为平年。如果年份不是整百年份,用年份除以4,没有余数即为闰年,有余数即为平年#include <stdio.h>int main(){ int year, month; printf("input year,month;"); scanf_s(" %d.原创 2021-12-04 21:34:25 · 3145 阅读 · 1 评论