C语言学习知识点(三):简单的学习应用

#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;

}


通过此程序可以实现简单的人机互动,主函数通过从键盘读取不同的输入分别调用七个子函数完成各种功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值