c语言 产生1~100随机数,输入一个数字,和第x个随机数一致的话,计算1~x个随机数的和
发布网友
发布时间:2022-05-24 11:48
我来回答
共4个回答
热心网友
时间:2023-10-12 09:41
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i,j,a[100],num,sum;
srand((unsigned) time(NULL));
for(i = 0; i < 100; i++) {// 生成1 -- 100之间的随机数
if(i && i % 10 == 0) printf("\n");
a[i] = rand()%100 + 1;
printf("%3d ",a[i]);
}
printf("\n");
while(scanf("%d",&num) == 1) {
sum = 0;
for(i = 0; i < 100; ++i) {
if(num == a[i]) {
for(j = 1; j <= num; ++j)
sum += j;
}
}
if(sum) printf("1 + ...... + %d = %d\n",num,sum);
else printf("没有数:%d\n",num);
}
return 0;
}
追问谢谢,不过怪我题目没描述清楚
题目要求的是无限生成1~100之间的数(不用显示),然后输入一个数,和随机数第x个一致的话,去计算1~x的和,所以不会出现没有数的情况
追答#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i,num,sum;
srand((unsigned) time(NULL));
while(scanf("%d",&num) == 1) {
if(num < 1 || num >= 100) {
printf("输入的数据超出范围。\n");
printf("要求在1 -- 100之间。\n");
continue;
}
while(num != rand() % 99 + 1); // 貌似没有价值
sum = 0;
for(i = 1; i <= num; ++i)
sum += i;
if(sum) printf("1 + ...... + %d = %d\n",num,sum);
}
return 0;
}
热心网友
时间:2023-10-12 09:41
#include<stdio.h>\
#include<stdlib.h>
#include<time.h>
main()
{
int i, a[50], n, sum = 0;
srand((unsigned) time(NULL));
for(i=0; i<50; i++){
a[i] = rand()%100+1; // 要将这些随机数保存起来
printf("%3d", a[i]);
}
printf("\n");
// 输入一个数
scanf("%d", &n);
// 和产生的随机数进行比较,直到遇到相等的结束
for(i = 0; i < 50 && n != a[i]; i++);
if(n == a[i]) // 有相等的
{
printf("第1到第%d个随机数的和是:", i+1);
while(i >= 0)
sum += a[i--];
printf("%d\n", sum);
}
else printf("没有与%d一致的随机数\n", n);
}
热心网友
时间:2023-10-12 09:42
int r,count=0,sum=0;
do{
/*产生随机数(1~100)*/
srand((unsigned) time(NULL));
r=rand()%100+1
sum=sum+r;
count++;
}while(r!=n)/*不相等的话一直累加,直到相等,不用考虑次数。需要次数的话加个计数器就行了*/
热心网友
时间:2023-10-12 09:42
C语言忘记差不多了 给你说下我的思路吧。
键盘收集一个输入值n,校验n的范围1-100的整数。
定义x=0 随机数和h=0
校验n和x如果相等 则输出h 如果不想等进入4循环
产生随机数范围1-100整数=x,h=h+x