几个简单有趣的c语言代码

合集下载

有意思的c语言代码

有意思的c语言代码

有意思的c语言代码以下是一些有趣的C语言代码:1. "Hello World" 程序。

这是 C 语言中最简单的程序,可以输出 "Hello World!" 到屏幕上:```c。

#include <stdio.h>。

int main() 。

printf("Hello World!\n");。

return 0;。

}。

```。

2.猜数字游戏。

这个程序随机生成一个数字,并提示用户猜数字,直到猜中为止:```c。

#include <stdio.h>。

#include <stdlib.h>。

#include <time.h>。

int main() 。

int number,guess,count=0;。

srand(time(0));。

number=rand()%100+1;。

printf("Guess the number between 1 and 100\n");。

do 。

scanf("%d",&guess);。

count++;。

if(guess>number) 。

printf("Lower number please!\n");。

}。

else if(guess<number) 。

printf("Higher number please!\n");。

}。

else 。

printf("You guessed it in %d attempts!\n",count);。

}。

} while(guess!=number);。

return 0;。

}。

```。

3.字符串反转。

这个程序可以将输入的字符串反转:```c。

#include <stdio.h>。

#include <string.h>。

C语言程序设计100个简单的经典例子

C语言程序设计100个简单的经典例子

经典C语言程序设计100例1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C的图案7.显示特殊图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数"20.球体自由落下物理问题21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和25.求1+2!+3!+...+20!的和26.利用递归方法求5!27.将输入字符以相反顺序打印28.岁数问题29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法45.使用register定义变量方法46.宏#define命令练习(1)47.宏#define命令练习(2)48.宏#define命令练习(3)49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 &52.学习使用按位或 |53.学习使用按位异或 ^54.取一个整数从右端开始的4~7位。

55.学习使用按位取反~56.用circle画圆形57.学用line画直线58.用rectangle画方形59.画图综合例子160.画图综合例子261.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse64.利用ellipse and rectangle画图65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n77.填空练习(指向指针的指针)78.找到年龄最大的人79.字符串排序80.海滩猴子分桃81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的*89.数据加密90.专升本一题91.时间函数举例192.时间函数举例293.时间函数举例394.一个猜数游戏95.家庭财务管理小程序96.计算字符串中子串出现的次数97.输入字符并保存到磁盘98.字符串转换成大写字母并输出保存99.文件操作应用1100.文件操作应用2--------------------------------------------------------------------------------c语言经典100题【实用】【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

C语言简单的23 个例子

C语言简单的23 个例子

例1.1:输入两个数,输出其中的最大者方法一:#include "stdio.h"int main(){int a,b,max;scanf("%d %d",&a,&b);if (a>b) max=a;else max=b;printf("%d\n",max);return 0;}方法二:#include"stdio.h"int main(){int m,n;scanf("%d %d",&m,&n);printf("%d\n",(m>n)?m:n);return 0;}例1.2:输入三个数,输出其最大者#include "stdio.h"int main(){int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d\n",a>b?(a>c?a:c):(b>c?b:c));return 0;}例2:求一个数的绝对值方法一:#include "stdio.h"int main(){int a,absa;printf("enter one number:\n");scanf("%d",&a);if (a<0)absa=-a;elseabsa=a;printf("|%d|=%d\n",a,absa);return 0;}方法二:#include"stdio.h"#include"math.h"int main(){int a;scanf("%d",&a);printf("%d\n",abs(a));return 0;}例3:两个数的四则运算#include "stdio.h"int main(){double x,y;char op;printf("输入运算式:\n");scanf("%lf%c%lf",&x,&op,&y);switch (op){case '+':printf("%.2f%c%.2f=%.2f\n",x,op,y,x+y);break;case '-':printf("%.2f%c%.2f=%.2f\n",x,op,y,x-y);break;case '*':printf("%.2f%c%.2f=%.2f\n",x,op,y,x*y);break;case '/':if (y==0)printf("error!\n");elseprintf("%.2f%c%.2f=%.2f\n",x,op,y,x/y);break;default :printf("expression is error!\n");}return 0;}例4:求N个数的平均数,以-1结束输入,且-1不纳入计算#include "stdio.h"int main(){int n=0;double a,sum=0;while(1){scanf("%lf",&a);if(a==-1) break;sum+=a;n++;}printf("%.2f\n",sum/n);return 0;}例5:打印出九九乘法口诀#include "stdio.h"int main(){int i,j;for (i=1;i<10;i++){ for(j=i;j<10;j++){printf("%dx%d=%-4d",i,j,i*j);}printf("\n");}return 0;}例6:大小写转换,以数字0结束输入#include "stdio.h"int main(){char ch;while(1){scanf("%c",&ch);if(ch=='0') break;if(ch>='A'&&ch<='Z')printf("%c\n",ch+32);if(ch>='a'&&ch<='z')printf("%c\n",ch-32);}return 0;}例7:打印菱形图案#include "stdio.h"int main(){int i,j,k;for (i=0;i<10;i++){for (j=0;j<=9-i;j++)printf(" ");for (k=0;k<=2*i;k++)printf("%c",3);printf("\n");}for (i=0;i<=9;i++){for (j=0;j<=i+1;j++)printf(" ");for (k=0;k<=16-2*i;k++)printf("%c",3);printf("\n");}return 0;}例8:求100以内所有的素数#include "stdio.h"#include "math.h"main(){int m,i,k,t=0,j=1,n=0;printf("%3d:",j);for (m=2;m<=300;m=m+1){k=(int)sqrt(m);for (i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);t++;if(t%4==0) printf("\n%3d:",++j);}}printf("\n");return 0;}例9:输出Fibonacci数列的前20项及其和(Fibonacci数列:1,1,2,3,5,8,13,21···)#include "stdio.h"int main(){int i,sum=0,f[20]={1,1};for (i=2;i<20;i=i+1)f[i]=f[i-1]+f[i-2];for (i=0;i<20;i=i+1){printf("%6d",f[i]);sum=sum+f[i];if ((i+1)%4==0) printf("\n");}printf("sum=%d\n",sum);return 0;}例10:输出各位数均不相同的三位数,及其个数#include "stdio.h"int main(){int n,i,j,k;n=0;for (i=1;i<=9;i++)for (k=1;k<=9;k++)if (k!=i)for (j=0;j<=9;j++)if(j!=i&&j!=k){n++;printf("%d ",100*i+10*j+k);if (n%10==0) printf("\n");}printf("\n");printf("共%d个数\n",n);return 0;}例11:输入一个数,求其阶乘#include "stdio.h"int main(){int i,s,n;printf("n=");scanf("%d",&n);i=1;s=2;while (i<=n){s=s*i;i=i+1;}printf("%d!=%d\n",n,s);return 0;}例12:将一个数分解质因数#include"stdio.h"int main(){int i,n;printf("please input numbers:\n");for(;;){scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){while(n!=1){if(n%i==0){ printf("%d*",i);n=n/i;}else break;}}if(n==1) printf("\b \n");else printf("%d\n",n);}return 0;}例13:汉诺塔游戏#include<stdio.h>void move(char a,char b){static int i=0;printf("%c-->%c %d\n",a,b,++i);}void hanoi(int m,char a,char b,char c){if(m==1) move(a,c);else{hanoi(m-1,a,c,b);move(a,c);hanoi(m-1,b,a,c);}}int main(){int m;printf("请输入方块数:");scanf("%d",&m);hanoi(m,'A','B','C');return 0;}例14:求一句话中单词的个数#include<stdio.h>int main(){char s[100],c;int i,temp=0,num=0;gets(s);for(i=0;(c=s[i])!='\0';i++){if (c==' ') temp=0;else if (temp==0){num=num+1;temp=1;}}printf("%d\n",num);return 0;}例15:水仙花数(三位数,各位数字的三次方之和等于该数)方法一:#include "stdio.h"int main(){int i,j,z,n;for (n=100;n<1000;n++){i=n/100;j=n/10-10*i;z=n%10;if(n==i*i*i+j*j*j+z*z*z)printf("%5d",n);}printf("\n");return 0;}方法二:#include"stdio.h"int main(){int i,j,k;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)printf("%4d",100*i+10*j+k);printf("\n");return 0;}例16:字符串b在字符串a中出现的次数,b中可以用“?”代替未知字母#include<stdio.h>#define N 1000int main(){int i,j,m,n,k,x=0;char a[N],b[N];gets(a);gets(b);for(i=0;a[i]!='\0';i++);for(j=0;b[j]!='\0';j++);m=i--;n=j--;for(i=0;i<=m-n+1;i++){k=0;for(j=0;j<n;j++)if(b[j]=='?') {k=1;continue;}else if(a[i+j]==b[j]) k=1;else k=0;if (k) x++;}printf("%d\n",x);return 0;}例17:冒泡排序#include "stdio.h"#define N 10int main(){int i,j,t,max,a[N]={1,1,2,3,15,28,133,21,34,777};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");for (i=0;i<N-1;i++)for (j=0;j<N-i-1;j++)if (a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("从小到大排序后的数组为:");for (i=0;i<N;i++);printf("%3d",a[i]);return 0;}例18:选择排序#include "stdio.h"#define N 10int main(){int i,t,j,max,a[N]={1,1,2,3,15,28,133,21,34,777};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");for (i=0;i<N-1;i++){t=i;for (j=i+1;i<N;j++)if (a[j]<a[t]) t=j;if (t!=i) {x=a[t];a[t]=a[i];a[i]=x;}}printf("从小到大排序的数组为:");for (i=0;i<N;i++)printf ("%d",a[i]);printf("\n");return 0;}例19:数组元素的插入#include "stdio.h"#define N 10int main(){int i,j,a[N]={1,1,2,3,15,28,133,21,34};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");printf("请输入要插入的下标位置(0-%d):",N-1);scanf("%d",&i);printf("请输入要插入的数:");scanf("%d\n",x);for (j=N-1;j>i;j--)a[j]=a[j-1];a[i]=x;printf("插入元素之后的数组为:");for (i=0;i<N;i++)printf("%4d",a[i]);printf("\n");return 0;}例20:数组元素的删除#include "stdio.h"#define N 10int main(){int i,j,a[N]={1,1,2,3,15,28,133,21,34,88};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");printf("请输入要删除的下标位置(0-%d)",N-1);scanf("%d",&i);for (j=i+1;j<N;j++)a[j-1]=a[j];printf("删除后的数组为:");for (i=0;i<N;i++)printf("%4d",a[i]);printf("\n");return 0;}例21:数组中的最大值#include "stdio.h"#define N 10int main(){int i,max,a[N]={1,1,2,3,15,28,133,21,34,777};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");max=a[0];for (i=1;i<N;i++)if (a[i]>=max) max=a[i];printf("数组的最大值是%d\n",max);return 0;}例22:数组中最大值的下标#include "stdio.h"#define N 10int main(){int i,max,a[N]={1,1,2,3,15,28,133,21,34,777};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");max=0;for (i=1;i<N;i++)if (a[i]>=a[max]) max=i;printf("数组的最大值的下标是%d\n",max);return 0;}例23:查找数组中特定的元素#include "stdio.h"#define N 10int main(){int i,j,t,a[N]={1,1,2,3,15,28,133,21,34,88};int x;printf("初始数组元素为:");for (i=0;i<N;i++)printf("%d ",a[i]);printf("\n");printf("请输入要查找的元素:");scanf("%d",&x);t=-1;for (i=0;i<N;i++)if (a[i]==x) t=i;if (t==-1) printf("数组中没有该数!\n");else printf("该数位于数组的第%d个下标\n",t);return 0;}。

C语言循环心形代码

C语言循环心形代码

C语言循环心形代码在C语言中,使用循环语句可以实现很多有趣的图形。

本文将介绍一个用循环语句实现的心形图案,代码非常简单,只有14行,但可以启迪大家利用循环语句实现更丰富的图形。

```c#include <stdio.h>代码中的核心思想是要把心形图案抽象成一个数学公式,然后通过嵌套循环逐渐绘制出来。

