Frage zu zwei C Programmen
-
Hi Leute also bin neu hier und habe zwei Probleme!
Also muss zwei Programme schreiben nur irgendwie krieg ich bei dem erstens keine ergebnisse jedefalls kommt es mir so vor und beim zweiten fehlt noch etwas bzw. finde ich den fehler nicht!
ich hoffe das mir jemand helfen kann!wäre echt nett von euch
ich habe hier mal den link wo alles drin ist sowohl aufgaben stellung als auch die bis her von mir geschriebenen Cods!
-
1. Falsches Forum "Frage zu zwei C Programmen" -> Ansi C
2. Poste doch die relevanten Code Teile. Ist mühsam runterzuladen, etc...
-
Hier ist programm 1
#include<stdio.h>
#include<sys/timeb.h>
//#include<zeiten.h>int compare(const void *elmt1,const void *elmt2)
{
int *e1=(int *)elmt1;
int *e2=(int *)elmt2;
return *e1-*e2;
}void dsort (int *base,int num)
{ int i,j,x,c;for(i=0;(i < num); i++)
{ for (j=i;(j < num); j++)
{
if ((base[i]-base[j]) > 0)
{
x = base[i];
base[i] = base[j];
base[j] = x;
}
}
//printf("\n das %d. Element ist %d",(i+1),base[i]);
}
//printf("\n\n\n");}
void main ()
{ int n=0,i,*a,*b;
struct timeb tm1, tm2;printf("\n\n\n Dieses Programm sortiert die Elemente eines n-dimensionalen (n > 0)\n Vektors nach ihrer Groesse, beginnend mit dem Kleinsten.\n Die Elemente sind dabei eine Groesse von 0 bis 1000");
printf("\n\n ------ \n\n\n Bitte geben sie n an: ");
scanf("%d",&n);while ((n == 0) || (n < 0 ))
{
printf("\n\n FEHLERHAFTE EINGABE VON n! BITTE ERNEUT EINGEBEN!!!\n\n n: ");
scanf("%d",&n);
}a = (int*)malloc(nsizeof(int));
b = (int)malloc(n*sizeof(int));ftime(&tm1);
srand(tm1.millitm);for (i=0;i < n; i++)
{
a[i] = rand()%1001;
b[i] = a[i];
}printf("\n\n\n -------- \n\n\n");
ftime(&tm1);
qsort(a,n,4,compare);
ftime(&tm2);
printf("\n\n\n Zeit benötigt mit qsort (msec): %d",(tm2.time - tm1.time) * 1000 + tm2.millitm - tm1.millitm);dsort(b,n);
ftime(&tm2);
printf("\n\n\n Zeit benötigt mit dsort (msec): %d",(tm2.time - tm1.time) * 1000 + tm2.millitm - tm1.millitm);printf("\n\n\n");
free(a);
free(b);
}Hier Programm
#include<stdio.h>
void main()
{
double *a, *b, c, d, e;
int m, n ,o, i, j, k;
char dir_a[256], dir_b[256];FILE *matrix_file_a, *matrix_file_b;
printf("\n\n\n Dieses Programm berechnet fuer zwei Matrizen A und B die\n Multiplikation nach A * B = C .\n\n\n");
printf("\n Anzahl der Zeilen von A: ");
scanf("%d",&m);printf("\n Anzahl der Spalten von A: ");
scanf("%d",&n);printf("\n Anzahl der Spalten von B: ");
scanf("%d",&o);a = malloc(m * n * sizeof(double));
b = malloc(n * o * sizeof(double));printf("\n\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
printf("Wert fuer Zeile %d Spalte %d von A eingeben: ",i+1,j+1);
scanf("%lf",&a[i*n+j]);
}
printf("\n\n");for(i=0;i<n;i++)
for(j=0;j<o;j++)
{
printf("Wert fuer Zeile %d Spalte %d von B eingeben: ",i+1,j+1);
scanf("%lf",&b[i*o+j]);
}printf("\n\n Verzeichnis fuer die Ausgabe von A eingeben (max. 255 Zeichen):\n\n ");
scanf("%s",dir_a);matrix_file_a = fopen(dir_a,"w");
fwrite(a,sizeof(double),m*n,matrix_fil_ea);
fclose(matrix_file_a);printf("\n\n Verzeichnis fuer die Ausgabe von B eingeben (max. 255 Zeichen):\n\n ");
scanf("%s",dir_b);matrix_file_b = fopen(dir_b,"w");
fwrite(b,sizeof(double),n*o,matrix_file_b);
fclose(matrix_file_b);free(a);
free(b);matrix_file_a = fopen(dir_a,"r");
matrix_file_b = fopen(dir_b,"r");printf("\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<o;j++)
{
c = 0;
for(k=0;k<n;k++)
{
fseek(matrix_file_a,(i*n+k)*sizeof(double),SEEK_SET);
fseek(matrix_file_b,(k*o+j)*sizeof(double),SEEK_SET);
fread(&d,sizeof(double),1,matrix_file_a);
fread(&e,sizeof(double),1,matrix_file_b);c += d*e;
}
printf("%6.3lf\t",c);
}
printf("\n");
}printf("\n\n");
}
Programm 1 läuft nur krieg ich immer null raus bei dem was er berechnen soll und programm 2 gibt einen fehler wenn ich es starten soll
-
Bist Du blind?
simon.gysi schrieb:
1. Falsches Forum "Frage zu zwei C Programmen" -> Ansi C
-
ja das habe ich gelesen nur dachte ich es ist nicht ok wenn ich jetzt das gleiche nochmal in nem anderen bereich poste
-
Ist schon ok so. Ein Moderator wird dich bei Gelegenheit verschieben.
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
O.o schrieb:
Ist schon ok so.
Nein, das ist nicht ok, aus diesem grund:
O.o schrieb:
Ein Moderator wird dich bei Gelegenheit verschieben.
Hier geht es weiter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-204122.html