#include <stdio.h>
#include <string.h>
//输出两个数最大值调用max函数
int triple()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",max(a,b));
}
//被调用的max函数
int max(int a,int b)
{
int t;
t=a>b?a:b;
return t;
}
//使用指针完成字符串插入
int strins()
{ char a[100];
char b[100];
char *p=a,*p1=b;
int i;
gets(a);
gets(b);
while(*p!='\0')
{
p++;
}//此时指针p指向'\0'
p--;//使指针指向‘\0’前一位
i=strlen1(b);
while(*p!='c')
{
*(p+i)=*p--;
}
p++;
while(*p1!='\0')
{
*p++=*p1++;
}
printf("%s\n",a);
return 0;
}
//计算最大公因数和最小公倍数
int gs()
{
int a=6;
int b=9;
int n,m;
n=(a<b)?a:b;
while(n>=1)
{
if(0==a%n&&0==b%n)
break;
n--;
}
m=(a>b)?a:b;
for(m;m>=a;m++)
{
if(0==m%a&&0==m%b)
break;
}
printf("%d %d\n",n,m);
}
int strcpy1(char a[20],char b[20])
{
int i=0;
//用数组进行字符串复制
/* while(b[i]!=0)
{
a[i]=b[i];
i++;
}
a[i]=b[i];
*/
//指针进行字符串复制
char*pa=a;
char*pb=b;
while(*pb!='\0')
{
*pa++=*pb++;
}
*pa='\0';
printf("666\n");
return 0;
}
//计算字符串长度
int strlen1(char a[100])
{
int i=0;
while(a[i]!=0)
{
i++;
}
printf("hello\n");
return i;
}
//输出三个字符串中最大的
int strmax()
{
int i;
char a[3][20];
char str[20];
for(i=0;i<3;i++)
{
gets(a[i]);
}
if(strcmp(a[0],a[1])>0)
{
strcpy1(str,a[0]);
}
else
strcpy1(str,a[1]);
if(strcmp(str,a[2])<0)
{
strcpy1(str,a[2]);
}
puts(str);
return 0;
}
//冒泡排序
int sort()
{
int a[]={3,2,1,4,5};
int i,t,j;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+i]=a[j];
}
}
}
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
int main()
{
char c;
while(1)
{
printf("input\n");
//scanf("%c\n",&d);
gets(&c);//%c时scanf()会读取每个字符,包括空白/回车会导致输入出错
switch(c)
{
case 'a':strins();break;
case 'b':strcpy1();break;
case 'c':strlen1();break;
case 'd':strmax();break;
case 'e':gs();break;
case 'f':sort();break;
case 'g':triple();break;
default:printf("error");break;
}
}
return 0;
#include <string.h>
//输出两个数最大值调用max函数
int triple()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",max(a,b));
}
//被调用的max函数
int max(int a,int b)
{
int t;
t=a>b?a:b;
return t;
}
//使用指针完成字符串插入
int strins()
{ char a[100];
char b[100];
char *p=a,*p1=b;
int i;
gets(a);
gets(b);
while(*p!='\0')
{
p++;
}//此时指针p指向'\0'
p--;//使指针指向‘\0’前一位
i=strlen1(b);
while(*p!='c')
{
*(p+i)=*p--;
}
p++;
while(*p1!='\0')
{
*p++=*p1++;
}
printf("%s\n",a);
return 0;
}
//计算最大公因数和最小公倍数
int gs()
{
int a=6;
int b=9;
int n,m;
n=(a<b)?a:b;
while(n>=1)
{
if(0==a%n&&0==b%n)
break;
n--;
}
m=(a>b)?a:b;
for(m;m>=a;m++)
{
if(0==m%a&&0==m%b)
break;
}
printf("%d %d\n",n,m);
}
int strcpy1(char a[20],char b[20])
{
int i=0;
//用数组进行字符串复制
/* while(b[i]!=0)
{
a[i]=b[i];
i++;
}
a[i]=b[i];
*/
//指针进行字符串复制
char*pa=a;
char*pb=b;
while(*pb!='\0')
{
*pa++=*pb++;
}
*pa='\0';
printf("666\n");
return 0;
}
//计算字符串长度
int strlen1(char a[100])
{
int i=0;
while(a[i]!=0)
{
i++;
}
printf("hello\n");
return i;
}
//输出三个字符串中最大的
int strmax()
{
int i;
char a[3][20];
char str[20];
for(i=0;i<3;i++)
{
gets(a[i]);
}
if(strcmp(a[0],a[1])>0)
{
strcpy1(str,a[0]);
}
else
strcpy1(str,a[1]);
if(strcmp(str,a[2])<0)
{
strcpy1(str,a[2]);
}
puts(str);
return 0;
}
//冒泡排序
int sort()
{
int a[]={3,2,1,4,5};
int i,t,j;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+i]=a[j];
}
}
}
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
int main()
{
char c;
while(1)
{
printf("input\n");
//scanf("%c\n",&d);
gets(&c);//%c时scanf()会读取每个字符,包括空白/回车会导致输入出错
switch(c)
{
case 'a':strins();break;
case 'b':strcpy1();break;
case 'c':strlen1();break;
case 'd':strmax();break;
case 'e':gs();break;
case 'f':sort();break;
case 'g':triple();break;
default:printf("error");break;
}
}
return 0;
}
通过此程序可以实现简单的人机互动,主函数通过从键盘读取不同的输入分别调用七个子函数完成各种功能