具体来说,我们可以通过改变(x,y)坐标系下的x和y的值来控制绘制的位置。

首先,我们需要明确一个数学公式:x2 + y2 − 1 = x3 − y3这个公式可以被转换为:接下来,我们将这个公式转化为代码:```cheart = ((x * x + y * y - 1)*(x * x + y * y - 1)*(x * x + y * y - 1) - x * x * y * y * y) / 1000000.0;```这里的heart代表心形图案中每一个点的值,根据这个值,我们可以判断它应该画上实心还是空心,这就是最后一个for循环用来完成的。

在这个循环中,首先从y=30开始,每一次循环减小一行,一直划到y=-30为止。

在每一行中,从x=-30开始,每一次循环增加一列,一直划到x=30为止,这样我们就可以在(-30,30)这个范围内绘制出整个心形图案。

在每一个坐标点上,我们需要计算出它对应的heart值。

如果这个值小于等于0.01,我们就画上一个实心的星号,否则就留空。

这里选择的0.01是一个适当的界限值,具体大家可以根据自己的喜好修改。

最后,我们可以运行程序,就可以得到一个漂亮的心形图案了。

输出结果:```**********************************************************************************************************************************************```此代码可以作为初学者用C语言练习循环语句的学习范例,同时也是一个很不错的创意实现。

一些简单的c语言程序代码

一些简单的c语言程序代码

由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。

/* expe 3-10 */#include <stdio.h>#include <math.h>void main(void){int mun,a,b,c,d;scanf("%d",&mun);a=mun / 1000; /*千位*/b=(mun % 1000) / 100; /*百位*/c=(mun % 100) / 10; /*十位*/d=(mun % 10); /*个位*/printf("千位数字为=%d\n",a);printf("百位数字为=%d\n",b);printf("十位数字为=%d\n",c);printf("个位数字为=%d\n",d);}由键盘任意输入3个数据,找出其中的最大数和最小数。

#include<stdio.h>void main(void){float a,b,c,k,g;/* k 小g 大*/printf ("请输入三个数");scanf("%f%f%f",&a,&b,&c);if (a < b){k = a;g = b;}else{k = b;g = a;}if (k < c)/*最小*/{ printf ("\n最小的数=%5.2f",k);}else{printf ("\n最小的数=%5.2f",c);}if (g > c)/*最大*/{printf ("\n最大的数=%5.2f",g);}else{printf ("\n最大的数=%5.2f",c);} }判断三角形的形状#include<stdio.h>#include<math.h>void main(void){printf("请输入三角形三边");float a,b,c,p,s,k1,k2,k3;scanf("%f%f%f",&a,&b,&c);while (a + b < c || b + c < a || a + c < b ){printf("不能构成三角形,请重新输入");scanf("%f%f%f",&a,&b,&c);}k1 = a * a;k2 = b * b;k3 = c * c;if (a == b && b == c && c ==a){printf("此三角形为等边三角形");}else if (a == b || b == c || c ==a){printf("此三角形为等腰三角形"); }else if ((k1 == b * b + c * c) || (k2 == a * a + c *c) || (k3 = a * a + b * b)){printf("此三角形为直角三角形");}else{printf("此三角形为一般三角形");} }九九乘法表整体#include <stdio.h>void main(void){int i,j;11for (i = 1;i < 10; i ++){for(j = 1;j < 10; j ++){printf("%5d",i * j);}printf("\n"); } }右半边#include <stdio.h>void main(void){int i,j;for (i = 1;i < 10; i ++){for(j = 1;j <= i; j ++){ printf("%5d",i * j);}printf("\n"); } }左半边#include <stdio.h>void main(void){int i,j;for (i = 1;i < 10;i ++)/*最外层循环*/ {for (j = 1;j < i; j++)/*打空格*/{ printf(" "); }for (j = 1;j <= 10 - i;j ++)/*计算*/{printf("%5d",j * i); }printf("\n"); } }打印菱形#include<stdio.h>void main(void){int i,j,k;for (i = 1;i <= 5;i ++){for (j = 0;j < 5 - i;j ++){printf(" ! "); }for (k = 1;k <= 2 * i - 1;k ++){printf(" * "); }printf("\n");}for (i = 4;i >= 0;i --){for (j = 4 - i;j > 0;j --){printf(" ! "); }for (k = 2 * i ;k >= 0;k --){ printf(" * ");}printf("\n"); } }找回文#include<stdio.h>#include<string.h>void main(void){char str[80];int i,j,iStrlenstr,iFlag;printf("请输入字符串\n");gets(str);iStrlenstr = strlen(str);for (i = 0 ,j = iStrlenstr - 1;i <= j ;i ++, j --){if (str[i] == str[j]){iFlag = 1; }else{iFlag = 0;break; }}if (iFlag == 1){printf("输入的是回文!\n"); }else{printf("输入的不是回文!\n"); }}找名字指针法/*不用查找函数,用指针的方法*/#include<stdio.h>void main(void)22{char str[10][80],a[80],*p[10],*q = NULL;int i, j,iFlag = 0;// int istrlenstr;printf("请输入名字\n");for ( i = 0 ; i < 10; i ++){gets(str[i]);}printf("请输入想查找的名字\n");gets(a);for (i = 0; i < 10; i ++){p[i] = str[i]; }q = a;for (i = 0; i < 10; i ++ ){iFlag = 0;j = 0;while(*(p[i] + j) && *(q + j)){if (*(p[i]+ j) != *(q + j)){break; }j++;}if (*(p[i] + j)== '\0' && *(q + j) == '\0'){ iFlag = 1;break; }}if (iFlag == 1)printf("FOUND ! 该名字的位置为%d",i);elseprintf("NOT FOUND !"); }/*利用指针给10个数排序*/#include<stdio.h>int main(void){int a[10],*p = NULL ,iTem;int i,j,iPos = 0;printf("请输入10个数\n");for (i = 0; i < 10; i ++){scanf("%d",&a[i]); }p = a;for(i = 0; i < 9; i ++){iPos = i;for (j = i + 1 ; j < 10 ;j ++){if (a[j]< a[iPos])iPos = j;}iTem = *(a + i);*(a + i) = *(a + iPos);*(a + iPos) = iTem;}printf("排序之后的为");for (i = 0; i < 10; i ++){printf("%4d",*(a + i)); }return 0; }/*名字排序,从大到小*/#include<stdio.h>#include<string.h>void main(void){char a[10][10],cTemp[10];int i,j,iMax;printf("输入十个学生姓名:\n");for(i = 0; i < 10; i ++){gets(a[i]);}for(i = 0;i < 10 ;i ++){iMax = i;for(j = i + 1;j < 10;j ++){if(strcmp(a[iMax],a[j]) < 0){iMax = j;}}33if(iMax != i){strcpy(cTemp,a[i]);strcpy(a[i],a[iMax]);strcpy(a[iMax],cTemp);}}printf("按照字典降序排序为:\n");for(i = 0;i < 10;i ++){puts(a[i]);} }/*查找并删除某字符*/#include<stdio.h>int main(){char str[80],*p = NULL,*q;char t;printf("请输入字符串:\n");gets(str);printf("请输入想要删除的字符:\n");t = getchar();p = str;q = str;for (p = str; *p != '\0'; p ++){if (*p != t){*q++ = *p; }}*q = '\0';puts(str);}函数作业(全部)/*交换器,引用全局变量*/方法一int a,b;void main(void){scanf("%d%d",&a,&b);fun();printf("a=%d,b=%d\n",a,b);}void fun(void){int c;c = a;a = b;b = c;}方法二#include<stdio.h>#define swap(x,y) {int tmp=x;x=y;y=tmp;}int main(){int x,y;printf("请输入两个数字\n");scanf("%d%d",&x,&y);swap(x,y);printf("交换之后的数字是\n");printf("%d\t%d\t",x,y);return 0;}/*用函数找最大公约数*/#include<stdio.h>int maxd(int,int);int main(){int a,b,d;printf("请输入两个整数\n");scanf("%d%d",&a,&b);d = maxd(a,b);printf("这两个数的最大公约数为:%d",d);return 0;}int maxd(int a,int b){int m,n,k;if(a<b)44{m = b;n = a;}else{m = a;n = b;}do{k = m%n;m = n;n = k;}while(n != 0);return(m);}/*用函数统计*/#include<stdio.h>int icount(char* );int main(){char str[80];int m = 0;printf("请输入字符串\n");gets(str);m = icount(str);printf("字符串中数字的个数有:%d",m);return 0;}int icount(char *p){int k = 0;while( *p != '/0'){if (*p >= '0' && *p <= '9')k ++;}return k;}/*排序函数*/#include<stdio.h>#include<string.h>void iSort (int[],int);int main(){int a[10];int i;printf("请输入10个整数\n");for (i = 0; i < 10 ; i ++){scanf("%d",&a[i]); }iSort(a,10);printf("从小到大排序为\n");for (i = 0; i < 10; i ++){ printf("%4d",a[i]); } }void iSort(int x[],int n){int i,j,t,iPos;for (i = 0; i < n - 1; i ++){iPos = i;for (j = i + 1; j < n; j ++){if (x[j] < x[iPos])iPos = j ;}if (iPos != i){t = x[i];x[i] = x[iPos];x[iPos] = t; } } }/*用函数找素数*/#include<stdio.h>int iPrime(int);int main(){int i,k = 0;55for (i = 1; i < 201; i += 2){k = iPrime(i);if (k == 1)printf("%d\n",i); } }int iPrime(int x){int a;for (a = 2; a <= x/2; a ++){if (x % a == 0)return 0;}return 1; }/*八进制转十进制*/#include<stdio.h>int iChange(char*);int main(){char s[10];int i,k;printf("请输入一个八进制的数");gets(s);k = iChange(s);printf("对应的十进制的数位=%d",k); }int iChange(char *x){char *p;int n = 0;p = x;for(;*p != '\0'; p ++){n = n * 8 + *p - '0'; } }/*用函数将矩阵转置规定是方阵*/#include<stdio.h>void change(int[][4]);int main(){int a[4][4],b[4][4]={0};int i,j;printf("请输入一个四阶矩阵\n");for (i = 0; i < 4; i ++){for (j = 0; j < 4 ;j ++){ scanf("%d",&a[i][j]); }}change(a);printf("转置过后的矩阵式\n");for (i = 0; i < 4; i ++){for (j = 0; j < 4 ;j ++){printf("%3d",a[i][j]);}printf("\n"); } }void change(int x[][4]){int i,j,t;for (i = 0;i < 4; i ++){for (j = 0; j < i; j ++){t = x[i][j];x[i][j] = x[j][i];x[j][i] = t; } } }/*判断是否是对称矩阵以4*4 的矩阵为例*/#include<stdio.h>int dui(int[][4]);int main(){int a[4][4],i,j,k = 0;printf("请输入一个四阶矩阵\n");for (i = 0; i < 4; i ++){66for (j = 0; j < 4 ;j ++){scanf("%d",&a[i][j]);}}k = dui(a);if (k == 1){printf("该矩阵为对称矩阵"); }else{printf("该矩阵不是对称阵");} }int dui(int x[][4]){int i,j,t = 0;for (i = 0;i < 4; i ++){for (j = 0; j < i; j ++){if (x[i][j] == x[j][i])t = 1;} }return t;}/*用函数求cos与sin*/#include<stdio.h>#include<math.h>float icos(float);float isin(float);int main() {float a,cosx,sinx;printf("请输入x\n");scanf("%f",&a);cosx = icos(a);sinx = isin(a);printf("cos(x)=%7.2f\n",cosx);printf("sin(x)=%7.2f\n",sinx);}float icos(float a){int n = 2;float t,k,fcos;k = 0;t = 1;do{t *= (-1) * a * a / (n *( n - 1));k += t;n += 2;}while (fabs(t) >= 1e-6);fcos = 1 + k;return fcos;}float isin(float a){float fsin;fsin=sqrt(1 - (double)icos(a) * (double)icos(a));return fsin;}/*int n = 3;float t,k,fsin;k = 0;t = 1;do{t *= (-1) * a * a / (n * (n - 1));k += t;n += 2;}while (fabs(t) >= 1e-6);fsin =1 + k;return fsin;*//*用函数分别统计26个字母的个数*/#include<stdio.h>void jishu(char str[]);int iCount1[26] = {0};void main(void){char str[80];77int i;printf("请输入字符串");gets(str);jishu(str);printf("26个大写字母的个数分别是\n");for (i = 0; i < 26; i ++){printf("%d\n",iCount1[i]);}}void jishu(char x[]){int i;for (i = 0; x[i] != '\0'; i ++){if (x[i] >= 'A' && x[i] <= 'Z'){iCount1[x[i] - 'A'] ++; } } }位运算/*地位字节按位取反*/#include<stdio.h>void main(void){unsigned int x;printf("请输入数据:");scanf("%d",&x);x = x ^ 0X00ff;printf("%x\n",x);} /*循环移位通过位或运算来实现循环的功能*/#include<stdio.h>void main(void){int a,n;printf("请输入一个整数:\n");scanf("%d",&a);printf("请输入移动的位数:\n");printf("注意:正数代表右移,负数代表左移");scanf("%d",&n);if(n > 0){a = ((a >> n) | (a << ((8 * sizeof(int)) - n)));//右移}if(n < 0){a = ((a << (- n)) | (a >> ((8 * sizeof(int)) - (-n))));//左移}printf("%u\n",a);}/*利用位异或运算加密*/#include<stdio.h>int main(){int stc,code,dst;dst = 0;//加密后code = 1234;//密码printf("请输入明文:\n");scanf("%d",&stc);dst = stc ^ code;printf("\n加密之后的文件是:%d\n",dst);return 0;}/*偶数为清零*/#include<stdio.h>void main(void){int a;printf("请输入");scanf("%d",&a);a = a & 0x5555;printf("%x\n",a);}/*十六进制转二进制*/#include<stdio.h>void main(void){int a,b[32],c = 1,i;scanf("%x",&a);for(i = 0; i < 32; i ++){88b[i] = (a & c) >> i;c <<= 1;}for(i = 31; i >= 0; i --){ printf("%d",b[i]); } }员工工资#include<stdio.h>#define N 1struct man{long ch;char nam[10];int year;float fareJB;float fareYJ;float fareYF;float fareBX;float fareSD;float fareSF;};void fare(struct man *p) {struct man *q;for(q=p;q<p+N;q++){q->fareYF=p->fareJB+p->fareYJ;q->fareSF=q->fareYF-q->fareBX-q->fareSD;}for(q=p;q<p+N;q++){printf("应发工资\t实发工资\n");printf("%5.2f\t%5.2f\n",q->fareYF,q->fareSF);} }void PRINTF(struct man *p){struct man *q=p;printf("职工工号\t姓名\t年龄\t基本工资\t业绩工资\t应发工资\t保险费\t\t水电费\t实发工资\t\n");for(q=p;q<p+N;q++){printf("%8d%10s\t%d\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t",q->ch,q->nam,q->year,q->fareJB,q->fareYJ,q->fareYF,q->fareBX,q->fareSD,q->fareSF);} }void main(void){struct man person[N],*per;printf("输入员工信息");for(per=person;per<person+N;per++){gets(per->nam);scanf("%d%d%f%f%f%f",&per->ch,&per->year,&per->fareJB,&per->fareYJ,&per->fareBX,&per->fareSD);}fare(person);PRINTF(person);}部门销售情况管理程序#include<stdio.h>#define N 1struct bumen{long num;char name[20];float get[4];float ave;}a[N];void chazhao(struct bumen *p){long NUM;int i;printf("输入要查找的部门的代码:");scanf("%ld",&NUM);99printf("\n");for(i=0;i<N;i++){if((p+i)->num==NUM){break;}}printf("部门代码\t部门名称\t春季销售额\t 夏季销售额\t秋季销售额\t冬季销售额\t平均值\n");printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2 lf\t%8.2lf\t%8.2lf\t\n",p->num,p->name,p->get[0],p->get[1],p->get[2],p->get[3],p->ave);}void qiuave(struct bumen *p){int i,j;float sum=0;for(i=0;i<N;i++){for(j=0;j<4;j++){sum=sum+p[i].get[j];}p[i].ave=sum/4;} } void order(struct bumen *p){struct bumen *min,P;int i,j,k;for(i=0;i<N-1;i++){min=&p[i];for(j=i+1;j<N;j++){if(p[j].ave<min->ave)min=&p[j];}P=p[i];p[i]=*min;*min=P;}printf("部门代码\t部门名称\t春季销售额\t夏季销售额\t秋季销售额\t冬季销售额\t平均值\n");for(k=0;k<N;k++){printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2lf\t%8.2lf\t%8.2lf\t\n",p[k].num,p[k].name,p[k].get[0],p[k].get[1],p[k].get[2],p[k].get[3],p[k].ave);}}void main(void){int i,j,n,x;float t;printf("输入部门数据");for(i=0;i<N;i++){scanf("%ld",&a[i].num);scanf("%s",&a[i].name);for(j=0;j<4;j++){scanf("%f",&t);a[i].get[j]=t;}}printf("1.输入部门代码或部门名称,查找此部门的销售情况\n2.计算各部门的平均销售额。

