c语言程序 最好讲解一下设计思路画一下流程图

2025-04-07 09:11:02
推荐回答(4个)
回答1:

#include 
#include 
#include 
int main()
{ int i,a,b,c,d,n=0;
  srand(time(0));
  for(i=0; i<10; i++)        //计算10次
  { a=rand()%41+10;        //产生10~50之间被乘数
    b=(70+rand()%31)/a;    //假定积在70~100之间,取整数商作为乘数
    c=a*b;                //重新计算积
    printf("%d*%d=",a,b);    //打印题目
    scanf("%d",&d);        //接收答案
    if(c==d)                //判断对错
    { printf("OK!\n");
      n++;
    }
    else printf("ERROR!\n");
  }
  printf("练习成绩为:%d 分\n",10*n);    //给出10题的总分
  printf("\n");
  return 0;
}

回答2:

二十年的公主,一天的皇后,十个月的宠妃,一辈子的保姆,这就是女人的一生。 可有人又说: 二十年的太子,一天的皇上,十个月的奴才,一辈子的提款机,这就是男人的一生。 应该是: 二十年的追寻,一天的仪式,十个 月的呵护,换来一辈子的相濡以沫。 其实,男人和女人都不容易。 相扶相携,同甘共苦,才是真正的夫妻! 陌生人 新婚快乐!

回答3:

十足十个D有损市容弱智青年咖啦!

回答4:

#include 
#include 

#define LENGTH 10

/**
 * 表示一个乘法算式的结构体
 */
typedef struct {
    int a;          // 第一个乘数
    int b;          // 第二个乘数
    int product;    // 乘积
} Formula;

/**
 * 随机生成若干个乘法算式的两个乘数
 */
void generateFormulas(Formula* arr, int len) {
    int i, a, b;
    Formula* f;

    srand(time(NULL));  // 初始化随机数

    for (int i = 0; i < len; i++) {
        f = arr + i;

        // 由于第1个乘数较大, 如果先随机生成第1个乘数, 可能无法满足第2个乘
        // 数在[1, 9]范围, 同时积又不超过100, 所以必须先生成第2个较小的乘数

        // 第1步: 先生成第2个乘数, 范围 [1, 9]
        f->a = 1 + rand() % ((9 - 1) + 1);

        // 第2步: 再生成第1个乘数, 范围最小是10, 由于乘积不能超过100, 
        // 所以最大值为 (100 / f->a)
        f->b = 10 + rand() % ((100 / f->a - 10) + 1);
    }
}

/**
 * 统计得分
 */
void statScore(Formula* arr, int len) {
    int i, score = 0;
    Formula* f;

    printf("\n统计得分\n");

    for (int i = 0; i < len; i++) {
        f = arr + i;
        
        if ((f->a * f->b) == f->product) {
            // 答案正确
            score += 10;
            printf("%2d:  %d * %d = %d  对\n", (i + 1), f->a, f->b, f->product);
        } else {
            // 答案错误
            printf("%2d:  %d * %d = %d  错, 正确答案为 %d\n", (i + 1), f->a, f->b, f->product, f->a * f->b);
        }
    }

    printf("最终得分: %d\n", score);
}

/**
 * 主函数
 */
int main() {
    // 声明若干个乘法算式
    Formula arr[LENGTH];
    int i;

    // 随机生成若干个乘法算式的两个乘数
    generateFormulas(arr, LENGTH);
    
    // 打印所有的算式
    printf("题目:\n");
    for (i = 0; i < LENGTH; i++) {
        printf("%2d:  %d * %d =\n", (i + 1), arr[i].a, arr[i].b);
    }

    // 输入答案, 保存到结构体的 product 变量中(每个公式的答案之间用空格隔开)
    printf("\n输入答案(每题答案之间用空格隔开), 全部输完后按回车:\n");
    for (i = 0; i < LENGTH; i++) {
        scanf("%d", &arr[i].product);
    }

    // 统计得分
    statScore(arr, LENGTH);

    return 0;
}