Ich bin neu in der C-Sprache. Angenommen, ich habe zwei Arrays a
und b
So führen Sie den A-B-Set-Vorgang im C-Programm mithilfe der integrierten Bibliothek aus
int a[10] = { 1,2,3,4,5,6,7,8,9,0 };
int b[10] = { 1,3,5,7,9 };
und ich möchte a-b
auszuführen, so dass ich alle Elemente des Arrays bekommen a
die b
in Array nicht vorhanden sind. In Ruby oder Python kann ich einfach a-b
tun und das Ergebnis bekommen. Hier ist mein c-Code, den ich versucht habe, aber mein Code, der nicht funktioniert. Ich suche nach einer C-Bibliothek, die diese Operation für mich in einer Zeile tut. Ich habe auch library aber nicht sicher gefunden, wie man es einführt. Jede Art von Hilfe wird geschätzt.
#include<stdio.h>
#define Max 100
int m,n,i,j,k,p,q,r,s;
int flag=1;
char char1,char2,char3;
void Difference(int *,int *,int ,int);
void Display2(char ,char ,int);
int a[10] = { 1,2,3,4,5,6,7,8,9,0 };
int b[10] = { 1,3,5,7,9 };
int c[10];
void Difference(int *a1,int *b1,int m1,int n1)
{
q=0;
p=0;
i=0;
for(k=0;k<m1;k++){
flag=1;
for(j=0;j<n1;j++){
if(b1[j]==a1[k]){
flag=1;
q++;
break;
}
else{
flag=0;
}
}
if(flag==0){
c[p]=a1[k];
p++;
}
}
}
void Display2(char ac,char bc,int m1)
{
printf("\nThe Difference Of Two Sets i.e '%c - %c' Is : { ",ac,bc);
r = m1 - q;
for(p=0;p<r;p++){
printf("%2d",c[p]);
}
printf(" }");
}
int main(){
Difference(a,b,m,n);
Display2('A','B',m);
return 0;
}
Off-topic zu finden. Lesen Sie einige [Einführung in Algorithmen] (https://en.wikipedia.org/wiki/Introduction_to_Algorithms) –
BTW: Verwenden Sie '\ n' am Ende (nicht starten) von' printf' Formatzeichenfolge. Kompiliere mit allen Warnungen und Debug-Informationen: 'gcc -Wall -Wextra -g' mit [GCC] (http://gcc.gnu.org/). ** Verwenden Sie den Debugger 'gdb' ** –
_" Ich habe versucht, aber keinen Erfolg "_ ist keine gültige Problemaussage. –