1、C语言周六一/*编写函数fun(n),n为三位自然数,判断n是否为水仙花数*/#include #include int fun(int n)int a,b,c; a=n%10; b=n/10%10; c=n/100; if(a*a*a+b*b*b+c*c*c=n) return 1; else return 0; void main() int num; clrscr(); scanf(%d,&num); while(num=1000) printf(please enter the num again! (num=100&num1000) n); scanf(%d,&num); if(fu
2、n(num)=1) printf( %d is a sxhs.n,num); else printf( %d is not a sxhs.n,num); getch(); /* 输出杨辉三角形#include stdio.h#include conio.h#define N 10main() int i,j; int aNN; for(i=0;iN;i+) for(j=0;j=i;j+) if (j=i|j=0) aij=1; else aij=ai-1j-1+ai-1j; for(i=0;iN;i+) for(j=0;j=i;j+) printf(%6d,aij); printf(n); g
3、etch();*/* 输入一个年份和月份并输出年和这个月份的天数#include stdio.h#include conio.hint iMaxDay(int iYear,int iMonth);int iMaxDay(int iYear,int iMonth) int a12=31,0,31,30,31,30,31,31,30,31,30,31; a1=28+(iYear%4&iYear%100!=0|iYear%400=0); return aiMonth-1; main() int iYear,iMonth; scanf(%d,%d,&iYear,&iMonth); printf(%dt
4、%d,iYear,iMaxDay(iYear,iMonth); getch();*/* 在一个一维数组中求众数 */#include #include #include main() int a100,i,j,t,cnt,t1,cnt1; randomize(); for(i=0;i100;i+) ai=rand(); for(i=0;i100;i+) printf(%8d,ai); printf(*); printf(*); /* 选择法排序*/ for(i=0;i=98;i+) for(j=i+1;jaj) t=ai;ai=aj;aj=t; /* 冒泡法排序 for(i=1;i=i;j-)
5、 if(ajaj-1) t=aj,aj=aj-1,aj-1=t;*/for(i=0;i100;i+) printf(%8d,ai); printf(*); printf(*); t=a0;cnt=1; for(i=0;i100;i+) t1=ai;cnt1=1; for(j=i+1;jcnt) t=t1,cnt=cnt1; if(cnt=1) printf(not); else printf(%dt%d,cnt,t); getch(); /*编写一个函数fun(n),计算n!*/#include #include long fun(int n) long s=1; int i; for(i=1
6、;i0) printf(%d!=%ld n,num,fun(num); else printf(input data error! n); getch(); /*使用递归函数实现计算n!*/#include #include long fun(int n) long f; if(n=1|n=0) f=1; else f=n*fun(n-1); return f; void main() int num; clrscr(); scanf(%d,&num); if(num0) printf(%d!=%ld n,num,/*/ fun(num) /*/); else printf(input dat
7、a error! n); getch();某数列为K(n)的定义为: 1 n=1 k(n)= k(n-1)2 n为偶数 k(n-1)3 n为奇数用递归的方法求该数列的第6项k(6)。#include #include int k(int n)int c; if(n=1) c=1; else if(n%2=0) c=k(n-1)*2; else c=k(n-1)*3; return c;void main()int m; clrscr(); scanf(%d,&m); if(m=1) printf(k(%d)=%dn,m,/*/ k(m) /*/); else printf(input data
8、 error!n);计算s=(1!)+(1!+2!)+(1!+n!)。 n由用户输入,小于10。(设计:函数h1(n)计算n的阶乘;函数h2(m)计算1!+2!+m!的累加运算。在主函数中调用h2()函数,h2()函数中调用h1()函数来实现累加。)#include #include long h1(int n)long t=1;int i; for(i=1;i=n;i+) t=t*i; return t;long h2(int m)long s=0;int i; for(i=1;i=m;i+) s=s+h1(i); return s;void main()int k,num;long sum
9、=0; scanf(%d,&num); for(k=1;k=num;k+) /*/ sum=sum+h2(k) /*/; printf(1!)+(1!+2!)+.+(1!+2!+.+%d!)=%ldn,num,/*/ sum /*/);设计一个函数fc,其功能为统计数组中偶数的个数。编写main函数,用数组名num做为函数传递的参数调用fc函数,实现对数组num的统计,并输出统计结果。#include stdio.hint fc(int a,int n)int i,c=0; for(i=0;in;i+) if(ai%2=0) c=c+1; return(c);main()int i,num10
10、; for(i=0;i10;i+) scanf(%d,&numi); printf(oushu: %d n,fc(num,10); printf(jishu: %d n,10-fc(num,10);在一个一维数组a中存放10个正整数, 求其中所有的素数。(用数组元素作为函数的实际参数)质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。int sushu(int x) int i,k=1; if(x=1) k=0; for
11、(i=2;i=x/2;i+) if(x%i=0) k=0; return(k); main( ) int a10,i; for(i=0;i10;i+) scanf(%d,&ai); printf(sushu of array a are:n); for(i=0;i10;i+) if(sushu(ai) printf(%5d,ai);printf(n); 设计一个函数,计算两个自然数的最大公约数#include “stdio.h”int gcd(int m,int n)int r ; r=m%n; while(r!=0) m=n ; n=r ; r=m%n; return n;main()int
12、 m,n; scanf(%d,%d,&m,&n); printf(%dn,gcd(m,n);设计一个函数float ave(int a10),计算数组a所有元素的平均值。(用数组名作为函数的实际参数)float ave(int a10)int i,sum=a0 ; float aver; for(i=1;i10;i+) sum=sum+ai ; aver=1.0*sum/10 ; return(aver); void main() int i,score10; float aver; for(i=0;i10;i+) scanf(%d,&scorei); printf(n); aver=ave(
13、score); printf(average score is %5.2fn,aver); 用选择法对数组中10个整数按升序排序 。(要求将排序功能设计成函数,数组名作为参数)。void sort(int array,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrayjarrayk) k=j; t=arrayk;arrayk=arrayi;arrayi=t;void main() int a10,i; printf(input the array:n); for(i=0;i10;i+) scanf(%d,&ai
14、); sort(a,10);printf(output the array after ordered:n); for(i=0;i10;i+) printf(%5d,ai);printf(n);设有一个34的矩阵,求出其中的最大元素。(要求:将计算最大值的功能设计成函数,数组名作为参数)max_value(int array12)int i,max; max=array0; for(i=0;imax) max=arrayi; return(max);main()int a34=1,3,5,7,2,4,6,8,15,17,34,12; printf(max=%dn,max_value(a);设计
15、一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。#include main() int inverse (char str); /*函数原型声明*/char str100;printf(Input string:n);gets(str);inverse(str);printf(Output string after inverse:n);puts(str);int inverse(char st) /* 函数定义*/char t; int i,j;for(i=0,j=strlen(st);istrlen(st)/2;i+,j-) t=sti; sti=stj-1; stj-
16、1=t; 设计一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。#include main()char str80;void insert(char str );printf(nInput four digits:n);gets(str);insert(str);printf(nOutput digits after insert space:n);puts(str);void insert(char str)int i; for (i=strlen(str);i0;i-) str2*i=stri; str2*i-1= ;使
17、用局部静态变量,求1到5的阶乘int fac(int n)static int f=1; f=f*n; return f;main()int i; for(i=1;i=5;i+) printf(%d!=%dn,i,fac(i);编写一个程序,在主函数中输入10个等长的字符串。用另一个函数sort()对它们排序,函数sort()原型为:void sort(char (*s)6);,要求形参是指向由6个元素组成的一维数组的行指针,然后在主函数输出这10个已排好的字符串。#include #include main()void sort(char (*s)6); int i; char str106
18、;char (*p)6; printf(Input 10 strings:n); for(i=0;i10;i+) scanf(%s,stri); p=str; sort(p); printf(Now, the sequence is:n); for(i=0;i10;i+) printf(%sn,stri);void sort(char (*s)6) /*冒泡法对10个字符串排序的函数*/ int i,j; char *t,temp6; t=temp; for(i=0;i9;i+) for(j=0;j0 ) strcpy(t,sj); strcpy(sj,sj+1); strcpy(sj+1,t
19、);运行结果:Input 10 strings: ChinaJapanKoreaEgyptNepalBurmaGhanaSudanItalyLibyaNow, the sequence is:BurmaChinaEgyptGhanaItalyJapanKoreaLibyaNepalSudan编写一个程序,在主函数中输入10个不等长的字符串。用另一个函数sort()对它们排序,函数sort()原型为:void sort(char *p6);,要求用指针数组处理,然后在主函数输出这10个已排好的字符串#include #include main()void sort(char *p); int i
20、; char *s10,str1020; for(i=0;i10;i+) si=stri; /*将第i个字符串的首地址赋予指针数组p的第i个元素*/ printf(Input 10 strings:n); for(i=0;i10;i+) scanf(%s,si); sort(s); printf(Now, the sequence is:n); for(i=0;i10;i+) printf(%sn,si);void sort(char *p) /*冒泡法对10个字符串排序的函数*/int i,j; char *temp; for(i=0;i9;i+) for(j=0;j0) temp=*(p+
21、j); *(p+j)=*(p+j+1); *(p+j+1)=temp;运行情况如下:Input 10 strings:ChinaJapanYemenPakistanMexicoKoreaBrazilIcelandCanadaMongoliaNow, the sequence is:BrazilCanadaChinaIcelandJapanKoreaMexicoMongoliaPakistanYemen编写一个程序,用指向指针的指针的方法对5个字符串排序并输出。自定义函数sort()的原型为:void sort(char *p);。#include #define LINEMAX 20 /*定义
22、字符串的最大长度*/main()void sort(char *p); int i; char *p,*pstr5,str5LINEMAX; for(i=0;i5;i+) pstri=stri; /*将第i个字符串首地址赋予指针数组pstr的第i个元素*/ printf(Input 5 strings:n); for(i=0;i5;i+) scanf(%s,pstri); p=pstr; sort(p); printf(strings sorted:n); for(i=0;i5;i+) printf(%sn,pstri);void sort(char *p) /*选择法对5个字符串排序的函数*
23、/int i,j; char *temp; for(i=0;i4;i+) for(j=i+1;j0) /*比较后交换字符串地址*/ temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp;运行情况如下:Input 5 strings:ChinaAmericaIndiaPhilippinesCanadastrings sorted:AmericaCanadaChinaIndiaPhilippines编写一个程序,用指向指针的指针的方法对n个整数排序并输出。要求写一个自定义函数sort(),其原型为:void sort(int *p,int n);n和整数在主函数中输入。排
24、序后结果最后在主函数中输出。#include main()void sort(int *p,int n); int i,n,data10,*p,*pstr10; printf(Input n: ); scanf(%d,&n); for(i=0;in;i+) pstri=&datai; /*将第i个整数的地址赋予指针数组pstr的第i个元素*/ printf(Input %d integer numbers:n,n); for(i=0;in;i+) scanf(%d,pstri); p=pstr; sort(p,n); printf(Now, the sequence is:n); for(i=0;in;i+) printf(%d ,*pstri); printf(n);void sort(int *p,int n) /*选择法对n个整数排序的函数*/int i,j,*temp; for(i=0;in-1;i+) for(j=i+1;j*(p+j) /*比较后交换整数的地址*/ temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1