C
woniuxyy
这个作者很懒,什么都没留下…
展开
-
顺序表练习题1
顺序表练习题1原创 2022-01-20 20:34:44 · 721 阅读 · 0 评论 -
顺序表的查找--按位查找和按值查找
顺序表的查找--按位查找和按值查找原创 2022-01-19 22:04:17 · 1769 阅读 · 1 评论 -
顺序表的基本操作之插入和删除
顺序表的基本操作之插入和删除原创 2022-01-19 09:10:29 · 1153 阅读 · 0 评论 -
顺序表的静态分配和动态分配
顺序表的静态分配和动态分配原创 2022-01-18 20:28:13 · 842 阅读 · 1 评论 -
选择排序
在找出数组元素最大值的基础上,对数组进行升序排列#include<stdio.h>int max(int a[],int len){ int maxid = 0; for(int i=1;i<len;i++){ if(a[i]>a[maxid]){ maxid = i; } } return maxid;}int main(){ int a[]={12,2,13,24.原创 2020-07-08 21:07:54 · 97 阅读 · 0 评论 -
找出数组元素的最大值
#include<stdio.h>int max(int a[],int len){ int maxid = 0; for(int i=1;i<len;i++){ if(a[i]>a[maxid]){ maxid = i; } } return maxid;}int main(){ int a[]={12,2,13,24,14,23,4,5,45,26,99,}; .原创 2020-07-08 20:50:27 · 871 阅读 · 0 评论 -
二分搜索
线性搜索没有效率,引入二分搜索,二分搜索的效率为log2N。#include<stdio.h>int search(int k, int a[], int len){ int ret =-1; int left = 0; int right = len-1; while(right>left) { int mid = (left+right)/2; if(a[mid]==k)原创 2020-07-08 20:40:16 · 147 阅读 · 0 评论 -
线性搜索
#include<stdio.h>int search(int key, int a[], int len) { int ret = -1; for(int i = 0; i < len; i++){ if(key == a[i]){ ret = i; break; } } return ret; .原创 2020-07-08 18:21:22 · 210 阅读 · 0 评论 -
利用函数判断一个数是不是素数
方法一:#include<stdio.h>int isPrime(int x);int main(void){ int x; scanf("%d",&x); if( isPrime(x) ){ printf("%d是素数\n",x); }else{ printf("%d不是素数\n",x); } return 0;}int isPrime(int x){ int ret = 1;原创 2020-07-08 18:21:01 · 8405 阅读 · 0 评论 -
数组搜索
判断一个数是否是数组中的元素,如果是,输出该元素的位置。#include<stdio.h>int search(int key, int a[], int length);int main(void){ int a[]={12,23,13,23,14,45,23,23,8,}; int x; int loc; printf("请输入一个数字:"); scanf("%d",&x); loc = search(x,a,sizeof(a)/.原创 2020-07-08 09:57:55 · 215 阅读 · 0 评论 -
输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束
#include<stdio.h>int main(){ const int number = 10; int x; int count[number]; //定义数组 int i; //数组初始化 for(i=0; i<number; i++){ count[i] = 0; } scanf("%d",&x); while(x != -1){ if(x >=0 && x&.原创 2020-07-03 11:43:33 · 1458 阅读 · 1 评论 -
计算用户输入的数字的平均数,并输出所有大于平均数的数
#include<stdio.h>int main(){ int x; double sum = 0; int cnt = 0; int number[100]; //定义数组 scanf("%d", &x); while( x != -1 ){ number[cnt] = x; //对数组中的元素赋值 //调试 { int i; printf("%d\t",.原创 2020-07-02 21:27:39 · 1155 阅读 · 0 评论 -
将一个整数正序输出
方法一:先逆序再逆序# include<stdio.h>int main(){ int x; scanf("%d",&x); int t = 0; do{ int d = x%10; t = t*10+d; x /= 10; }while(x>0); printf("x=%d,t=%d\n",x,t); x = t; do{ int d = x % 10;原创 2020-07-02 15:48:28 · 2035 阅读 · 0 评论 -
对一个数逆序输出
# include<stdio.h>int main(){ int x; scanf("%d",&x); do{ int d = x%10; printf("%d",d); if(x>9){ printf(" "); } x /= 10; }while( x > 0 ); printf("\n"); return 0;}.原创 2020-07-02 11:08:53 · 482 阅读 · 0 评论 -
计算两个数的最大公约数——辗转相除法
算法:step1:如果b等于0,计算结束,a就是最大公约数;step2:否则,计算a除以b的余数,让a等于b,而b等于那个余数;step3:回到第一步。表格演示:a b t12 18 1218 12 612 6 06 0 程序:# include<stdio.h>int main(...原创 2020-07-02 10:40:28 · 468 阅读 · 0 评论 -
计算两个数的最大公约数——枚举法
算法:step1:设i为2;step2:如果a和b都能被i整除,则记下这个i;step3:i加1后重复第二步,直到i等于a或b;step4:则曾经记下的最大的能同时整除a和b的i就是最大公约数。程序:# include<stdio.h>int main(){ int a,b; scanf("%d %d",&a,&b); int ret=0; int min=0; if(a>b){ m原创 2020-07-02 10:09:38 · 1396 阅读 · 0 评论 -
计算f(n)=1-1/2+1/3-1/4+1/5-1/6+...+1/n
方法1:# include<stdio.h>int main(){ int n; scanf("%d",&n); int i; double sum = 0.0; int sign = 1; for(i = 1; i<=n; i++){ sum += sign*1.0/i; sign = -sign; } printf("f(%d)=%f\n",原创 2020-06-29 20:50:43 · 829 阅读 · 0 评论 -
计算f(n)=1+1/2+1/3+1/4+...+1/n
# include<stdio.h>int main(){ int n; scanf("%d",&n); int i; double sum = 0.0; for(i = 1; i<=n; i++){ sum += 1.0/i; } printf("f(%d)=%f\n",n,sum); return 0;}原创 2020-06-29 20:46:54 · 1893 阅读 · 0 评论 -
如何用1角、2角和5角的硬币凑出10元以下的金额
第一种方法:接力break# include<stdio.h>int main(){ int x=2; int one,two,five; int exit=0; for(one=1;one<x*10;one++){ for(two=1;two<x*10/2;two++){ for(five=1;five<x*10/5;five++){ if(one+two*2+five*5=原创 2020-06-29 20:33:18 · 1510 阅读 · 1 评论 -
前50个素数
方法一:for循环# include<stdio.h>int main(){ int x=2; //scanf("%d",&x); int cnt=0; while(cnt<50){ int isPrime = 1; //是素数 for(int i=2;i<x;i++){ if(x%i==0){ isPr原创 2020-06-29 12:00:20 · 1468 阅读 · 0 评论 -
100以内的素数
# include<stdio.h>int main(){ int x; //scanf("%d",&x); for(x=2;x<100;x++){ int isPrime = 1; //是素数 for(int i=2;i<x;i++){ if(x%i==0){ isPrime = 0; //不是素数 .原创 2020-06-29 11:54:40 · 96 阅读 · 0 评论 -
判断一个数是不是素数
# include<stdio.h>int main(){ int x; scanf("%d",&x); int isPrime = 1; //是素数 for(int i=2;i<x;i++){ if(x%i==0){ isPrime = 0; //不是素数 } } if(isPrime==1){ printf("是素数\n"); .原创 2020-06-29 10:42:18 · 238 阅读 · 0 评论 -
求任意一个正整数的逆序
# include<stdio.h>int main(){ int x; scanf("%d",&x); int digit; while(x>0){ digit = x%10; printf("%d",digit); x/=10; } return 0; }升级版:# include<stdio...原创 2020-06-25 16:22:29 · 2292 阅读 · 0 评论 -
计算几个正整数的平均数
# include<stdio.h>int main(){ int number; int sum = 0; int count = 0; do{ scanf("%d", &number); if(number != -1){ sum += number; count ++; } }while(number != -1); .原创 2020-06-23 21:45:59 · 273 阅读 · 0 评论 -
计算一个数的对数
# include<stdio.h># include<stdbool.h>int main(){ int x; int ret = 0; scanf("%d", &x); int t = x; while(x>1){ x/=2; ret++; } printf("log2(%d)=%d\n", t, ret); r.原创 2020-06-23 21:12:04 · 513 阅读 · 0 评论 -
判断三个数的大小
# include<stdio.h># include<stdbool.h>int main(){ int a, b, c; scanf("%d %d %d", &a, &b, &c); int max = 0; if(a>b){ if(a>c){ max = a; }else{ max = c; .原创 2020-06-23 17:04:34 · 1756 阅读 · 0 评论 -
计算一个数的阶乘
while语句# include<stdio.h>int main(){ int n = 1; scanf("%d", &n); int fact = 1; int i = 1; while(i<=n){ fact*=i; i++; } printf("%d!=%d\n", n, fact); return 0;}fo原创 2020-06-23 16:19:59 · 764 阅读 · 1 评论 -
判断一个正整数有几位
# include<stdio.h>int main(){ int x; int n = 0; scanf("%d", &x); x/=10; n++; while(x>0){ x/=10; n++; } printf("%d\n", n); return 0;}原创 2020-06-23 16:08:38 · 1979 阅读 · 0 评论 -
利用判断语句计算两个时间差
# include<stdio.h>int main(){ int hour1, minute1; int hour2, minute2; printf("请输入第一个时间:"); scanf("%d %d", &hour1, &minute1); printf("请输入第二个时间:"); scanf("%d %d", &hour2, &minute2); int ih = hou.原创 2020-06-23 16:00:01 · 395 阅读 · 0 评论