C语言代码大全

C语言代码大全

C语言代码大全C语言是一种高级程序设计语言,广泛应用于计算机科学和软件开发领域。

它以其简洁、高效的特点而备受青睐。

本文将为您介绍一些常用的C语言代码,包括输入输出、流程控制、函数调用、数据结构等方面的代码示例。

一、输入输出1. 标准输入输出```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的数字是:%d\n", num);return 0;}```2. 文件读写```cint main() {FILE *file;char str[100];// 写入文件file = fopen("data.txt", "w");fprintf(file, "Hello, World!");fclose(file);// 读取文件file = fopen("data.txt", "r");fscanf(file, "%s", str);printf("从文件中读取的内容是:%s\n", str); fclose(file);return 0;}```二、流程控制1. 条件语句```cint main() {int num = 10;if (num > 0) {printf("该数字是正数。

\n"); } else if (num < 0) {printf("该数字是负数。

\n"); } else {printf("该数字是零。

\n"); }return 0;}```2. 循环语句```c#include <stdio.h>int main() {int num = 5;// while循环while (num > 0) {printf("当前数字:%d\n", num); num--;}// for循环for (int i = 0; i < 5; i++) {printf("当前数字:%d\n", i);}// do-while循环do {printf("当前数字:%d\n", num); num++;} while (num < 5);return 0;}```三、函数调用```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int num1 = 5;int num2 = 3;int result = add(num1, num2);printf("两个数的和为:%d\n", result); return 0;}```四、数据结构1. 数组```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {printf("数组元素:%d\n", arr[i]); }return 0;}```2. 结构体```c#include <stdio.h>struct Student {char name[20];int age;};int main() {struct Student stu1;strcpy(, "Tom");stu1.age = 18;printf("学生姓名:%s\n", ); printf("学生年龄:%d\n", stu1.age); return 0;}```以上只是C语言代码中的一小部分示例,C语言是一门非常庞大的编程语言,拥有众多的功能和特性。

