當前位置:編程學習大全網 - 源碼下載 - c語言編程500以內的四則運算

c語言編程500以內的四則運算

#include?<stdio.h>

#include?<stdlib.h>

#include?<time.h>

#include?<math.h>

#define?NUM 50

int?main()

{

int?n[NUM]; //?第壹個數

int?m[NUM]; //?第二個數

char?o[NUM]; //?運算符

int?result[NUM]; //?結果

int?count?=?0; //?產生的題目計數

int?i; //?臨時循環變量

int?op; //?操作符號

int?temp; //?臨時交換用變量

int?div; //?判斷除數是否為零

int?ditto; //?判斷是否否重復

FILE?*fp;

fp?=?fopen("data.txt",?"w"); //?打開文件

srand(time(NULL)); //?使用隨機數種子

while?(count?!=?NUM)

{

n[count]?=?abs(rand()?%?500); //?這裏寫?500?以內的話,?妳要求結果也是?500?以內,?基本上產生不了乘法除法的運算式子,?建議寫?30

m[count]?=?abs(rand()?%?500);

op?=?abs(rand()?%?4); //?隨機的運算符

result[count]?=?0;

div?=?1; //?默認每次進入除數不為零

ditto?=?0; //?默認每次進入為不重復?

switch?(op)

{

case?0:

result[count]?=?n[count]?+?m[count];

o[count]?=?'+';

break;

case?1:

if?(n[count]?<?m[count])

{

temp?=?n[count];

n[count]?=?m[count];

m[count]?=?temp;

}

o[count]?=?'-';

result[count]?=?n[count]?-?m[count];

break;

case?2:

o[count]?=?'x';

result[count]?=?n[count]?*?m[count];

break;

case?3:

if?(m[count]?!=?0)

{

o[count]?=?'/';

result[count]?=?n[count]?/?m[count];

}

else

{

div?=?0;

}

break;

default:

break;

}

if?(div?==?0)

{

continue;

}

if?(n[count]?<=?500?&&?m[count]?<=?500?&&?result[count]?<=?500) //?基本條件

{

if?(op?==?3)

{

if?(result[count]?*?m[count]?!=?n[count]) //?判斷除法可能除不盡,?有余數的情況

{

continue;

}

}

for?(i?=?0;?i?<?count;?i++) //?檢查此題目是否重復

{

if?(n[i]?==?n[count]?&&?m[i]?==?m[count]?&&?result[i]?==?result[count]?&&?o[i]?==?o[count])//?判斷第壹個數,?第二個數,?操作符號,?結果是否都相同,?相同表示此題目已有

{

ditto?=?1;//?標記為重復

break;

}

}

}

else

{

continue;

}

if?(ditto?==?1) //?重復數據處理,?重新生成數據

{

continue;

}

count++;//?計數

}

for?(i?=?0;?i?<?NUM;?i++) //?將符合的數據寫入文件

{

fprintf(fp,?"%d:?%d?%c?%d?=?%d\n",?i?+?1,?n[i],?o[i],?m[i],?result[i]);

}

fclose(fp); //?關閉文件

return?0;

}

  • 上一篇:NFT是從什麽源起的?
  • 下一篇:股票代碼的分類
  • copyright 2024編程學習大全網