1.编写一个函数,可以算出 任意两个整数的和,并返回相应的结果
#include<stdio.h> int add(int a,int b); int main() { int a,b,sum; printf("输入两个任意的整数:"); scanf("%d %d",&a,&b); sum=add(a,b); printf("sum=%d\n",sum); return 0; } int add(int a,int b) { return a+b; }
2. 编写一个函数可以求出任意三个整数之中的最大值,并返回其最大值
#include<stdio.h> int compare(int a,int b,int c); int main() { int a,b,c,max; printf("请你输入三个数:"); scanf("%d %d %d",&a,&b,&c) ; max=compare(a,b,c); printf("max=%d",max); return 0; } int compare(int a,int b,int c) { int max =a; if(b>max) { max=b; } if(c>max) { max=c; } return max; }
3.编写一个函数,可以实现给出算数运算的功能,给出两个值以及算数运算符号可以算出相应的结果
#include<stdio.h> int math(int a,int b,char c); int main() { int a,b,c,sum; printf("请输入计算公式:"); scanf("%d%c%d",&a,&c,&b); sum=math(a,b,c); printf("sum=%d\n",sum); return 0; } int math(int a,int b,char c) { int sum; switch(c) { case '+':sum=a+b;break; case '-':sum=a-b;break; case '*':sum=a*b;break; case '/':sum=a/b;break; case '%':sum=a%b;break; default:break; } return sum; }
4.编写一个函数,判断是不是素数,是的话返回1,不是就返回0
#include<stdio.h> #include<math.h> int isprime(int n); int main() { int n; printf("请输入一个整数:"); scanf("%d",&n); printf("%d\n",isprime(n)); return 0; } int isprime(int n) { int i; for(i=2;i<=sqrt(n);i++)//sqrt开方函数 { if(n%i==0) { return 0; } } return 1; }
5.编写一个函数实现求数组的总和
#include<stdio.h> int add(int a[],int n); int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int sum; sum=add(a,10); printf("sum=%d",sum); return 0; } int add(int a[],int n) { int i,sum=0; for(i=0;i<10;i++) { sum+=sum[i]; } return sum; }
6.编写一个函数,实现冒泡排序的功能
#include<stdio.h> int bubble(int a[],int n); int main() { int i;,j,temp; int a[10]={3,45,77,2,23,12,21,19,99,10}; bubble(a,10); for(i=1;;i<n;i++) { printf("排序后的结果:%d\n",a[i]); } return 0; } int bubble(int a[],int n) { int i,j,temp; for(i=1;j<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
7.编写一个函数,实现输入一个字符串,可以求出字符串当中的大写、小写、数字、空格以及其他的字符
#include<stdio.h> #include<math.h> int count(char str[],int a[]); int main() { char str[50]; int a[5]={0}; printf("请你输入一个字符串:"); gets(str); count(str,a) ; printf("大写:%d\n",a[0]); printf("小写:%d\n",a[1]); printf("数字:%d\n",a[2]); printf("空格:%d\n",a[3]); printf("其他:%d\n",a[4]); return 0; } int count(char str[],int a[]) { int i=0; while(str[i]!='\0') { if(str[i]>='A'&&str[i]<='Z') { a[0]++; } else if(str[i]>='a'&&str[i]<='z') { a[1]++; } else if(str[i]>='0'&&str[i]<='9') { a[2]++; } else if(str[i]==' ') { a[3]++; } else { a[4]++ } i++;//下标加一,为的是检测到下一个字符 } }
8.编写一个函数(int strlrn(char str[])),实现字符串长度的求取
#include<stdio.h> int strlen(char str[]); int main() { char str[50]; printf("请输入一个字符串:"); gets(str); printf("%d\n",strlen(str)); return 0; } int strlen(char str[]) { int i=0; while(str[i]!='\0') { i++; //下标自增 } return i; }
9.编写一个函数void strlwr(char str[]),实现字符串小写变大写的功能
#include<stdio.h> void strlwr(char str[]); int main() { char str[50]; printf("请输入一个字符串:"); gets(str); strlwr(str); printf("%s\n",str); return 0; } void strlwr(char str[]) { int i=0; while(str[i]!='\0') { if(str[i]>='A'&& str[i]<='Z') { str[i]=str[i]+32; //小写转换大写 } i++; //下标自增 } }
10.编写一个函数void strupr(char str[]),实现字符串小写变大写功能
#include<stdio.h> void strupr(char str[]); int main() { char str[50]; printf("请输入一个字符串:"); gets(str); strupr(str); printf("%s\n",str); return 0; } void strupr(char str[]) { int i=0; while(str[i]!='\0') { if(str[i]>='a'&& str[i]<='z') { str[i]=str[i]-32; //小写转换大写 } i++; //下标自增 } }
11.编写一个函数void strcpy(char to[],char from[]),实现字符串复制功能
#include<stdio.h> void strcpy(char to[],char from[]); //字符串复制函数 int main() { char str[50],a[50]; printf("请输入一个字符串:"); gets(a); strcpy(str,a); printf("%s\n",str); return 0; } void strcpy(char to[],char from[]) { int i=0; while(from[i]!='\0') { to[i]=from[i]; i++; //下标自增 } to[i]='\0';//代表字符结束 }
12.编写一个函数void strcat(char str1[],char str2[]),实现字符串连接功能
#include<stdio.h> void strcat(char str1[],char str2[]);//字符串连接函数 int main() { char str[50],a[50]; printf("请输入一个字符串a:"); gets(a); printf("请输入一个字符串str:"); gets(str); strcat(str,a); printf("%s\n",str); return 0; } void strcat(char str1[],char str2[]) { int i=0,j=0; while(str1[i++]!='\0'); --i; //下标i多增加了一次 while(str2[j]!='\0') { str1[i++]=str2[j++]; } str1[i]='\0';//代表字符结束 }
13.编写一个函数int strcmp(char str1[],char str2[]),实现字符串比较功能
#include<stdio.h> int strcmp(char str1[],char str2[]);//字符串比较函数 int main() { char str[50],a[50]; printf("请输入字符串a:"); gets(a); printf("请输入字符串str:"); gets(str); printf("%d\n",strcmp(str,a)); return 0; } int strcmp(char str1[],char str2[]) { int i=0; while(str1[i]!='\0' || str2[i]!='\0')//只要有一个还没有结束 { if(str1[i]>str2[i]) { return 1; //只要比出结果就结束函数 } if(str1[i]<str2[i]) { return -1; } i++; //没有比出结果继续比下一位 } return 0; //走到这代表相等 }
14.编写一个函数convent,求一个4*4方阵的转置矩阵;主函数中输入方阵,在主函数中将原矩阵和转置矩阵按格式输出
#include<stdio.h> void convert(int [][4]); void display(int a[][4]); int main() { int a[4][4],i,j; printf("请输入矩阵的元素值:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } } printf("原矩阵为:\n"); display(a); //调用显示函数 convert(a); //调用转置函数 printf("转置矩阵为:\n"); display(a);//调用显示函数 return 0; } void convert(int a[][4]) { int i,j,t; for(i=0;i<4;i++) { for(j=i+1;j<4;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } } } void display(int a[][4]) { int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("%5d",a[i][j]); } printf("\n"); } }
15.编写一个函数可以求出任意整数的质数,并输出因子的乘积表示格式:12=2*2*3
#include<stdio.h> void number(int n); int main() { int n; printf("请输入一个整数:"); scanf("%d",&n); number(n); return 0; } void number(int n) { int temp=n; int i,j=0,a[20]={0}; for(i=2;i<=n;i++) { if(n%i==0) { a[j++]=i; n=n/i; //去掉这一部分 i=1; //重新从1开始判断 } } printf("%d=%d",temp,a[0]); for(i=1;i<j;i++) { printf("*%d",a[i]); } printf("\n"); }
16.编写一个函数可以求出整数的位数
#include<stdio.h> int bitNumber(int n); int main() { int n; printf("请输入一个整数:"); scanf("%d",&n); printf("位数:%d\n",bitNumber(n)); return 0; } int bitNumber(int n) { int i=0; if(n<0) { n=-n; } while(n>0) { n/=10; i++; } return i; }