#include<stdlib.h>
#include<time.h>
int cal(int)
void gen(int,int&,int&,int&)
int main(void)
{
int m //使用数字位数,当m=4,程序退出
srand((int)time(0))
printf("\t\t请选择下面的一个宴如项目:\n\n")
printf("\t\t1...........................一位数\n")
printf("\t\t2...........................两位数\n")
printf("\t\t3...........................三位数\n")
printf("\t\t4...........................退出\n")
do{
scanf("%d",&m)
switch(m){
case 1:
case 2:
case 3:
cal(m)break
case 4:
break
default:
printf("输入错误,请重新输入:")
}
}while(m!=4)
return 0
}
int cal(int m){
// m:数字位数
int num1,num2,smb
int i,k
int sum,res
int u_sum,u_res
int write
bool T
int score
int fen[]={10,8,6}
//num1:第一 *** 作数
//num2:第二 *** 作数
//smb: *** 作符,有:+,-,*,/,% 五种(1-5)
//sum 表示加法 *** 作的和,减法 *** 作的差,乘法 *** 作的积以及除法 *** 作的商。
//res 表示除法 *** 作的余数,以及取余 *** 作的余数。
//write:正确答案数目
//T:答对题
//score:总分
write=0
score=0
for(i=0i<10i++){
gen(m,num1,num2,smb) //生晌梁启成 *** 作数和相应的 *** 作符
switch(smb){ //生成正确答案
case 1: //加法
sum=num1+num2break
case 2: //减法
sum=num1-num2break
case 3: //乘法
sum=num1*num2break
case 4: //除法
sum=num1/num2
res=num1%num2
break
case 5: //取余
res=num1%num2
}
for(k=0k<3k++){
switch(smb){
case 1: //加法
printf("%d+%d=",num1,num2)
scanf("%d",&u_sum)
if(sum==u_sum){
write=write+1
T=true
}else{
T=false
}
break
case 2: //减法
printf("%d-%d=",num1,num2)
scanf("%d",&u_sum)
if(sum==u_sum){
write=write+1
T=true
}else{
T=false
}
break
case 3: //乘法
printf("%d*%d=",num1,num2)
scanf("渣好%d",&u_sum)
if(sum==u_sum){
write=write+1
T=true
}else{
T=false
}
break
case 4: //除法
printf("%d/%d=商,余数",num1,num2)
scanf("%d,%d",&u_sum,&u_res)
if(sum==u_sum&&res==u_res){
write=write+1
T=true
}else{
T=false
}
break
case 5: //取余
printf("%d%%%d=",num1,num2)
scanf("%d",&u_res)
if(res==u_res){
write=write+1
T=true
}else{
T=false
}
break
default:
}
if(T){
score=score+fen[k]
switch(k){
case 0:
printf("完全正确,你非常聪明!加%2d分\n",fen[k])break
case 1:
printf("答对了,你很棒!加%2d分\n",fen[k])break
case 2:
printf("答对了,祝贺你!加%2d分\n",fen[k])break
}
break
}else if(k==2){
printf("非常遗憾你又答错了,请继续做下一题。本题的正确答案为")
switch(smb){
case 1:
case 2:
case 3:
printf("%d\n",sum)break
case 4:
printf("%d,%d\n",sum,res)break
case 5:
printf("%d\n",res)break
}
}else{
printf("你答错了,继续努力!\n")
}
}
}
printf("你本次练习的总分为%d\n",score)
return 0
}
void gen(int m,int &num1,int &num2,int &smb){
int min[]={0,10,100}
int max[]={9,99,999}
int temp
m=m-1
smb=rand()%(m+3)+1
num1=rand()%(max[m]-min[m]+1)+min[m]
num2=rand()%(max[m]-min[m]+1)+min[m]
if(num1<num2&&smb==2){
temp=num1
num1=num2
num2=temp
}
while(num2==0&&smb>3){
num2=rand()%(max[m]-min[m]+1)+min[m]
}
}
楼主胡如巧你好。#include <stdio.h>
int main( )
{
int i
FILE* fp
if((fp=fopen("output.txt","w+"))==NULL){
printf("Create output.txt failed!\n")
return 1
}
for(i=0i<=100i++){
fprintf(fp,"single single%d\n",i)
fprintf(fp,"(\n.clk(clk),\n")
fprintf(fp,".rst_n(rst_n),\n")
fprintf(fp,".step(error_max_in%d),\n",i)
fprintf(fp,".outdata(sel_in%d)\n)\n",i)
}
return 0
}
以上代码会在你的工程文件夹中创建橡脊一个output.txt,其中的内容应该符合你的要求。裤键
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)