ich soll ein Programm schreiben, dass Primzahlen berechnet, solange ein Timer noch läuft. Das ganze soll 10Mal passieren, und dann der Mittelwert berechnet werden.
Die Aufgabe ist eigentlich nicht schwer, aber immer wenn der 1. Timer abgelaufen ist, beendet sich das Programm mit der Ausgabe „Alarm clock“
Ich habe ein wenig gegoogelt und herausgefunden, dass es irgendwie an der falschen Behandlung von SIGALRM liegen muss. Wisst ihr was ich hier am besten tun kann?
#include "header.h"
short isPrime(long);
void sigfkt();
int flag=1;
int main(){
int start,n=0,i=0,gesamt=0,startwert,status;
double durchschnitt;
struct itimerval itime;
signal(14,SIG\_DFL);
signal(14,sigfkt);
printf("Ab welcher Zahl sollen die Primzahlen berechnet werden?");
scanf("%d",&start);
itime.it\_value.tv\_sec=1;
itime.it\_interval.tv\_sec=0;
itime.it\_value.tv\_usec=0;
itime.it\_interval.tv\_usec=0;
startwert=start;
for(i=0;i
Ausgabe „Alarm clock“
Ich habe ein wenig gegoogelt und herausgefunden, dass es
irgendwie an der falschen Behandlung von SIGALRM liegen muss.
die Signal Disposition fuer SIGALRM wird beim ersten Aufruf des Signalhandlers auf den Defaultwert zurueckgesetzt. Der Defaulthandler fuer SIGALRM druckt „Alarm clock“ und terminiert das Programm.
Richtige Handhabung deshalb ohne „signal“, dafuer mit „sigaction“
ich soll ein Programm schreiben, dass Primzahlen berechnet […]
Die Aufgabe ist eigentlich nicht schwer
Herzlichen Glückwunsch. Ein Programm, das Primzahlen direkt berechnen kann, suchen sehr viele Menschen schon sehr lange. Wenn das für Dich nicht schwer ist, darfst Du Dich schon mal über die sicher bald folgende Fields-Medal freuen.
Ich glaube es ist klar ersichtlich, dass es in dem Programm
darum geht, zu identifizieren ob es eine Zahl eine Primzahl
ist oder nicht.
Ich bin gar nicht grantig, möchte aber darauf hinweisen, dass auch das Erkennen von Primzahlen nur unbefriedigend gelöst und alles andere, als ein triviales Problem ist.
Was Dein Programm machen soll, ist Primzahlen zu generieren. Dafür gibt es ein paar Verfahren, die aber bei großen Zahlen an ihre Grenzen stoßen.