संकलन अलग
मुझे समस्या आती है क्यों काम नहीं करता
!g++ -Wall -Wextra -g -c cm1.cpp -o cm1.o
cm1.cpp: In function ‘int main(int, char**)’:
cm1.cpp:14:5: warning: ‘t’ may be used uninitialized in this function [-Wmaybe-uninitialized]
cm(t,n);
~~^~~~~
परीक्षण करने के लिए सभी भाग संकलन
!g++ cm1.o cm.o -o test
निष्पादित करना
यहाँ जब मैं सिर्फ g++ cm1.cpp -o cm1.o . का उपयोग करता हूँ
!./test 4
4: तर्क जोड़ी
!./test 4 4
सिंटैक्स: ./ परीक्षण (एन ख़राब)
लेकिन जब मैं सही संख्या की कोशिश करता हूं तो मुझे कुछ नहीं देना
!./test 5
कोड का हिस्सा है:
-- 1
%%writefile cm.hpp
#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
void cm(int **t,int n);
2
%%writefile cm.cpp
#include "cm.hpp"
void cm(int **t,int n){
int l, c, exl, exc;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++) t[i][j] = 0;
l = 0; c = n/2; t[l][c] = 1;
for(int i = 2; i <= n*n; i++) {
exl = l; exc = c;
l--; if(l < 0) l = n-1;
c++; if(c > n-1) c = 0;
if(t[l][c] != 0) { l = exl+1; c = exc; }
t[l][c] = i;
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++)
cout << setw(6) << t[i][j];
cout << endl;
}
unsigned trace = 0;
for(int i = 0; i < n; i++) trace += t[i][i];
cout << "Somme magique = trace: " << trace << endl;
}
भाग ३
int main(int argc, char *argv[]) {
if(argc != 2) {
cout << "Syntaxe: " << argv[0] << " <n impair>" << endl;
exit(1);
}
int n;
n= atoi(argv[1]);
if(n % 2 == 0) {
cout << n << ": argument pair\n";
exit(2);
} int **t1;
cm(t1,n);
return 0;
}
-2
Omar Douiba
19 फरवरी 2021, 16:26
1 उत्तर
सबसे बढ़िया उत्तर
फ़ंक्शन में पास करने से पहले आपको बफ़र्स आवंटित करके t1
को इनिशियलाइज़ करना होगा।
} int **t1;
// allocate an array of pointers
t1 = new int*[n];
// allocate arrays for each row
for (int i = 0; i < n; i++) {
t1[i] = new int[n];
}
cm(t1,n);
1
MikeCAT
19 फरवरी 2021, 16:29
संबंधित सवाल
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।
cm(t,n);
नहीं है। कृपया एक न्यूनतम, प्रतिलिपि प्रस्तुत करने योग्य उदाहरण पोस्ट करें।t1
incm(t1,n);
को इनिशियलाइज़ नहीं किया गया है और इससे वैसे भी परेशानी होगी।int** t1
उसेcm
पास कर दिया है और फिर अचानक आप दिखावा करते हैं किt[i][j] = 0;
लिखकर एक 2d सरणी है।std::vector
का उपयोग करने पर विचार किया था? वैक्टर को किसी और चीज की तरह कार्यों से पारित और वापस किया जा सकता है, सरणी नहीं।