Valaki elmagyarázná, hogy miért nem működik ez a program?
#include "stdafx.h"
#include <conio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
FILE * f;
#define STRHOSSZ '255'
#define pvesszo ';'
#define elv ','
int tagszam(char *s){//végig kell!sor végére nem kerülhet vessző!
char *s2=(char*)malloc(STRHOSSZ);
strcpy(s2,s);
int dbszam=0;
char *vesszo=strchr(s2,pvesszo);
if(vesszo==0){
return 1;}
else{
while(vesszo!=NULL){
dbszam++;
strcpy(vesszo,vesszo+1);
vesszo=strchr(s2,pvesszo);}}
dbszam++;
return dbszam;}
float * szetszed(char *s, int tagszam){
char * pont=(char *)malloc(STRHOSSZ);
pont=".";
float *tomb=(float*)malloc(tagszam*sizeof(float));
char *szam=(char*)malloc(STRHOSSZ);
char *vesszo=strchr(s,pvesszo);
char *vesszoutani=(char*)malloc(STRHOSSZ);
char * ujszam=(char *)malloc(STRHOSSZ);
for(int i=0; i<tagszam-1; i++){
strncpy(szam,s,vesszo-s);
char *cserepointer=strchr(szam,elv);
if(cserepointer!=NULL){
memset(ujszam,0,STRHOSSZ);
strncpy(ujszam,szam,cserepointer-szam);
strcpy(vesszoutani,cserepointer+1);
strcat(ujszam,pont);
strcat(ujszam,vesszoutani);
memset(vesszoutani,0,STRHOSSZ);
cserepointer=strchr(szam,elv);}
tomb[i]=atof(ujszam);
memset(ujszam,0,STRHOSSZ);
memset(szam,0,STRHOSSZ);
strcpy(s,vesszo+1);
vesszo=strchr(s,pvesszo);}
char *cserepointer=strchr(s,elv);
memset(ujszam,0,STRHOSSZ);
strncpy(ujszam,s,cserepointer-s);
strcpy(vesszoutani,cserepointer+1);
strcat(ujszam,pont);
strcat(ujszam,vesszoutani);
memset(vesszoutani,0,STRHOSSZ);
cserepointer=strchr(szam,elv);
tomb[tagszam-1]=atof(ujszam);
return tomb;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *s=(char*)malloc(STRHOSSZ);
char *s2=(char*)malloc(STRHOSSZ);
int tagokszama=100;
float *x=(float*)malloc(tagokszama*sizeof(float));
float *y=(float*)malloc(tagokszama*sizeof(float));
float integrál=0;
int xhelyekdb=0;
f=fopen("függvénytáblázat.csv","r");
if(!f){cout<<"The file isnt founded!"; getch(); return -1;}
while(!feof(f)){
memset(s,0,STRHOSSZ);
memset(s2,0,STRHOSSZ);
if(fgets(s,STRHOSSZ,f)){
if(fgets(s2,STRHOSSZ,f)){
xhelyekdb=tagszam(s);
for(int i=0;i<=100;i++){
x[i]=1;y[i]=1;}
x=szetszed(s,xhelyekdb);
y=szetszed(s2,xhelyekdb);
for(int i=0;i<(xhelyekdb-1);i++){
integrál+=(x[i+1]-x[i])*(y[i+1]+y[i])/2;}}}};
cout<<"A fuggveny alatti becsult terulet: "<<integrál<<endl;
getch();
return 0;
}
Kell neki egy csv file amiben sorba vannak a számok felül az x, alúl pedig az f(x) értékek
a program a szetszed függvénynél az strncpy(ujszam,s,cserepointer-s); sornál akad ki
válaszokat köszönöm!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!