PDA

View Full Version : مشکل در Case ' + ' و Case ' ++' می خوام ++ یه دستور دیگه رو چاپ کنه ولی 2 بار case + رو چاپ میکنه



mehrdadseret
دوشنبه 19 اردیبهشت 1390, 13:23 عصر
سلام دوستان ... تو این برنامه من باید واسه Case ' ++ ' چه چیزی به جای این بنویسم که با زدن ++ case مربوط به خودش اجرا بشه نه اینکه 2 بار case + اجرا شه! امیدوارم منظورم رو رسونده باشم


#include "stdafx.h"
#include "iostream"
using namespace std;

#define TOTAL_NUMBER_OF_INDICES 4

int _tmain(int argc, _TCHAR* argv[])
{
int a[TOTAL_NUMBER_OF_INDICES], b[TOTAL_NUMBER_OF_INDICES];
cout << "Please Enter A Array:" << endl;

for (int i = 0 ; i < _countof(a); i++)
{
cout << "a[" << i << "]= ";
cin >> a[i];
}

cout << "Please Enter B Array:" << endl;
for(int i = 0; i < _countof(b); i++)
{
cout << "b[" << i << "]= ";
cin >> b[i];
}

while(1)
{
char ch;
cin >> ch;

switch(ch)
{
case 'e':
cout << "You Asked To Quit the Program" << endl;
exit(0);
break;

case '++':
{
for (int i=0 ; i<4;i++)
{
int sum=a[i];
a[i]=sum+1;
cout<<"New Result OF a["<<i<<"] Is :"<<a[i]<<endl;
}
for (int i=0 ; i<4;i++)
{
int sum1=b[i];
b[i]=sum1+1;
cout<<"New Result OF b["<<i<<"] Is :"<<b[i]<<endl;
}


}
break;





case '*':
{
int m[TOTAL_NUMBER_OF_INDICES]={1,1,1,1};
for (int i = 0; i< _countof(m);i++){
m[i]=a[i]*b[i];
cout <<"a["<<i<<"] * b["<<i<<"] = " <<m[i]<<endl;
}
}
break;



case'+':
{
int c[TOTAL_NUMBER_OF_INDICES] = {0};
for (int i = 0; i < _countof(c); i++){
c[i] = a[i] + b[i];
cout << " a[" << i <<"] + b[" << i << "] = " << c[i] << endl;
}
}
break;

case'!':{
for (int i = 0; i < _countof(a); i++)
{
if (a[i]<0){
cout<<"There Is No Factoriel For This Number\n";continue;
}

int s = 1;
for (int f = a[i]; f >= 1; f--)
s *= f;
cout <<"factoriel a["<<i<<"] is:"<< s <<endl;


}
for (int i=0; i<_countof(b);i++)
{
if (b[i]<0){
cout<<"There Is No Factoriel For This Number\n";continue;
}
int t = 1;
for (int fac = b[i]; fac>=1;fac--)
t *= fac;

cout <<"factoriel b["<<i<<"] is:"<< t <<endl;
}
}


break;

default:
cout << "ERROR";
}
}

return 0;
}

developing
دوشنبه 19 اردیبهشت 1390, 14:09 عصر
با سلام

شما اشتباهت اینه که فکر می کنی توی یه متغیر کاراکتری می تونی دوتا کاراکتر قرار بدی

برای رفع مشکلت باید متغیر ch رو از نوع char* یا char[] تعریف کنی تا بتونه رشته "++" رو داخل خودش قرار بده و بعد با استفاده از تابع مقایسه انجام بدی یه چیزی مثل کد زیر:

char* ch;
cin >> ch;
if (strcmp(ch, "++") == 0)
کد مربوطه

امیدوارم مشکلت رو حل کنه اگه باز هم مشکل داشتی بگو

mehrdadseret
دوشنبه 19 اردیبهشت 1390, 15:50 عصر
سلام دوست عزیز .. مشکل این هست که استاد م هنوز همچین چیزی که شما گفتی رو بهمون نگفته 100% واسش سوال میشه که این رو از کجا اوردم .. راه دیگه ای نیست؟

mehrdadseret
سه شنبه 20 اردیبهشت 1390, 21:17 عصر
دوستان کسی نمی خواد من و کمک کنه ؟

mehrdadseret
چهارشنبه 21 اردیبهشت 1390, 18:53 عصر
??????????????????????