国際ネットワーク上のコンピュータの数値アドレス「Internet」には、xxx.yyy.zzz.mmmという形式の4つの部分がピリオドで区切られています。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
コンピュータ一対のアドレスの最初の2つの成分が同じである場合、同じ地域にあると言われます。いくつかのコンピュータの詳細が与えられると、アルゴリズムを設計し、Cプログラムを記述して、同じ場所からの各コンピュータ対を識別するメッセージのリストを表示する。メッセージでは、コンピューターはニックネームで識別される必要があります。この例では、表示されるメッセージはMachines platteで、緑色は同じローカルネットワーク上にあります。
#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]);
}
このコードでは出力がまったく生成されず(実行時エラー)、理由が分からないようです。 編集:コンパイルエラーまたは警告はありません。ちょうど実行が私に空白の出力画面を与えます。
これはCコードであり、そのようにタグ付けする必要があります。 C++ではこれをすべて行うためのより良い方法があります。また、 'main'は' int'を返すべきです。 C99は実装定義の戻り値型を許可しますが、移植性のためには 'int'を使うべきです。 –
受信しているエラーメッセージを入力してください。 –
EDIT:コンパイルエラーまたは警告はありません。ちょうど実行が私に空白の出力画面を与えます。 – Recurse