一·问题要求
输入n个号码,一个号码不能是另一个的前缀才有效。
123 123456 789 不是有效号码,因为123 是123456的前缀
123 452 12589是有效的。
二 代码
/*输入n个电话号码(10位以内),判断号码是否有效,即判断某个号码是否是另一个的前缀。若是输出no,不是输出yes.
123 12 458 就不是有效号码,123 456 789 是有效号码*/
#include<stdio.h>
#include<string.h> //strlen()的头文件
#include<stdlib.h> //system的头文件
int main()
{
int n,i,j,k=0,m1,m2,h,f=0;
printf("输入n的值:\n");
scanf("%d",&n);
getchar(); //这里有个回车键字符,需要吸收。否则会存入到a[0]中。
char a[n][11];
printf("输入n个电话号码:\n");
for(i=0;i<n;i++)
gets(a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
m1=strlen(a[i]);system的头文件
m2=strlen(a[j]);
printf("m1=%d m2=%d\n",m1,m2);
if(m1<m2)
m2=m1;
k=0; //每循环一次k要归零。
for(h=0;h<m2;h++)
{
if(a[i][h]==a[j][h])
k++;
}
if(k==m2)
f=1;
}
if(f==0)
printf("YES\n");
else
printf("N0\n");
system("PAUSE"); //在vc6.0中自动生成可读性文件,在devcpp中暂停一下看//结 果。
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论