1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并且输出结果,两个整数由键盘输入
#include<stdio.h>
int main(){
int f1(int x,int y);
int f2(int x,int y,int z);
int x,y,z,m;
scanf("%d %d",&x,&y);
z=f1(x,y);
printf("最大公约数是:%d\n",z);
m=f2(x,y,z);
printf("最大公倍数是:%d\n",m);
}
int f1(int x,int y){
int z;
z=x%y;
while(z!=0){
x=y;
y=z;
z=x%y;
}
return y;
}
int f2(int x,int y,int z){
int m;
m=x*y/z;
return m;
}
2.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息
//使用函数哦判断是不是素数
#include<stdio.h>
int main(){
int prime_number(int n);
int number;
scanf("%d",&number);
int ret= prime_number(number);
if(ret==1)printf("yes");
else printf("no");
}
int prime_number(int n){
int ret=0,i;
for(i=2;i<n;i++){
if(n%i==0)break;
}
if(i>=n) ret=1;
return ret;
}
3.写一个函数,打印3X3的二维数组转置
/数组转置
#include<stdio.h>
int main(){
void zhuanzhi(int a[3][3]);
int a[3][3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
scanf("%d",&a[i][j]);
zhuanzhi(a);
}
void zhuanzhi(int a[3][3]){
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d ",a[j][i]);}
printf("\n");}
}
4.写一个函数,使两个 字符串连接
#include<stdio.h>
#include<string.h>
int main(){
char f(char a[100],char b[100]);
char a[100];
char b[100];
gets(a);
gets(b);
f(a,b);
puts(a);
}
char f(char a[100],char b[100]){
strcat(a,b);
return a[100];
}
5.写一个函数,使得输入的字符串按照反序方式存放,在主函数输入和输出。
#include<stdio.h>
#include<string.h>
int main(){
char f(char a[100]);
char a[100];
gets(a);
f(a);
puts(a);
}
char f(char a[100]){
for(int i=0;i<strlen(a)/2;i++){
char m;
m=a[strlen(a)-1-i];
a[strlen(a)-1-i]=a[i];
a[i]=m;
}
return a[100];
}
6汉诺塔问题
#include<stdio.h>
void move(char a,char b){
printf("%c -> %c\n", a, b);
}
void Hanoi(int n,char A,char B,char C){
if(n==1)
move(A,C);
else{
Hanoi(n-1,A,C,B);
move(A,C);
Hanoi(n-1,B,A,C);
}
}
int main(){
int n;
scanf("%d",&n);
char A='A';
char B='B';
char C='C';
Hanoi(n,A,B,C);
return 0;
}
7.将一个字符串的元音字母复制给另一个字符串,然后输出
#include<stdio.h>
void copy(char a[],char b[]);
int main(){
char a[100],b[100];
gets(a);
copy(a,b);
printf("%s",b);
}
void copy(char a[],char b[]){
int j=0;
for(int i=0;a[i]!='\0';i++){
if(a[i]=='A'||a[i]=='a'||a[i]=='E'||a[i]=='e'||a[i]=='I'||a[i]=='i'||a[i]=='O'||a[i]=='o'||a[i]=='U'||a[i]=='u'){
b[j]=a[i];
j++;
}
}
}
8.写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
#include<stdio.h>
int main(){
void f(char a[],char b[]);
char number[10],b[10];
gets(number);
f(number,b);
puts(b);
}
void f(char a[],char b[]){
int m=0;
for(int i=0;a[i]!='\0';i++){
b[m]=a[i];
m++;
if(a[i+1]=='\0')break;
b[m]=' ';
m++;
}
}