什么代码都可以?
我有个小学数学 -运算的,你可参考下:
#include
#include
#include
struct node
{
? ?int num1;
? ?char ope;
? ?int num2;
? ?int res;
? ?struct node *next;
};
void ?generator(struct node *head) //用随机产10道计算题并通过链表保存数据
{
? ?int c;
? ?int count = 0;
? ?srand((unsigned)time(NULL));
? ?while(count != 10)
? ?{
? ? ? ?int a = rand() % 51; //产随机数
? ? ? ?int b = rand() % 51;
? ? ? ?struct node *data = (struct node *) malloc(sizeof(struct node)); ?//申请存储节点
? ? ? ?int i = rand() % 2;
? ? ? ?if(i == 0 && b > a)
? ? ? ?{
? ? ? ? ? ?data->num1 = b;
? ? ? ? ? ?data->ope = '-';
? ? ? ? ? ?data->num2 = a;
? ? ? ? ? ?data->res = b - a;
? ? ? ?}
? ? ? ?else if(i == 0 && a > b)
? ? ? ?{
? ? ? ? ? ?data->num1 = a;
? ? ? ? ? ?data->ope = '-';
? ? ? ? ? ?data->num2 = b;
? ? ? ? ? ?data->res = a - b;
? ? ? ?}
? ? ? ?else if(i == 1 && a num1 = a;
? ? ? ? ? ?data->ope = ' ';
? ? ? ? ? ?data->num2 = b - a;
? ? ? ? ? ?data->res = b;
? ? ? ?}
? ? ? ?else if(i == 1 && a > b)
? ? ? ?{
? ? ? ? ? ?data->num1 = b;
? ? ? ? ? ?data->ope = ' ';
? ? ? ? ? ?data->num2 = a - b;
? ? ? ? ? ?data->res = a;
? ? ? ?}
? ? ? ?else if(a == b)
? ? ? ? ? ?continue;
? ? ? ?data->next = head->next;
? ? ? ?head->next = data;
? ? ? ?count ;
? ?}
}
void test(struct node *head) //测试程序
{
? ?int count, que_num = 1;
? ?int sum = 0;
? ?int result;
? ?struct node *data = head->next;
? ?while(data != NULL)
? ?{
? ? ? ?count = 3;
? ? ? ?printf("第%d题是: ?%d%c%d
", ?que_num , data->num1 , data->ope , data->num2);
? ? ? ?scanf("%d", &result);
? ? ? ?while(result != data->res && count != 1)
? ? ? ?{
? ? ? ? ? ?count--;
? ? ? ? ? ?printf("请输入答案,你有 %d次机会
", count);
? ? ? ? ? ?scanf("%d", &result);
? ? ? ?}
? ? ? ?if(count == 3)
? ? ? ?{
? ? ? ? ? ?printf("恭喜你,答对了!
");
? ? ? ? ? ?sum = sum 10 ;
? ? ? ?}
? ? ? ?else if(count == 2)
? ? ? ?{
? ? ? ? ? ?printf("恭喜你,答对了!
");
? ? ? ? ? ?sum = sum 7;
? ? ? ?}
? ? ? ?else if(count == 1 && result == data->res)
? ? ? ?{
? ? ? ? ? ?printf("恭喜你,答对了!
");
? ? ? ? ? ?sum = sum 5;
? ? ? ?}
? ? ? ?else if(count == 1 && result != data->res)
? ? ? ? ? ?printf("本题正确答案:%d%c%d=%d
" , data->num1 , data->ope , data->num2 , data->res);
? ? ? ?data = data->next;
? ?}
? ?printf("你的得分为:%d
" , sum);
? ?printf("—————————
");
? ?if(sum >= 90)
? ? ? ?printf("优!
");
? ?else if(sum >= 80)
? ? ? ?printf("良!
");
? ?else if(sum >= 70)
? ? ? ?printf("一般!
");
? ?else if(sum >= 60)
? ? ? ?printf("及格!
");
? ?else
? ? ? ?printf("不及格!
");
? ?printf("—————————
");
}
int main()
{
? ?struct node *head = ( struct node *)malloc(sizeof(struct node));
? ?head->next = NULL;
? ?generator(head);
? ?test(head);
}。
全部