मुझे नहीं पता क्यों लेकिन यह कोड मुझे एक सेगमेंटेशन फॉल्ट देता है, मैं समझने की कोशिश कर रहा हूं, यह अभ्यास मूल रूप से जांचता है कि पहले सरणी में उपयोगकर्ता द्वारा डाली गई संख्याएं (ए) में कुछ शून्य और डुप्लिकेट संख्याएं हैं, और यदि वह है सच है, प्रोग्राम उस शून्य को सम्मिलित नहीं करेगा और अगले सरणी (बी) में डुप्लिकेट नहीं करेगा।
#include <stdio.h>
#include <stdbool.h>
int main () {
int a[19], b[19], i, j, N, A = 0;
do{
printf ("How many numbers? : ");
scanf("%d", &N);
}while (N > 19);
for(i=0;i<N;i++)
{
printf ("Insert the number %d : ", i + 1);
scanf ("%d", &a[i]);
}
for(i=0;i<N;i++){
bool zero= false;
bool idem= false;
for(j=0;j<N;i++){
if(a[i]==a[j])
idem= true;
if(a[i]==0)
zero= true;
}
if(idem==false){
b[A]=a[i];
A++;
}
if (zero== false){
b[A] = a[i];
A++;
}
for (i=0;i<A;i++){
printf ("%d", b[i]);
}
}
}
2 जवाब
#include <stdio.h>
#include <stdbool.h>
int main () {
int a[19], b[19], i, j, N, A = 0;
bool idem,zero;
//Input number of elements
do{
printf ("How many numbers? : ");
scanf("%d", &N);
}while (N > 19);
//Input array
for(i=0;i<N;i++){
printf ("Insert the number %d : ", i + 1);
scanf ("%d", &a[i]);
}
//Checking duplicates and zeroes
for(i=0;i<N;i++){ //for
zero= false;
idem= false;
for(j=0;j<N;j++){
if(a[i]==a[j]&&i!=j){ //add a condition (&& means AND). if j=i obviusly a[i] = a [j]
printf("idem found\n"); //printf debug
idem= true;}
}
if(a[i]==0){
printf("zero found\n"); //printf debug
zero= true;}
//a[i] mustn't be either duplicated nor zero. Not only one of this conditions.
//Use the logical AND &&
if(idem==false && zero==false){
b[A]=a[i];
A++;
}
}
//output array
//Must be collocated outside the "main for". I don't need to make an output in every iteration.
printf("The B array is:\n");
for (i=0;i<A;i++){
printf (" %d ", b[i]);
}
printf("\n");
}
for(j=0;j
यदि आप वेतन वृद्धि करते हैं, तो आप सरणी की लंबाई से अधिक हो जाएंगे, जिससे सेगमेंटेशन फॉल्ट हो जाएगा
संबंधित सवाल
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।