c语言有趣的代码

c语言有趣的代码

c语言有趣的代码C语言是一种强大的编程语言,是许多程序员都必须要掌握的语言之一。

对于那些想要深入学习和掌握C语言的人来说,掌握一些有趣的代码可以是很有帮助的。

本文将介绍一些有趣的C语言代码,这些代码涉及到各种程序设计的领域,从简单的算术操作到复杂的图形和游戏。

1. 打印正弦函数要在C语言中打印正弦函数可以使用数学库函数sin()。

以下是一个简单示例,它将打印出正弦函数的值:#include <stdio.h> #include <math.h>int main() { double angle; double result;// Loop through the angle 0 to 360 degrees, in increments of 10 for (angle = 0.0; angle <= 360.0; angle += 10.0) { result =sin(angle * M_PI / 180.0); // Convert angle to radiansprintf("sin(%f) = %f\n", angle, result); }return 0; }在这个示例中,我们循环从0°到360°,每次以10°的步长递增,并使用sin()函数计算相应角度的正弦。

我们将角度从度数转换为弧度以便计算,然后打印出结果。

2. 凯撒密码凯撒密码是一种简单的置换密码,它将明文中的每个字母替换为一个固定的、用于加密的字母。

这个加密算法可以使用C语言非常容易地实现。

