用C語言編寫生成小學四則運算程序


使用軟件——VS 2015

使用環境——C語言

早在上周我就開始使用C#語言做,由於最后一點問題而放棄,之后用C語言開始做,很順利,但是也碰到了一些問題,但是通過了百度文庫上的一些程序的借鑒和吳阿平同學的悉心指導最后還是解決了,主要是通過C語言實現能夠生成100以內的加減乘除題目,並且判斷使用者的答題是否正確。一開始的時候先會給使用者提供加減乘除四個選項,使用者選擇后會提示是一位數還是兩位數;之后使用者開始作答,之后之前的步驟一直循環,直到使用者不再使用。下面是程序代碼:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int add(int num1, int num2)//加法
{
return num1 + num2;
}
int subtraction(int num1, int num2)//減法
{
return num1 - num2;
}
int mul(int num1, int num2)//乘法
{
return num1*num2;
}
float divis(int num1, int num2)//除法
{
return ((int)(((float)num1 / num2) * 100 + 0.5)) / 100.0;
}
int main()
{
int type = -1;
int data = -1;
int choice, num1, num2, results;
float div_result;
int right = 0;
int wrong = 0;
char ch;
printf("歡迎進入小學四則運算題,現在考驗你的智商是不是真正的“小學生”了!\n");
srand((unsigned int)time(NULL));
while (1)
{
printf("請選擇運算類型:1.加法 2.減法 3.乘法 4.除法(保留兩位小數)\n");
scanf("%d", &choice);
printf("請選擇位數:1.一位數 2.兩位數\n");
scanf("%d", &data);
switch (choice)
{
case 1:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d + %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == add(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d + %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == add(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 2:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d - %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == subtraction(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d - %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == subtraction(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 3:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10;
printf("%d * %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == mul(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100;
printf("%d * %d=__?__\n", num1, num2);
scanf("%d", &results);
if (results == mul(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
case 4:
if (data == 1)
{
num1 = rand() % 10;
num2 = rand() % 10 + 1;
printf("%d / %d=__?__\n", num1, num2);
scanf("%f", &div_result);
if (div_result == divis(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand() % 100;
num2 = rand() % 100 + 1;
printf("%d / %d=__?__\n", num1, num2);
scanf("%f", &div_result);
if (div_result == divis(num1, num2))
{
printf("回答正確!\n");
right++;
}
else
{
printf("回答錯誤!\n");
wrong++;
}
printf("是否繼續?y/n\n");
getchar();
scanf("%c", &ch);
if (ch == 'y')
break;
else if (ch == 'n')
goto end;
}
break;
default:
printf("輸入錯誤!\n");
break;
}
}
end:
printf("回答正確%d題,回答錯誤%d題\n", right, wrong);
printf("\n===================感謝使用=====================!\n");
system("pause");
return 0;
}

實驗截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM