zrg1390556487@gmail.com
1. 初级LV.1
1.1. Hello World
#include<stdio.h> void main(){ printf("Hello World!"); }
1.2. a+b
#include<stdio.h> void main(){ int a,b; printf("Please enter two integers separated by commas!\n"); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); printf("a+b=%d\n",a+b); }
1.3. 菱形打印
#include<stdio.h> void print(int n){ int i,j; for(i=1;i<=n;i++){ // 首先打印前面的空格 for(j=1;j<=n-i;j++){ printf(" "); } // 打印菱形上半部分 for(j=n-i+1;j<n+i;j++){ printf("*"); } printf("\n"); } for(i=n-1; i>=1; i--) { for(j=1; j<=(n-i); j++) { printf(" "); } for(j=n-i+1; j<n+i; j++) { printf("*"); } printf("\n"); } }
void printstar(int n) { int i,j; //行,列 for(i=0; i<2*n-1; i++) { for(j=0; j<2*n-1; j++) { if(i<n) { if(j>=n-i-1&&j<n+i) { print('*'); } else { print(' '); } } else { if(j>=i-n+1&&j<3*n-i-2) { print('*'); } else { print(' '); } } } print('\n'); } }
1.4. 大小写转换
#include<stdio.h> #include<string.h> /** * Conversion * a-z <--> A-Z */ //init char convert(char ch); //main void main(){ int i,j; int n,length; char arr[300]; printf("Please enter n value.\n"); scanf("%d",&n); for(i=0;i<n;i++){ gets(arr); length=strlen(arr); for(j=0;j<=n;j++){ arr[j]=convert(arr[j]); } for(j=0;j<length;j++){ putchar(arr[j]); } } } //convert char convert(char ch){ if(ch>='a'&&ch<='z'){ return ch-32; }else if(ch>='A'&&ch<='Z'){ return ch+32; }else{ return ch; } }
1.5. 水仙花数
#include<stdio.h> /** * 水仙花数(Narcissus number) * 描述:如果一个三位数的每个数位的三次方和就是本身。 * */ int isYes(int n); void main(){ int l,m,n,flag; printf("Please enter 3-digit interger,Separated by commas!\n"); while(scanf("%d,%d",&m,&n)!=EOF){ flag=0; for(l=m;l<=n;l++){ if(isYes(l)){ flag=1; printf("%d ",l); } } if(flag==0){ printf("No!"); } } } int isYes(int n){ int i,j,k; i=n/100;//百位 j=n/10%10;//十位 k=n%10;//个位 if(n==i*i*i+j*j*j+k*k*k){ return 1; }else{ return 0; } }
1.6. 青蛙王子
#include<stdio.h> /** * 一个王子被巫师诅咒,…… * */ void main(){ unsigned int a,b,c,temp,min; while(scanf("%u %u %u",&a,&b,&c),a!=0||b!=0||c!=0){ if(a==0&&b==0){ printf("No\n"); continue; } if(b>a){ temp=a; a=b; b=temp; } if(b==0){ min=a; } if(a==b){ min=a; } while(a>b&&b!=0){ temp=a-b; if(temp>b){ a=temp; }else if(temp<b){ a=b; b=temp; }else{ min=temp; break; } } if((c%min)==0){ printf("Yes\n"); }else{ printf("No\n"); } } }
1.7. 海明距离
#include<stdio.h> /** * 海明距离(Haiming Distance) * 二进制情况下,一个整数变成另一个整数需要翻转的位数。 * */ void main(){ int x,y,m,n; int dist=0; printf("Please enter 2-digit integer,Separated by commas!\n"); scanf("%d,%d",&x,&y); while(x!=0||y!=0){ m=x%2;x=x/2; n=y%2;y=y/2; if(m!=n){ dist++; } } printf("x and y [Haiming Distance]:%d",dist); }
1.8. 哈密尔顿距离
#include<stdio.h> /** * 哈密尔顿距离 * Hamilton.c * 有两个点P[x1,y1],Q[x2,y2],定义其哈密尔顿距离D=|x1-x2|+|y1-y2| * */ void main(){ int x1,y1,x2,y2,temp_x,temp_y; printf("Please enter 4 numbers,each 2 numbers are Separated by commas.Format:'3,4 5,6'\n"); scanf("%d,%d %d,%d",&x1,&y1,&x2,&y2); if(x1>x2){ temp_x=x1-x2; }else{ temp_x=x2-x1; } if(y1>y2){ temp_y=y1-y2; }else{ temp_y=y2-y1; } printf("result:%d\n",temp_x+temp_y); }
1.9. 数码平方和
#include<stdio.h> /** * 数码平方和 * 一个整数各个数码的平方和的个位数成为分类值。给你一个区间[a,b],一个数码n,求这个区间[a,b]内的分类值n。 * */ void main(){ int a,b,c,d,e; printf("Please enter 3 numbers.\n"); scanf("%d,%d,%d",&a,&b,&e); int i,j,k,n,f,g; for(i=0;i<=b;i++){ g=i;c=i; f=0;d=c; for(;d!=0;){ c=d%10; f=f+c*c; d=d/10; } f=f%10; if(f==e){ k++; } } printf("result:%d\n",k); }
1.10. 统计字符
#include<stdio.h> #include<string.h> /** * Statistics Strings * 输入一字符串,请找出出现次数最多的大写字母。 * 采用哈希映射思想,把A-Z映射到哈希表中保存其出现的次数,最后输出结果。 * */ void main(){ char str[100],z[1000]; int i,j,k,sum[30],a; gets(z);//读取字符串 memset(sum,0,sizeof(str)); for(i=0;i<strlen(z);i++){ sum[z[i]-'A']++; } k=0; for(i=0;i<30;i++){ if(k<sum[i]){ k=sum[i]; a=i+'A'; } } printf("%c %d\n",a,k); }
1.11. 数字塔
/** * Digital Tower * 1 * 222 * 33333 * */ #include<stdio.h> void main(){ int n; printf("Please enter any number!\n"); scanf("%d",&n); int i,j; }
1.12. 有多少个1
#include<stdio.h> #include<stdlib.h> void hanoi(int n,char x,char y,char z); int main(void){ hanoi(6,'A','B','C'); return EXIT_SUCCESS; } void hanoi(int n,char x,char y,char z){ if(n==0){ }else{ hanoi(n-1,x,z,y); printf("%c->%c,",x,y); hanoi(n-1,z,y,x); } }