首页 > 编程知识 正文

比较好玩的c语言程序,简单好玩的C语言编程代码

时间:2023-05-06 02:05:43 阅读:248191 作者:1369

C/C++程序举例 打印素数表 // 输出前500个素数 #include<stdio.h>#include<math.h> #define N 500 //判断是否为素数int isprime(int y){int i,ret=1;for(i=2;i<=sqrt(y);i++){if(y%i==0){ret=0;break;}}return ret;}//求第n个素数int ThePrime(int n){int num = 0;int cur = 2;while(num < n){if(isprime(cur))num++;cur++;}cur--;return cur;}打印前N个素数void test2(){int i;for(i = 1;i < N+1;i++){printf("%6d",ThePrime(i));if(i%10 == 0)printf("n");}}int main(){test2();}

结果如下

图案输出 //按照金字塔输出从A到Z的26个字母,用+填充空白 #include<stdio.h>#include<math.h>main(){int i,j,k,n=9;char c='A'-1;for(i=1;i<=2*n-1;i++){k=n-abs(n-i);for(j=1;j<=abs(n-i)+1;j++){printf("+");} for(j=1;j<=2*k-1;j++){c++;printf("%c",c);if(c=='Z')c=c-26;}for(j=1;j<=abs(n-i)+1;j++){printf("+");}printf("n");}return 0;}

结果如下

4种方式打印九九乘法表 #include<iostream>#include<iomanip>using namespace std;void print1();void print2();void print3();void print4();int main(){print1();cout<<endl;print2();cout<<endl;print3();cout<<endl;print4(); return 0;}void print1(){for(int i = 1;i < 10;i++){for(int j = 1;j < i+1;j++)cout<<i<<"*"<<j<<"="<<i*j<<" ";cout<<endl;}}void print2(){for(int i = 1; i < 10;i++){for(int j = 1; j <= 9;j++){if(j < i){cout<<"t";continue;}cout<<setw(1)<<i<<"*"<<setw(1)<<j<<"="<<setw(2)<<i*j<<" ";}cout<<endl; } } void print3(){for(int i = 1;i < 10;i++){for(int j = 9;j >= i;j--)cout<<i<<"*"<<j<<"="<<setw(2)<<i*j<<" ";cout<<endl;}}void print4(){for(int i = 1;i < 10;i++){for(int j = 1;j <= 9;j++){if(j <= 9-i)cout<<"t";elsecout<<i<<"*"<<j<<"="<<i*j<<"t";}cout<<endl;}}

结果如下

螺旋阵

螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环.

#include<iostream>#include<iomanip>#define N 15 using namespace std;int main(){int i,j,k,n,s;int ret = 1;int a[N][N] = {0}; for(i = 0;i < N/2;i++){for(j = i;j < N-i-1;j++)a[i][j]=ret++;//上横 for(k = i;k < N-i-1;k++)a[k][j]=ret++;// 右竖 for(n = N-i-1; n > i;n--)a[k][n]=ret++;//下横 for(s = N-i-1;s > i;s--)a[s][n]=ret++;//左竖 }if(N%2)a[N/2][N/2]=ret;//N为奇数时,给中心点赋值 for(int p = 0;p < N;p++){for(int q = 0;q < N;q++){cout<<setw(5)<<a[p][q];}cout<<endl;}return 0;}

汉诺塔

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令xldmb把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

#include<stdio.h>void hanoi(int n,char x,char y,char z);void move(char x,int n,char y);main(){hanoi(4,'a','b','c');}void hanoi(int n,char x,char y,char z){if(n == 1)move(x,1,z);else{hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);}}void move(char x,int n,char y){printf("%c->%cn",x,y);}

结果如下

猜数游戏 //猜1个一百以内的整数,共5次机会 #include<stdio.h>#include<time.h>#include<stdlib.h>int main(){srand((unsigned)time(0));int num;int guess;//用户猜数 int right;//正确答案 int count;//已猜次数 while(1){count = 0;right = 0;num = rand()%100;printf("请猜一个数:");while(count++ < 5){scanf("%d",&guess);//小于5次,不断猜数 if(guess == num){right = 1;printf("恭喜猜对!n");break;}else if(guess>num)printf("大.n");elseprintf("小.n");}if(right == 0)printf("尝试5次,失败n");printf("是否继续?y/n:");int c; fflush(stdin);c = getchar();if(c == 'n' || c == 'N')break; }return 0;}

