头歌
1.strcmp函数
用一个函数实现两个字符串的比较,即自己写一个strcmp函数
思路:利用ASCII码值,定义整形变量接收字符相减的结果与0作比较。
#include <stdio.h>
int strcmp(char *p1,char *p2)
{
int num=0;
while(*p1!='\0'||*p2!='\0')
{
num=*p1-*p2;
p1++;
p2++;
}
return num;
}
int main()
{
char a[110],b[110];
scanf("%s %s",a,b);
if(strcmp(a,b)>0)
printf("%s",a);
else
printf("%s",b);
return 0;
}
2.报数
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
思路:定义数组并从1开始赋值,该退出圈子的数重新赋值为0
#include <stdio.h>
int main()
{
int n;//初始人数
scanf("%d",&n);
int arr[100];
int count=0;//用来记报的数是否到3
int people=n;//剩余人数
int i;
for(i=0;i<n;i++)
{
arr[i]=i+1;
}
while(people>1)
{
int *pi=arr;
while(pi<arr+n)
{
if(*pi!=0)
{
count++;
if(count==3)//每逢够3重新开始报123
{
*pi=0;//数到三的变成0退出
count=0;//重置
people--;//剩余人数减一,用来跳出循环
}
}
pi++;
}
}
for(i=0;i<n;i++)
{
if(arr[i]!=0)
{
printf("%d",arr[i]);//最后剩下的一个数就是其编号
break;
}
}
return 0;
}