c语言的小问题【附截图】

编了一个模拟36选7的中奖小程序,可是会出现重复的数,见截图源码如下:/*36选7*/#include<stdlib.h>#include<stdio.h>#includ... 编了一个模拟36选7的中奖小程序,可是会出现重复的数,见截图
源码如下:

/*36选7*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{
int i,j,temp,z,a[7],b[7]={0};
printf("36选7\n\n");
printf("从小到大输入1,2,3,……,36中的7个数(以空格键分隔,回车键结束)\n");
for(i=0;i<7;i++)
scanf("%d",&a[i]);
srand((unsigned)time(NULL));
for(i=0,z=1;i<7;i++)
{
temp=rand()%100;
if(temp>0&&temp<37)
{
for(j=0;j<=i;j++)
if(b[j]==temp)
z=0;
if(z=1)
b[i]=temp;
else i--;
}
else i--;
}
for(j=6;j>0;j--)
for(i=0;i<j;i++)
if(b[i]>b[i+1]) temp=b[i+1],b[i+1]=b[i],b[i]=temp;
printf("中奖的号码为:");
for(i=0;i<7;i++)
printf(" %d",b[i]);
printf("\n");
printf("你猜中的号码为");
temp=0;
for(i=0;i<7;i++)
for(j=0;j<7;j++)
if(a[i]==b[j])
{
printf(" %d",a[i]);
temp++;
}
printf(" ;共★%d★个号码\n",temp);
}
展开
 我来答
别动队领导
2009-05-01 · TA获得超过399个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:299万
展开全部
for(j=0;j<=i;j++)
if(b[j]==temp)
z=0;
if(z=1)
b[i]=temp;
else i--;
这段是你判断数字是否重复的程序段吧。
注意这一句“if(z=1)”应该是z==1。
还有,应该在每次大循环结束后都将z置1,而不是只在开始让z=1。
所以for(i=0,z=1;i<7;i++)这句应该改为
for(i=0,z=1;i<7;i++,z=1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式