какой будет вывод этого кода?в строке 13 что на самом деле происходит? - PullRequest
0 голосов
/ 19 февраля 2019
#include <iostream>
#include <string.h>
using namespace std;
int main() {

    int num , n , n1 , k , x = 0;
    cout << "Enter the no. of vertices: " ;
    cin >> n;
    char StorageArr[n];
    char arr[k];
     for(k = 0; k< n ; k++){
       cout<< "arr[" << k << "] : ";
       cin >> arr[k] ;
       StorageArr[n] = arr[k];
    }

    int len = sizeof(StorageArr)/ sizeof(StorageArr[0]);

    cout << "The length of the array is : " << len << endl;
     for(int i= 0 ; i< len ; i++){
       for(int j = 0; j< len ; j++ ){
            cout<<"\n\t" <<"Element at " << StorageArr[i] <<        StorageArr[j] << ": "  ;
        cin >> num;
        if(i==j && num == 0){
            x++;
        }
    }
}

if(x == len){
    cout<<"This  is a complete graph...";
}else{
    cout<< "This is not a complete graph..." ;
}

return 0;

}

хорошо, так как работает StorageArr [n] = arr [k].Я имею в виду, что если мы назначим n = 5, то все значения arr [k] будут назначены на одну и ту же позицию StorageArr [5], или же значение arr [k] будет храниться в StorageArr, как сначала в 0-й позиции.затем на 1-й позиции и затем до 4-го ....

1 Ответ

0 голосов
/ 19 февраля 2019

Если n == 5, то

StorageArr[n] = arr[k];

всегда будет присваивать arr[k] StorageArr[5].Это то, что говорит код, и вот что он будет делать (в рабочей программе).Я не уверен, откуда у вас мысль, что он может назначить StorageArr [0], затем StorageArr [1] и т. Д.

В вашем коде много ошибок, если упомянуть только одну, посмотрите накод выше, каково значение k?Ни в коем случае вы не даете этому значение.Но вы используете это значение повсюду.Это означает, что вся ваша программа имеет неопределенное поведение и бессмысленно пытаться понять, что она будет делать.

Исправьте ошибки, и ваша программа будет вести себя более предсказуемо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...