以下是一个示例,它将使用凯撒密码加密输入的字符串:#include <stdio.h>int main() { char str[100]; int key;printf("Enter a string to encrypt: ");gets(str);printf("Enter a key: "); scanf("%d",&key);for (int i = 0; str[i] != '\0'; i++){ if (str[i] >= 'a' && str[i] <= 'z') str[i] = (str[i] - 'a' + key) % 26 + 'a';else if (str[i] >= 'A' && str[i] <= 'Z')str[i] = (str[i] - 'A' + key) % 26 + 'A'; }printf("Encrypted string: %s\n", str);return 0; }在这个示例中,我们首先要求用户提供要加密的字符串和一个密钥。

c语言18个经典程序

c语言18个经典程序

c语言18个经典程序1. Hello, World! - 这是经典的C语言第一个程序,用于输出"Hello, World!"。

2. 求两个整数的和 - 用户输入两个整数,程序将计算并输出它们的和。

3. 判断一个数是奇数还是偶数 - 用户输入一个整数,程序将判断并输出该数是奇数还是偶数。

4. 求一个数的平方 - 用户输入一个数,程序将计算并输出该数的平方。

5. 求两个数的最大公约数 - 用户输入两个整数,程序将计算并输出它们的最大公约数。

6. 判断一个数是否为质数 - 用户输入一个正整数,程序将判断并输出该数是否为质数。

