C语言编程 100以内整数加减法

1. 能随机产生20个数,分别组成5个加法算式和5个减法算式(不允许小的数减大的数,计算结果可以超出100),用户输入10个算式的答案。最后,系统给出得分情况(百分制)。并且根据得分,给出相应的鼓励的话。
0~50 分:要加油哦!
60~80分:真不错哦!
80~90分:你真棒!
100分:酷必了!
2. 要求:程序运行的时候,应该有相应的提示信息!

这对于初学者还真不简单;要产生真正的随机数,必须用时间函数初始化随机种子,还有相应提示等。你参考下下面的代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()

 int i,a[20],answer,score=0;
 srand(time(NULL));
 for(i=0;i<20;i++)
  a[i]=rand()%90+10;//产生20个10到99间的随机数
 printf("请输入答案,共10道题:\n");
 for(i=0;i<10;i+=2)
 {//取前10个数,组成5个加法题
  printf("%d+%d=",a[i],a[i+1]);
  scanf("%d",&answer);
  if(a[i]+a[i+1]==answer)
   score+=10;//对了加10分
 }
 for(;i<20;i+=2)
 {//取前10个数,组成5个加法题
  if(a[i]>a[i+1])//保证不出现小的数减大的数
   printf("%d-%d=",a[i],a[i+1]);
  else
   printf("%d-%d=",a[i+1],a[i]);
  scanf("%d",&answer);
  if(a[i]-a[i+1]==answer)
   score+=10;//对了加10分
 }
 switch(score){
 case 100:
  printf("酷毙了!!\n");break;
 case 80:
 case 90:
  printf("真棒!\n");break;
 case 60:
 case 70:
  printf("真不错哦!!!\n");break;
 default:
  printf("要加油哦!\n");
 }
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-23
srand(time(0));
int a[20];
for(int i=0;i<20;i++)
{
    a[i]=rand()%100;
}
for(int i=10;i<20;i+=2)
{
    if(a[i]<a[i+1])
    {
        int t=a[i];a[i]=a[i+1];a[i+1]=t;
    }
}
int score =0;
for(int i=0;i<20;i+=2)
{
    char c=i<10?'+':'-';
    printf("%d%c%d=几?\n",a[i],c,a[i+1]);
    int x;
    scanf("%d",&x);
    if( (i<10&x=a[i]+a[i+1]) | (i>=10&x=a[i]-a[i+1]) )
    {
        score+=10;
        cout<"回答正确"<<endl;
    }
    else cout<"回答错误"<<endl;
}
switch(score)
{
    case 0:
    case 10:
    case 20:
    case 30:
    case 40:
    case 50:cout<<"要加油哦"<<endl;break;
    case 60:
    case 70:
    case 80:cout<<"真不错哦"<<endl;break;
    case 90:cout<<"你真棒"<<endl;break;
    case 100:cout<<"酷毙了"<<endl;break;
    default:;
}

第2个回答  2015-03-23
#include <stdlib.h>
#include <stdio.h>

int main()
{
int a[20];
int i;

for(i = 0;i < 20;i++)

{
a[i] = rand() % 100;

}
retunr 0;
}
仅此提示到这里,以上只是随机产生20个小于一百的整数并放入a[20]这个数组。后面的应该很容易的!
第3个回答  2015-03-23
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void rnd(int m, int *a, int n)
{
int *p = (int*)malloc(m*sizeof(int));
int i,t;
for(i=0;i<m;i++)p[i]=i;
for(i=0;i<n;i++)
{
t=rand()%m--;
a[i]=p[t];
p[t]=p[m];
}
free(p);
}
int main()
{
int a[20],i;
srand(time(0));
rnd(21,a,20);
for(i=0;i<20;i++)printf("%d ",a[i]);
}
第4个回答  2015-03-23
你太懒了,这么简单,动动手吧追问

不会诶,不是懒