打印ASCII码表可见字符

#include <stdio.h>int main(void){ int c; printf("tCharacter Coden"); int i = 0; for (c=33; c<=126; c++) { if(i%4==0) printf("n"); printf("t%ct%d", c, c);i++;}}

进制转换 //进制转换 #include<stdio.h>//字符转数字 int char2num(char ch){if(ch >= '0' && ch <= '9')return ch - '0';elsereturn ch - 'a' + 10;}//数字转字符 char num2char(int num){if(num >=0 && num <= 9)return num + '0';elsereturn num - 10 + 'a';}// 转化为目标进制 long source2decimal(char tmp[],int source){int len = 0;int num = 0;for(;tmp[len] != '';len++){num = num * source;num += char2num(tmp[len]);}return num;}//取余存放在数组 int decimal2obj(char tmp[],long decimal,int obj){int len = 0;int rem;while(decimal){rem = decimal % obj;tmp[len++] = num2char(rem);decimal = decimal / obj; }tmp[len] = '';return len;}void output(char tmp[],int len){int i;for(i = len-1 ;i >= 0;i--)printf("%c",tmp[i]);printf("n");}int main(){char tmp[100];int source;int obj;int flag = 1;int dec_num;int len;while(flag){printf("input a number:");scanf("%s",tmp);printf("input source:") ;scanf("%d",&source);printf("input object:");scanf("%d",&obj);dec_num = source2decimal(tmp,source);len = decimal2obj(tmp,dec_num,obj);output(tmp,len);printf("continue?1/0:");scanf("%d",&flag);}return 0;}

自动发牌程序 #include<stdlib.h>#include<stdio.h>int comp(const void *j, const void *i);void p(int b[], char n[]);int main(void){ static char n[]={'2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A'}; int a[53], b1[13], b2[13], b3[13], b4[13]; int b11=0, b22=0, b33=0, b44=0, t=1, m, flag, i; while( t<=52 ) /*控制发52张牌*/ { m=rand()%52; /*产生0到51之间的随机数*/ for(flag=1,i=1; i<=t&&flag; i++) /*查找新产生的随机数是否已经存在*/ if(m==a[i]) flag=0; /*flag=1表示产生的是新的随机数,flag=0表示新产 生的随机数已经存在*/ if(flag) { a[t++]=m; /*如果产生了新的随机数,则存入数组*/ /*根据t的模值,判断当前的牌应存入哪个数组中*/ if(t%4==0) b1[b11++]=a[t-1]; else if(t%4==1) b2[b22++]=a[t-1]; else if(t%4==2) b3[b33++]=a[t-1]; else if(t%4==3) b4[b44++]=a[t-1]; } } qsort(b1, 13, sizeof(int), comp); /*将每个人的牌进行排序*/ qsort(b2, 13, sizeof(int), comp); qsort(b3, 13, sizeof(int), comp); qsort(b4, 13, sizeof(int), comp); p(b1, n); /*分别打印每个人的牌*/ p(b2, n); p(b3, n); p(b4, n); return 0;}void p(int b[], char n[]){ int i; printf("n06 "); /*打印黑桃标记*/ for(i=0; i<13; i++) /*将数组中的值转换为相应的花色*/ if(b[i]/13==0) /*找到该花色对应的牌*/ printf("%c ", n[b[i]%13]); printf("n03 "); /*打印红桃标记*/ for(i=0; i<13; i++) if((b[i]/13)==1) printf("%c ", n[b[i]%13]); printf("n04 "); /*打印方块标记*/ for(i=0; i<13; i++) if(b[i]/13==2) printf("%c ", n[b[i]%13]); printf("n05 "); /*打印梅花标记*/ for(i=0; i<13; i++) if(b[i]/13==3 || b[i]/13==4) printf("%c ", n[b[i]%13]); printf("n");}int comp(const void *j, const void *i) /*qsort调用的排序函数*/{ return(*(int*)i-*(int*)j);}

差不多就到这里了,欢迎大家指正,这是我初学C语言时积累的一下代码,时隔久远,仍要守住一份初心,坚持学好算法,解决更多问题。

阿诺德渲染器gpu需要学习么?Git-查找回购中哪些应用已更改Python语言常见报错有哪些及怎么解决Comparetrue/falsearraywithotherarray见缝插针游戏的实现途径

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。