Jasně! Máš pravdu, omlouvám se za moji blbost. Moc děkuji, vyřešeno, funguje!
Příspěvky odeslané z IP adresy 176.74.128.–
int _tmain(int argc, _TCHAR* argv[])
{
char start[1];
do
{
double x_re, x_im, y_re, y_im, r_re=0,r_im=0;
char oper[1],znam='+',znamm='+',znammm='+';
int i;
printf("\n1st operand\nInsert real part: ");
scanf("%Lf", &x_re);
printf("Insert imag. part: ");
scanf("%Lf", &x_im);
printf("\n2st operand\nInsert real part: ");
scanf("%Lf", &y_re);
printf("Insert imag. part: ");
scanf("%Lf", &y_im);
printf("\nInsert operator: ");
scanf("%s", oper);
switch (oper[0])
{
case '+':
kmplx_secteni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '-':
kmplx_odecteni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '/':
kmplx_deleni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '*':
kmplx_nasobeni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
}
if (x_im>0)
znam='-';
if (y_im>0)
znam='-';
if (r_im>0)
znam='-';
printf("\n(%f %c j%f) %s (%f %c j%f) = %f %c j%f", x_re, znam, fabs(x_im), oper, y_re, znamm, fabs(y_im),r_re,znammm, fabs(r_im));
printf("\nIf you want to close program, insert y, if no, insert other character: ");
scanf("%s", start);
} while(start[0]!='n');
}
Tak to už jsem vyřešil měl jsem špatně napsané scanf("%s", oper[0]); --> scanf("%s", oper);
Teď to po stisku n, pro ukončení aplikace hodí hlášku "Run-Time Check Failure #2 - Stack around the variable 'oper' was corrupted."
Když to udělám takhle, tak mi to zas háže chybu, když chci načíst ten operator "The variable 'oper' is being used without being initialized."
Čau kluci, už několik hodin se tu snažím dojít na to, proč mi neustále konečné scanf háže chybu a nikdy neukončí program. Háže to plno chyb, teď momentálně "Unhandled exception at 0x0fa814cf (msvcr100d.dll) in cpp_6.exe: 0xC0000005: Access violation reading location 0x0000006e." Zkoušel jsem různě měnit %s za %c a akorát to háže jinou chybu.. Fakt už si nevím rady
Kód zde
#include "stdafx.h"
#include "Debug\complexmath.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char start= '\0';
do
{
double x_re, x_im, y_re, y_im, r_re=0,r_im=0;
char oper='\0',znam='+',znamm='+',znammm='+';
int i;
printf("\n1st operand\nInsert real part: ");
scanf("%Lf", &x_re);
printf("Insert imag. part: ");
scanf("%Lf", &x_im);
printf("\n2st operand\nInsert real part: ");
scanf("%Lf", &y_re);
printf("Insert imag. part: ");
scanf("%Lf", &y_im);
printf("\nInsert operator: ");
scanf("%s", &oper);
switch (oper)
{
case '+':
kmplx_secteni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '-':
kmplx_odecteni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '/':
kmplx_deleni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
case '*':
kmplx_nasobeni(&r_re, &r_im, x_re, x_im, y_re, y_im);
break;
}
if (x_im>0)
znam='-';
if (y_im>0)
znam='-';
if (r_im>0)
znam='-';
printf("\n(%f %c j%f) %c (%f %c j%f) = %f %c j%f", x_re, znam, fabs(x_im), oper, y_re, znamm, fabs(y_im),r_re,znammm, fabs(r_im));
printf("\nIf you want to close program, insert y, if no, insert other character: ");
scanf("%s", &start);
printf("%s", start);
} while(start !='n');
}