c语言,求大神指点

供稿:hz-xin.com     日期:2025-01-12
C语言随机数

随机序列的产生是有规律的,当然也不是这样说
就是说:srand影响了之后产生随机数的整个序列
假如你不用这个的话后面产生的随机序列可能会相同,为了避免这样的情况就利用srand(time(NULL));

你不妨试试下面的程序看看
#include
#include
#include

int main(void)
{
int i;
//srand( time(NULL) );
for( i = 0; i < 10; i++ )
printf( "Random number #%d: %d
", i, rand() );

return 0;
}

然后你把隐去的那段不要隐了
看一下结果你就明白了,呵呵
我语言表达不是很好,不过一看就明白了

你的两个数组的长度都是 80。如果不是动态开辟的数组,你声明的时候给多少长度就是多少长度。
第二个数组的长度是2?估计你使用 strlen 函数求吧? strlen只能求字符串长度,没办法求数组长度。strlen 是用 '\0' 来判断字符串的结束标志的,而你第二个数组中放置了几个'\0' (ASCII码为0,),所以得到的长度是 2。将第二个数组改为char m[80]={'1','1','0','1','0','0','0'}; 用 strlen 求得结果为 7。
求数组长度的正确方法:
sizeof(mes)/sizeof(int);
sizeof(mes)/sizeof(char)

分析:

从m循环来看,4次循环m会分别等于1,2,3,4,由于有s=s+p;是求累加的结果,即分别在m等于1~4时求p值累加

  从n循环来看,m次循环,由于p=1;语句那么p值在n=1,2,...,m-1循环时无论怎么算都被这句冲掉,也就是在n=m这最后一次循环时计算的p值能最终保留下来

    最内侧循环,仍用变量n,所以外循环的n的作用取消,循环m次,让p累乘,相当于求p=1*2*3*...*m

那么在m循环m=1时,内部求得的p=1*1=1,s=0+1=1

m=2时,p=1*2=2,s=1+2=3

m=3时,p=1*2*3=6,s=3+6=9

m=4时,p=1*2*3*4=24,s=9+24=33

最后输出s=33



指点什么??这就是一个循环的嵌套啊

(1),(2),(3),(4)
(1),(1,2),(1,2,3),(1,2,3,4)
(1),((1),(1,2)),((1),(1,2),(1,2,3)),((1),(1,2),(1,2,3),(1,2,3,4))
1,2,12,288
1,3,15,303
应该是"303\n"

输出结果:
s=10

s=4

c语言,求大神指点
分析:从m循环来看,4次循环m会分别等于1,2,3,4,由于有s=s+p;是求累加的结果,即分别在m等于1~4时求p值累加 从n循环来看,m次循环,由于p=1;语句那么p值在n=1,2,...,m-1循环时无论怎么算都被这句冲掉,也就是在n=m这最后一次循环时计算的p值能最终保留下来 最内侧循环,仍用...

我是菜鸟,求C语言大神指点~
简单写了一下,因为子函数只能传递一个参数回去,所以只能在子函数中就把结果输出,不在回到主函数输出!直接源代码:include<stdio.h> int MAX(int m,int n,int a[m][n]);int main(){ int a,b,c,i,j,m,n;printf("请输入m和n的值,用逗号隔开:");scanf("%d,%d",&m,&n);int m...

关于彩票的c语言,结果不对,求大神指点。
1、c语言的数组下标从0开始 所以你的r[6]这个数组,它的有效下标是0到5.你的 scanf("%d,%d,%d,%d,%d,%d,%d",&cai[1].re.r[1],&cai[1].re.r[2],&cai[1].re.r[3],&cai[1].re.r[4],&cai[1].re.r[5],&cai[1].re.r[6],&cai[1].y);还有 for(j=1;j<7;j++...

一道c语言题目 求大神指点下算法?
根据题意,随机生成红绿蓝球任意个数,并任意顺序排列。这里采用随机数实现。统计按红绿蓝顺序排列最少交换次数,我的思路是:第一步:循环将最后一个红色球与最靠前的其它两色球(并且满足位置在红球之前)交换。第二步:循环将最后一个绿球与最靠前的蓝球(必须在绿球之前)交换。include <stdio.h> ...

...max函数出了问题,却不知道错在哪里了,求大神指点
一、错误并不在程序中,而是你的输入有问题。输入时在两个数字之间加一个逗号即可。程序中,scanf语句中写的是“%d,%d”,这就要求你在输入时,两个数字之间也要加一个逗号,写成“12,23”,才能正确输入a与b的值,你输入时丢了逗号,使b不能正确输入23的值,所以得到看似错误的结果。二、你把...

C语言大神求指点啊,帮忙改正以下商品查询函数search();
第一个问题 你的num和name都是什么类型的?从你输入上看 应该是char *或者是char[]型的 这样就不能用==来判断 而应该用字符串比较函数strcmp if(sup.num==stu[i].num) 改为 if(strcmp(sup.num,stu[i].num) == 0)第二个问题 在按照name查询时 比较的还是num 这里 if(sup.num==stu[i...

求c语言大神指点迷津。。。不知道主函数怎么写了
char data;struct node *link;} NODE;\/\/*** 显示菜单 ***\/\/ void ShouMenu(){ printf("\\n\\n");printf("*** 菜单 ***\\n");printf("1.插入字符 2.删除字符\\n");printf("3.显示链表 0.退出程序\\n");printf("***

求大神指点C语言1||0&&0是1因为断路,但是0&&1||1为什么也是1,不会...
1||0&&0——因为&&的优先级比||高,所以1||0&&0等效为1||(0&&0),由于1已经为真,确定了整个表达式的值为1,所以||右边没有必要计算了(俗称‘短路’了)。0&&1||1——同样因为&&的优先级比||高,所以0&&1||1被等效为(0&&1)||1,由于()中的结果是假,后面又是||,所以整个表达式...

求c语言大神指点 为什么运行后什么都没有
while语句死循环了 那个k=k+1;和那个i-- 应该是while的循环体 在这里没有括号到一起来 vc运行起来 它所认为的是只有k=k+1是循环体

求c语言大神指点我这个判断一个数能不能被9整除的程序怎么错的?(OJ...
include<stdio.h> void main(){ char c;int sum=0;while ( 1 ){ c=getch(); if ( c=='\\n' || c==10 ) break;sum+=(c-'0');} if ( sum%9 ) printf("No\\n"); else printf("Yes\\n");}