国际网络上计算机的数字地址,'Internet'有四个部分,以句点分隔,格式为xxx.yyy.zzz.mmm,其中xxx,yyy,zzz和mmm为正整数。在本地,计算机通常也被称为昵称。
示例数据
IP address Name
111.22.3.44 platte
555.66.7.88 wabash
111.22.5.66 green
0.0.0.0 none
当地址的前两个组件相同时,称一对计算机位于同一地点。鉴于某些计算机的细节,设计算法并编写C程序以显示识别来自同一地点的每对计算机的消息列表。在消息中,计算机应通过其昵称来标识。在此示例中,要显示的消息将是Machines platte和green在同一本地网络上。
#include<stdio.h>
#include<string.h>
void main()
{
int n,p,i,j;
char s[20][20],na[10][10];
scanf("%d",&n);
for(i=0;i < n;i++)
{
scanf("%s%s",s[i],na[i]);
p=0;
j=0;
while(p!=2)
{
j++;
if(s[i][j]=='.')
p++;
}
s[i][j]='\0';
}
for(i=0;i < n-1;i++)
for(j=i+1;j < n;j++)
if(strcmp(s[i],s[j])==0)
printf("Machines %s and %s are on the same local network",na[i],na[j]);
}
代码根本不会产生输出(运行时错误),我似乎无法弄清楚原因。 编辑:没有编译器错误或警告。只是执行给我空白的输出屏幕。
答案 0 :(得分:0)
您的代码在我的机器上产生了所需的输出。 您很可能忘记输入&#39; n&#39;作为输入的地址数量或提供的地址少于&#39; n&#39;。