本文主要是介绍课程设计——算术运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>int menu()
{int chioce;system("cls");printf("课程设计——算术运算\n");printf("1:加减运算\n");printf("2:乘除运算\n");printf("3:四则混合\n");printf("0:退出\n");printf("请输入选择:");scanf("%d",&chioce);while(chioce<0||chioce>3){printf("请重新选择:");scanf("%d",&chioce);//如果选择范围不是[0,3]重新选择}return chioce;//把结果返回
}void Rand_Num(int n,int* arr1,int* arr2,int* arr3,int m)
{int i;switch(m)//根据传进来的 1 2 3确定是+ - * /还是混合{case 1:for(i=0;i<n;i++){arr2[i]=rand()%2;//0+ 1-}break;case 2:for(i=0;i<n;i++){arr2[i]=rand()%2+2;//2* 3/}break;case 3:for(i=0;i<n;i++){arr2[i]=rand()%4;//0+ 1- 2* 3/ }break;}for(i=0;i<n;i++){arr1[i]=rand()%100;//生成随机数【0-99】arr3[i]=rand()%100;//生成随机数【0-99】if(arr2[i]==3)//如果是除法{while(arr1[i]%arr3[i]!=0)//避免出现不能整除{arr3[i]--;//不能整除就第二个数-1}}}
}void Add_Sub(int n,int m)
{int i;int sum=0;int* arr1=(int*)malloc(sizeof(int)*n);//操作数1int* arr2=(int*)malloc(sizeof(int)*n);//记录符号int* arr3=(int*)malloc(sizeof(int)*n);//操作数3int* ans=(int*)malloc(sizeof(int)*n);//记录答案system("cls");Rand_Num(n,arr1,arr2,arr3,m);for(i=0;i<n;i++)//循环输出所有表达式{switch(arr2[i])//根据不同符号显示{case 0:printf("%d+%d=",arr1[i],arr3[i]);scanf("%d",&ans[i]);break;case 1:printf("%d-%d=",arr1[i],arr3[i]);scanf("%d",&ans[i]);break;case 2:printf("%d×%d=",arr1[i],arr3[i]);scanf("%d",&ans[i]);break;case 3:printf("%d÷%d=",arr1[i],arr3[i]);scanf("%d",&ans[i]);break;}}for(i=0;i<n;i++){switch(arr2[i])//根据符号 判断答案正确还是错误{case 0:printf("%d+%d=%d",arr1[i],arr3[i],ans[i]);if(arr1[i]+arr3[i]==ans[i]){printf(" 正确\n");sum++;//如果正确 则正确数目+1}else//如果错误 则显示正确的结果{printf(" 错误,正确结果是%d!\n",arr1[i]+arr3[i]);}break;case 1:printf("%d-%d=%d",arr1[i],arr3[i],ans[i]);if(arr1[i]-arr3[i]==ans[i]){printf(" 正确\n");sum++;}else{printf(" 错误,正确结果是%d!\n",arr1[i]-arr3[i]);}break;case 2:printf("%d×%d=%d",arr1[i],arr3[i],ans[i]);if(arr1[i]*arr3[i]==ans[i]){printf(" 正确\n");sum++;}else{printf(" 错误,正确结果是%d!\n",arr1[i]*arr3[i]);}break;case 3:printf("%d÷%d=%d",arr1[i],arr3[i],ans[i]);if(arr1[i]/arr3[i]==ans[i]){printf(" 正确\n");sum++;}else{printf(" 错误,正确结果是%d!\n",arr1[i]/arr3[i]);}break;}}printf("成绩统计——\n");printf("——本轮测试共%d题\n",n);printf("——正确作答%d题,错误%d题\n",sum,n-sum);printf("——正确率为%.2f%%;加油!\n",sum*1.0/n*100);//用.2f输出 保留两位小数free(arr1);free(arr2);free(arr3);free(ans);//释放内存 避免内存泄露system("pause");
}int main()
{int chioce;int n;do{chioce=menu();srand(time(NULL));//初始化随机数种子n=rand()%10+1;//随机产生1-10个题目switch(chioce){case 1:case 2:case 3:Add_Sub(n,chioce);break;}}while(chioce!=0);return 0;
}
这篇关于课程设计——算术运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!