7. 求一个数的阶乘 - 用户输入一个正整数,程序将计算并输出该数的阶乘。

8. 生成斐波那契数列 - 用户输入一个正整数n,程序将生成并输出前n个斐波那契数。

9. 判断一个数是否为完全数 - 用户输入一个正整数,程序将判断并输出该数是否为完全数。

10. 判断一个字符串是否为回文字符串 - 用户输入一个字符串,程序将判断并输出该字符串是否为回文字符串。

11. 求一个数的倒数 - 用户输入一个非零实数,程序将计算并输出该数的倒数。

12. 求两个数的最小公倍数 - 用户输入两个正整数,程序将计算并输出它们的最小公倍数。

13. 判断一个年份是否为闰年 - 用户输入一个年份,程序将判断并输出该年份是否为闰年。

14. 生成九九乘法表 - 程序将生成并输出九九乘法表。

15. 判断一个数是否为负数、零或正数 - 用户输入一个实数,程序将判断并输出该数是负数、零还是正数。

16. 判断一个数是否为偶数的平方 - 用户输入一个整数,程序将判断并输出该数是否为偶数的平方。

17. 判断一个数是否为回文数 - 用户输入一个正整数,程序将判断并输出该数是否为回文数。

18. 判断一个字符串是否为回文句子 - 用户输入一个句子,程序将判断并输出该句子是否为回文句子。

这些经典的C语言程序涵盖了基本的输入输出、数学运算、条件判断、循环、字符串处理等方面的知识点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

几个简单有趣的c语言代码
一、引言
程序设计语言是计算机语言的一种,用于定义和编写计算机程序。

C语言是一种高级程序设计语言,由AT&T贝尔实验室的Dennis M. Ritchie于1972年开发。

C语言在软件开发中得到广泛应用,因其灵活性、效率和可移植性而备受开发人员的喜爱。

本篇文章将介绍几个简单有趣的C语言代码,用以展示C语言的魅力和应用。

二、Hello World
1. 代码
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
2. 解析
这是C语言中最简单的程序,用于输出”Hello, World!“。

在代码中,printf函数用于打印消息到控制台,return 0表示程序正常执行结束。

编译并运行该程序,控制台将输出”Hello, World!“。

三、猜数字游戏
1. 代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int secretNumber, guess, attempts = 0;
srand(time(0));
secretNumber = rand() % 100 + 1;
printf("猜数字游戏开始!\n");
do {
printf("请输入一个猜测的数字:");
scanf("%d", &guess);
attempts++;
if (guess > secretNumber) {
printf("太大了!\n");
} else if (guess < secretNumber) {
printf("太小了!\n");
} else {
printf("恭喜你猜对了!你用了 %d 次尝试。

\n", attempts);
}
} while (guess != secretNumber);
return 0;
}
2. 解析
这个程序实现了一个猜数字游戏。

程序会在1到100之间生成一个随机数,并要求玩家猜这个数是多少。

玩家每次猜测后,程序会告诉他们猜的数字是太大了还是太小了,直到玩家猜对为止。

在代码中,srand(time(0))用于种下随机数种子,
rand() % 100 + 1用于生成1到100之间的随机数,scanf("%d", &guess)用于接收玩家的输入。

玩家猜对后,程序会输出玩家使用的尝试次数。

四、计算器
1. 代码
#include <stdio.h>
int main() {
char operator;
double num1, num2, result;
printf("请输入运算符(+、-、*、/):");
scanf("%c", &operator);
printf("请输入两个数字:");
scanf("%lf %lf", &num1, &num2);
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
printf("无效的运算符。

\n");
return 1;
}
printf("结果:%lf\n", result);
return 0;
}
2. 解析
这个程序实现了一个简单的计算器。

程序要求用户输入一个运算符(如+、-、*、/)和两个数字,然后根据用户的选择计算并输出结果。

在代码中,scanf函数用于接
收用户的输入,switch语句根据用户输入的运算符执行相应的计算。

最后,程序会输出结果。

五、字符串反转
1. 代码
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("反转后的字符串:");
for (int i = strlen(str) - 1; i >= 0; i--) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
2. 解析
这个程序实现了一个字符串反转功能。

程序要求用户输入一个字符串,然后使用循环从字符串的末尾开始逐个打印字符,实现字符串的反转。

在代码中,strlen函数用于获取字符串的长度,scanf函数用于接收用户的输入,for循环用于逆序打印
字符串中的字符。

最后,程序会输出反转后的字符串。

结论
本文介绍了几个简单有趣的C语言代码,展示了C语言的用途和特性。

通过Hello World程序,读者了解了C语言的基础语法和程序结构。

通过猜数字游戏,读者了
解了如何使用随机数和循环,实现一个简单的游戏。

通过计算器和字符串反转程序,读者了解了如何使用条件语句和字符串处理函数来解决实际问题。

这些例子只是C
语言应用的冰山一角,读者可以进一步深入学习C语言,发掘更多有趣的代码和项目。

相关文档
最新文档