PDA

View Full Version : سوال: error از سوی windows



Faraz Mehraien
دوشنبه 27 آبان 1392, 18:10 عصر
با سلام.من این برنامه رو نوشتم برای محاسبه واریانس که تعدادی نمره بگیره و اگر کاربر -1 وارد کرد دیگه ورودی نگیره که تا اینجا درسته بعد واریانس و حساب کنه که کامپایل می شه ولی windows هنگام run شدن error می ده.اینم کدم.از کامپایلر dev استفاده می کنم.اشکالش چیه؟
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <string.h>
using namespace std;

int main(int argc, char *argv[])
{
int counter,j,count,counter2;
char amal[80];
float nomarat,varyans,miyaneh,ave,sum=0,i;
float student [100];
cout<<"nomarat to vared konid\n";
cout<<"baray payan -1 ra vared konid\n";
for(counter=0;counter<100;counter++)
{
cin>>student[counter];
if(student[counter]==-1)
break;
}

cout<<"amaly ke mikhahid ba nomarat anjam dahid vared konid\n";
cin>>amal;
if(strcmp(amal,"varyans")==0)
{
for(counter=0;counter<count;counter++)
sum=sum+student[counter];
ave=sum/count;
varyans=(pow(sum,2)/count)-(pow(ave,2));
cout<<"varyans=\n"<<varyans;
}







cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}

مسعود اقدسی فام
سه شنبه 28 آبان 1392, 23:04 عصر
متغیر count بدون مقداردهی اولیه به عنوان شرط انتهای حلقه‌ی دوم استفاده شده. اگه صفر باشه حاصل تقسیم بعدی هم تقسیم بر صفر خواهد بود که طبیعتا خطا می‌ده.

Faraz Mehraien
چهارشنبه 29 آبان 1392, 20:55 عصر
متغیر count بدون مقداردهی اولیه به عنوان شرط انتهای حلقه‌ی دوم استفاده شده. اگه صفر باشه حاصل تقسیم بعدی هم تقسیم بر صفر خواهد بود که طبیعتا خطا می‌ده.
می شه بیشتر توضیح بدین؟دقیقا کجا رو تغییر بدم تا درست بشه؟

brightening-eyes
جمعه 01 آذر 1392, 12:13 عصر
ببین, یه متغیر دیگه رو به جای counter تو حلقه for دومی استفاده کن:
مثلا:


for(counter=0;counter<100;counter++)

تو حلقه دومی که دیگه میخواد حساب کنه:


for(count=0; count<counter;counter++)

مشکل کدت تو حلقه دومه