2017-01-29 3 views
-1

Числовые адреса для компьютеров в международной сети «Интернет» состоит из четырех частей, разделенных точками, формы xxx.yyy.zzz.mmm, где xxx, yyy, zzz и mmm - целые положительные числа. Локально, компьютеры, как правило, известны и по прозвищу.Отладка части сравнения строк с ошибкой Runtime

Примеры данных

IP address  Name 
111.22.3.44  platte 
555.66.7.88  wabash 
111.22.5.66  green 
0.0.0.0   none 

Пара компьютеров, как говорят, в той же местности, когда первые два компонента адреса одинаковы. Учитывая детали некоторых компьютеров, разработайте алгоритм и напишите программу на C, чтобы отобразить список сообщений, идентифицирующих каждую пару компьютеров из той же местности. В сообщениях компьютеры должны быть идентифицированы по их прозвищам. В этом примере сообщение, которое будет отображаться, будет «Машины», а зеленый - в одной локальной сети.

#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]); 
} 

код не производит вывод на всех (ошибка времени выполнения), и я не могу понять, почему. EDIT: Отсутствуют ошибки или предупреждения компилятора. Просто выполнение дает мне пустой экран вывода.

+0

Это код C и должен быть помечен (только) как таковой; в C++ есть лучшие способы сделать все это. Также 'main' должен возвращать' int'. C99 допускает типы возвращаемых реализацией, но для переносимости вы должны использовать 'int'. –

+0

Пожалуйста, укажите сообщение об ошибке, которое вы получаете. –

+0

EDIT: Отсутствуют ошибки или предупреждения компилятора. Просто выполнение дает мне пустой экран вывода. – Recurse

ответ

0

Ваш код выдал желаемый результат на моей машине. Вероятно, что вы забываете вводить «n» количество адресов, которые должны принимать в качестве входных данных или предоставляют меньше адресов, чем «n».