第七章
Bona Fides
.
展开
-
7.17 递归法 数字转为字符串
//7.17 // 递归法将数字转为字符串// 数字要考虑正负!void tran(int x){ if (x / 10) tran(x / 10); printf("%c", x % 10 + '0');//转成字符!!}#include<stdio.h>int main(){ int x; printf("输入x值:"); scanf("%d", &x); if (x < 0)//考虑为负数时! { printf("-"); x *=.原创 2021-11-30 16:18:05 · 4174 阅读 · 0 评论 -
7.16 将字符串转为数字 16进制数转为10进制数
//7.16 16进制转为10进制//16进制数转化为10进制,从后往前乘以16^0,16^1,以此类推,各数相加//用字符形式存储//将字符型转为数字型//次方用16的叠成int tran(char a[]){ int i = 0; int n=0;//转为数字,要用n存储这个数! while (a[i]) { if (a[i] >= 'A' && a[i] <= 'Z') n = n * 16 + a[i] - 'A' + 10; else.原创 2021-11-30 16:07:09 · 439 阅读 · 0 评论 -
7.13 编程序,比较字符串大小。
整体思考,虽然情况很多,但划分两部分就可以囊括。//7.13 模拟比较函数strcmp//设置两个字符串,传入函数//●while大循环前提下,如果相等继续遍历!●遍历时如果都到结尾,则返回0!●其余情况返回差值即可!int mystrcmp(char a[], char b[]){ int i = 0; while (a[i++] == b[i++]) //注意这里的写法,如果把i++写下边,则遇到abc与ab时返回0 { if (a[i] == '\0' &&原创 2021-11-30 14:09:08 · 4711 阅读 · 0 评论 -
7.15 (不熟练)
//15.写几个函数: //①输人10个职工的姓名和职工号; //②按职工号由小到大顺序排序, 姓名顺序也随之调整; //③要求输人一个职工号, 用折半查找法找出该职工的姓名, 从主函数输人要查找的职工号, 输出该职工姓名。// //职工姓名用字符串存,职工号用整型存//设两个1维数组,一个为姓名的2维数组,因为名字是字符串//一个为职工号数组#include<stdio.h>#define M 2void in(char name[][128],int d[]) //输入.原创 2021-10-19 20:11:49 · 792 阅读 · 0 评论 -
7.15 数字转字符串 7.16 给出年月日,计算第几天
//7.15 数字转字符串#include<stdio.h>void swap(int x){ if (x / 10)//递归每次都是自己调自己 不能用while! swap(x / 10); printf("%c ", x%10 + '0');}int main(){ int x; printf("输入一个数字:\n"); scanf("%d", &x); swap(x);}//7.16 输入年月日,计算是该年第几天// 平年和闰年的天数不同,闰.原创 2021-10-19 19:17:09 · 91 阅读 · 0 评论 -
7.16 16进制-10进制
//7.16 输入16进制,输出10进制// 我可真是个小机灵鬼- -#include<stdio.h>int main(){ int x; printf("输入16进制的数:\n"); scanf("%x", &x); printf("%d", x);} #include<stdio.h>int Trans(char s[]){ int i, j, n; for(i=0,n=0;s[i];i++) { if (s[i] >=.原创 2021-10-19 18:15:42 · 119 阅读 · 0 评论 -
7.14
// 7.14 输入4名学生3门课成绩,分别用函数实现下列功能// 计算每个学生平均分//二维数组//#include<stdio.h>int avers(int a[][3]){ int sum = 0, i, j; for (i = 0; i < 4; i++) for (j = 0; j < 3; j++) sum+=a[i][j]; for (i = 0; i < 4; i++) printf("第%d名同学的平均分为:%d \n",.原创 2021-10-19 17:54:03 · 160 阅读 · 0 评论 -
7.8 7.11
//写一个函数,输入一个四位数,如1990,输出“1 9 9 0”//方法有很多#include<stdio.h>void print(int a){ if (a/10) //条件:a/10的值不为0! print(a/10); //递归,自己调自己 printf("%c ", a % 10+'0'); //转成字符输出}int main(){ int a = 1990; print(a);}//7.11 冒泡法 对10个字符排序// //#includ.原创 2021-10-18 18:29:30 · 104 阅读 · 0 评论 -
7.5 7.6 7.7
//输入的字符串反序存放,在主函数中输入输出//#include<stdio.h>int reverse(int a[],int sz){ int left = 0; int right = sz - 1; for(left=0,right=sz-1;left <= right;left++,right--) { int t; t = a[left]; a[left] = a[right]; a[right] = t; }}int main(){.原创 2021-10-17 23:08:00 · 126 阅读 · 0 评论 -
7.4 矩阵转置
//3*3矩阵转置,行列互换//设两个矩阵,一个为空,利用循环#include<stdio.h>void convert(int a[][3]){ int i, j, flag; int a1[3][3] = { 0 }; for (i = 0; i < 3; i++) for(j= 0; j < 3; j++) a1[j][i] = a[i][j]; for (i = 0; i < 3; i++) for (j = 0, flag = 1; j.原创 2021-10-17 18:41:08 · 84 阅读 · 0 评论 -
7.3 素数判断
//7.3 判断素数// 只能被1和本身除的数,1除外#include<stdio.h>isprime(int x){ for (int i =2; i<x; i++) { if (x % i == 0) return 0; return 1; }}int main(){ int x; scanf("%d", &x); int m=isprime(x); if (m) printf("素数!"); else printf("不是素.原创 2021-10-17 18:24:23 · 91 阅读 · 0 评论 -
7.1 函数与最大公约数,最小公倍数
//7.1 最大公约数与最小公倍数//函数1 先用辗转相除求出最大公约数//函数2 用两数积除以最大公约数为最小公倍数//函数嵌套调用//#include<stdio.h>int max(int x, int y){ if (x < y) { int t = x; x = y; y = t; } int r= x%y; while (r) { r = x%y; x = y;y = r;//先得余数,除数给被除数,余数给除数 } return x;//.原创 2021-10-17 18:23:37 · 139 阅读 · 0 评论 -
例 7.12 7.13 7.14 7.15
//选择法对10个数字排序//#include<stdio.h>int i, j, t;void sort(int a[]){ for(i=0;i<5;i++) for (j = i+1; j < 5; j++) { if (a[j]<a[i]) { t = a[i];a[i] = a[j];a[j] = t; } } for (i = 0; i < 5; i++) printf("%d ", a[i]); re.原创 2021-10-17 18:06:43 · 88 阅读 · 0 评论 -
例子 7.11 两个班平均成绩
//例子7.11 两个班级,分别4和3名学生,调用aver函数,分别求两个班学生平均成绩;//注意变量类型,统一变量类型好点//希望俺孺子可教#include<stdio.h>float aver(float s[],int n){ float sum = 0; for (int i = 0; i < n; i++) sum += s[i]; return sum / n;}int main(){ float s1[4] = { 95,75,60,55 };.原创 2021-10-16 19:35:31 · 542 阅读 · 1 评论 -
例7.7 递归
//递归:递去,归来;//一直往前走,打开门,打开门,走到最后退的时候,再倒着关回来。//找到限制条件,出口//一般将问题划为两部分;//7.7 求n!// 1*2*3*4*5*(n-1)*n// 1到n-1 n// 0的阶乘为1 出口//先输入n的值,调用函数#include<stdio.h>int mult(int n){ if (n == 0 || n == 1) return 1; else return mult(n - 1)*n.原创 2021-10-16 18:26:38 · 131 阅读 · 0 评论 -
例7.5 函数调用
//take it easy,conversely,more quick.//函数嵌套调用:在一个函数中调用另一个函数。即嵌套!// 注意,函数可以嵌套调用,但不可以嵌套定义,函数与函数间是平行的关系。//比较四个数大小,//先整体定义一个函数,传入四个数,// 在这个函数中,调用2函数,分别比较数与数的大小#include<stdio.h>int max2(int m, int n){ //if (m > n) // return m; //else // re.原创 2021-10-16 17:51:27 · 859 阅读 · 0 评论