
c语言入门题
刚步入大学时写的代码,有一些经典算法(很少)大部分为oj上的题目。
提莫队长丶
这个作者很懒,什么都没留下…
展开
-
2021-03-03
单项选择题标准化考试系统#include <cstdio>#include <cstdlib>#include<cstring>#include<ctime>typedef long long ll;using namespace std;struct question{ char arr[1000]; char a[100],b[100],c[100],d[100]; char ans;};void shitilu原创 2021-03-03 09:31:17 · 127 阅读 · 0 评论 -
2021-02-08
cf the great hero竟然要长整形数组原创 2021-02-08 10:28:00 · 98 阅读 · 0 评论 -
2021-02-04
有理数个数#include <stdio.h>#include <algorithm>typedef long long ll;using namespace std;struct fenshi { int a, b; double c;};int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }int cmp(fenshi p, fenshi q) { return p.原创 2021-02-04 14:33:41 · 95 阅读 · 0 评论 -
2021-02-01
*求一个数的所有因子和#include <stdio.h>#include <math.h>typedef long long ll;int vit[800] = {1, 1}, prime[800], count = 0;void create_prime(){ int n = sqrt(800.0); for (int i = 2; i <= n; i++) if (vit[i] == 0)原创 2021-02-01 19:51:02 · 158 阅读 · 1 评论 -
2021-01-31
扩展欧几里得求方程的解#include <stdio.h>#include <stdlib.h>typedef long long ll;ll ext_gcd(ll a,ll b,ll *x,ll *y){ if(b==0) { *x=1; *y=0; return a; } ll g=ext_gcd(b,a%b,x,y); ll t=*x; *x=*y; *y=t-(a原创 2021-01-31 11:08:47 · 73 阅读 · 0 评论 -
2021-01-26
来个题目#include <stdio.h>#include <math.h>#define N 1000000int vit[1000000] = {1, 1}, prime[400000] = {1}, count = 1;void create_prime() { int m = floor(sqrt(N) + 0.5); for (int i = 2; i <= m; i++) if (vit[i] == 0) for (int原创 2021-01-26 21:01:40 · 90 阅读 · 1 评论 -
2021-01-26
求1到n所有数的欧拉函数#include <stdio.h>int phi[10000];void create_phi(int n) { for (int i = 1; i <= n; i++) phi[i] = i; for (int i = 2; i <= n; i++) { if (phi[i] == i) { for (int j = i; j <= n; j += i) phi[j] = phi[j] / i原创 2021-01-26 17:38:05 · 92 阅读 · 0 评论 -
2021-01-26
欧拉函数long long phi(long long n){ long long sum = n; for(int i=2; i*i <= n; ++i) { if(n%i == 0) { sum = sum/i*(i-1); while(n%i == 0) n/=i; } } if(n > 1) sum = s原创 2021-01-26 17:26:36 · 86 阅读 · 1 评论 -
2021-01-23
螺旋矩阵2*不清楚为什么malloc分配的动态数组为什么初值全是0#include <stdio.h>#include <stdlib.h>int main() { int n, **arr; scanf("%d", &n); arr = (int **)malloc(n * (sizeof(int *))); for (int k = 0; k < n; k++) arr[k] = (int *)malloc(n * (sizeof(i原创 2021-01-23 14:52:42 · 88 阅读 · 0 评论 -
2021-01-23
螺旋矩阵#include <stdio.h>#include <stdlib.h>int main() { int n, **arr; scanf("%d", &n); arr = (int **)malloc(n * sizeof(int *)); for (int j = 0; j < n; j++) arr[j] = (int *)malloc(n * sizeof(int)); int shang = 0, xia = n -原创 2021-01-23 13:49:24 · 78 阅读 · 0 评论 -
2020-11-26
数入一个字符判断其类型#include<stdio.h>int main(){ char m; m=getchar(); if(m>='0'&&m<='9') printf("digital character"); else if((m>='a'&&m<='z')||(m>='A'&&m<='Z')) printf("alphabetic原创 2020-11-26 23:01:20 · 66 阅读 · 0 评论 -
2020-11-25
麦卡锡91(goto语句版)#include<stdio.h>int main( ){ int a,n;while(scanf( "%d",&n)!=EOF){GG:if( n>100){ a=n-10;}else{YY:n=n+11;if( n>100){n=n-10;goto GG;}else{goto YY; }}printf( "%d\n",a);}return 0;}原创 2020-11-25 15:19:37 · 134 阅读 · 0 评论 -
2020-11-24
两数之和#include<stdio.h>int main( ){ int xs[20];int a,b,c,d,n,sum;GG:scanf( "%d%d",&sum,&n);for(a=0;a<n;a++ )scanf( "%d",&xs[a]);d=0;for( b=0;b<n;b++){ for( c=0;c<n;c++){ if( (xs[b]+xs[c])==sum){d=1;printf( "%d %d\n"原创 2020-11-24 18:59:48 · 76 阅读 · 0 评论 -
2020-11-24
找一个数组中只出现一次的元素的个数#include<stdio.h>int main( ){ int xs[10000];int a,b,c,d,e,n;e=0;scanf( "%d",&n);for( a=0;a<n;a++)scanf( "%d",&xs[a]);for( b=0;b<=n-1;b++){ d=0;for( c=0;c<=n-1;c++){ if( xs[b]==xs[c])d++;}if( d==1)e++原创 2020-11-24 18:57:37 · 217 阅读 · 0 评论 -
2020-11-22
最大公约数与最小公倍数(函数版)#include<stdio.h>int GCD( int a,int b){ int c,d;while( b){ c=a%b;a=b;b=c;}return a;}int LCM( int a,int b){ int c,d;d=GCD( a,b);c=( a*b)/d;return c;}int main( ){ int a,b,c,d;while( scanf( "%d,%d",&a,&b)&原创 2020-11-22 23:39:41 · 61 阅读 · 0 评论 -
2020-11-22
素数的分解(函数版)#include<stdio.h>int sbsss( int a){ int c,b,d;d=1;for( b=2;b<=a/2;b++){c=a%b;if( c==0){d=0;break;}}if( d==0)return 0;return 1;}void ssfj( int a){int b,c,d,e,f;f=0;for( b=2;b<=a/2;b++){ c=a-b;d=sbsss( b);e=sbsss(原创 2020-11-22 23:38:39 · 82 阅读 · 0 评论 -
2020-11-20
看一个数中指定某个数出现的次数的函数。int CountDigit( int number, int digit ){ int a,b; a=0; do {if(number<0) number=-number; b=number%10; if(b==digit) a++; number=number/10; }while(number); return a;}原创 2020-11-20 15:51:18 · 63 阅读 · 0 评论 -
2020-11-20
一个打印金字塔的函数void pyramid( int n ){int a,b,c;for( a=1;a<=n;a++){ for( b=0;b<=n-a-1;b++)printf( " ");for( c=1;c<=a;c++)printf( "%d ",a);printf( "\n");}return ;}原创 2020-11-20 15:47:37 · 56 阅读 · 0 评论 -
2020-11-20
求组合数(函数版)#include <stdio.h>int C(int n,int k){ int a,b,c,d,e,f,g; for(a=1,b=1;a<=n;a++) b=a*b; for(c=1,d=1;c<=k;c++) d=c*d; for(e=1,f=1;e<=(n-k);e++) f=e*f; g=b/(d*f); return g;}i原创 2020-11-20 12:30:46 · 73 阅读 · 0 评论 -
2020-11-19
求回文数(函数版)#include<stdio.h>int xxx(int x){ int a,b; a=0; b=x; while(x) { a=a*10+x%10; x=x/10; } if(a==b) return 1; return 0;}int main(){ int a,b,c,d; while(scanf("%d",&a)!=EOF)原创 2020-11-19 09:25:49 · 97 阅读 · 0 评论 -
2020-11-18
求分段函数(函数版)#include <stdio.h>#include <math.h>double f(double x){ double a; if(x<0) a=fabs(x)/2; else if(x>=0&&x<10) a=exp(x)+3; else if(x>=10&&x<20) a=log10(x); else原创 2020-11-18 22:14:48 · 60 阅读 · 0 评论 -
2020-11-17
平方和(函数版)#include<stdio.hint sum(int n){ int a,b; a=1; b=0; for(a=1;a<=n;a++) { b=b+a*a; } return b;}int main(void){ int n; scanf("%d", &n); printf("%d\n", sum(n)); return 0;}原创 2020-11-17 13:14:15 · 64 阅读 · 0 评论 -
2020-11-16
求回文数个数#include<stdio.h>int main(){ int a,b,c,d,e,f,g,h; while(scanf("%d",&a)&&(a!=0)) {f=0; c=0; for(d=1;d<=a;d++) { for(g=d;g!=0;) { b=g%10; g=g/10; c=c*10+b;}原创 2020-11-16 09:04:57 · 68 阅读 · 0 评论 -
2020-11-15
输入多组数判断是不是素数#include<stdio.h>int main( ){ int a,b,c,d,e,n;scanf( "%d",&n);for( a=0;a<n;a++){ scanf( "%d",&b);for( d=2,c=0;b==1||d<=b/2;d++){e=b%d;if( b==1){ c=1;break;}else if( e==0){c=1;break;}}if( c==1)printf( "No\n"原创 2020-11-15 06:54:44 · 60 阅读 · 0 评论 -
2020-11-14
百马百担问题#include<stdio.h>int main( ){ int a,b,c,d;for( a=1;a<34;a++){ for( b=0;b<50;b++){ c=3*a+2*b+( 100-a-b)/2;if( c==100&&(100-a-b)%2==0){ printf( "%d,%d,%d\n",a,b,100-a-b);break;}}}return 0;}原创 2020-11-14 12:40:07 · 61 阅读 · 0 评论 -
2020-11-13
最小平方数#include<stdio.h>int main( ){ int a,b,c,d,n;scanf( "%d",&n);for( a=1;a<n;a++){ b=n*a;for( c=1;c<n;c++){ d=c*c;if( b==d)goto GG;}}GG:printf( "%d",a);return 0;}原创 2020-11-13 19:29:40 · 68 阅读 · 0 评论 -
2020-11-12
打印99乘法表#include<stdio.h>int main( ){ int a,b,n,m;while( scanf( "%d",&n)!=EOF)for( a=1;a<(n+1);a++){ for( b=1;b<n+1;b++){ m=a*b;if( b<=a){ printf( "%d*%d=%-4d",a,b,m);}}printf( "\n");}return 0;}原创 2020-11-12 22:41:37 · 59 阅读 · 0 评论 -
2020-11-11
打印正方形#include<stdio.h>int main( ){ int n,a,b;scanf( "%d",&n);for( a=0;a<n;a++){ for( b=0;b<n;b++){ printf( "@");}printf( "\n");}return 0;}原创 2020-11-11 23:06:34 · 66 阅读 · 0 评论 -
2020-11-10
以三角形的角的大小分类,判断是什么三角形#include<stdio.h>int main( ){ int a,b,c,n;scanf( "%d",&n);while( n--){ scanf( "%d%d%d",&a,&b,&c);if( a+b<=c||a+c<=b||b+c<=a)printf( "NO\n");else if(a*a+b*b==c*c ||a*a+c*c==b*b||c*c+b*b==a*a)prin原创 2020-11-10 22:55:53 · 63 阅读 · 0 评论 -
2020-11-09
求斐波拉契数列#include<stdio.h>int main( ){ int a=0,b=1,c,d,n;while( scanf( "%d",&n)==1&&a!=-1){ if( n==0)printf( "%d\n",a);else if( n==1)printf( "%d\n",b);else if( n>1){ for(a=0,b=1, c=1;c<n;c++){d=b+a;a=b;b=d;}printf("%d原创 2020-11-09 21:51:33 · 83 阅读 · 0 评论 -
2020-11-08
输入多组数据的分段函数#include<stdio.h>#include<math.h>int main( ){ int a,b;double x,y;scanf( "%d",&a);while( a--){ scanf( "%lf",&x);if( x<0){ y=fabs( x)/2;printf("y=%.6f\n",y);}else if( x>=0&&x<10){ y=exp( x)+3;pr原创 2020-11-08 09:59:03 · 112 阅读 · 0 评论 -
2020-11-07
玫瑰花数#include <stdio.h>int main(){int a,b,c,d,e,f;while(scanf("%d",&a)!=EOF) { b=a%10;c=(a/10)%10;d=( a/100)%10;e=( a/1000)%10;if( a==b*b*b*b+c*c*c*c+d*d*d*d+e*e*e*e)printf( "YES\n");elseprintf( "NO\n");} return 0;}...原创 2020-11-08 09:56:32 · 85 阅读 · 0 评论 -
2020-11-06
输入多组数据的成绩转化#include<stdio.h>int main(){ int a,b; while(scanf("%d",&a)!=EOF) if(a>100||a<0) printf("Score is error!"); else{ b=a/10; switch(b){ case 9: case 10:printf("A\n");break;原创 2020-11-06 16:42:33 · 59 阅读 · 0 评论 -
2020-11-05
求a+aa+aaa型#include<stdio.h>int main( ){ int a,b,c,d,t;scanf( "%d%d",&a,&b);t=a;for( d=0,c=0;c<b;c++){ d=d+a;a=a*10+t;}printf( "%d",d);return 0;}原创 2020-11-05 22:11:47 · 50 阅读 · 0 评论 -
2020-11-04
成绩转化升级版#include<stdio.h>int main( ){ int a;scanf( "%d",&a);a=a/10;switch(a){case 9:case 10:printf( "A\n");break;case 8:printf( "B\n");break;case 7:printf( "C\n");break;case 6:printf( "D\n");break;case 5:case 4:case 3:case原创 2020-11-04 23:00:43 · 57 阅读 · 0 评论 -
2020-11-04
求最小公倍数#include<stdio.h>int main( ){ int a,b,c,d,e;c=1;scanf( "%d%d",&a,&b);e=a*b;while( c!=0){ if( a>=b){ c=a-b;}else if( a<b){ c=b-a;}b=a;a=c;}d=e/b;printf( "%d",d);return 0;}原创 2020-11-04 22:40:44 · 59 阅读 · 0 评论 -
2020-11-03
辗转相除法求最大公约数#include<stdio.h>int main( ){ int a,b,c;scanf( "%d%d",&a,&b);for( c=1;c!=0;){c=a%b;a=b;b=c;}printf( "%d",a);return 0;}原创 2020-11-03 22:54:22 · 68 阅读 · 0 评论 -
2020-11-03
更想减损求最大公约数#include<stdio.h>int main( ){ int a,b,c;c=1;scanf( "%d%d",&a,&b);while( c!=0){ if( a>=b){ c=a-b;}else if( a<b){ c=b-a;}b=a;a=c;}printf( "%d",b);return 0;}原创 2020-11-03 22:53:10 · 62 阅读 · 0 评论 -
2020-11-03
求整数n的所有因子的和#include<stdio.h>int main( ){ int a,n,b,c,d;scanf( "%d",&n);for( a=2;a<n;a++){b=n%a;c=n/a;if(b==0 ) d=d+c;}printf( "%d",d);return 0;}原创 2020-11-03 12:49:05 · 71 阅读 · 0 评论 -
2020-11-02
输出HDL程序#include<stdio.h>int main( ){ int b,i;for( i=0,b=16;i<b;i++){ printf( "Mux(a=a[%d],b=b[%d],sel=sel[0],out=ab%d);\n",i,i,i);printf( "Mux(a=c[%d],b=d[%d],sel=sel[0],out=cd%d);\n",i,i,i);printf( "Mux(a=ab%d,b=cd%d,sel=sel[1],out=out[%原创 2020-11-02 22:52:14 · 111 阅读 · 0 评论