#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int flip(void); //function prototype
int main(void)// main function{//srand(time(NULL));//random generator
for(int i=1; i<=100; ++i)// for loop flip coin 100 times
{
printf("%2d", flip());
if(i % 10==0)
puts("");
}// end of for loop
}// end of main
// Coin flip function
int flip (void){
int toss = 0;
toss = rand()%2;
// generates 1 or 2 at random
if(toss==1)
printf("heads");
else
printf("tails");
}//end of flip function输出:
heads 5heads 5tails 5tails 5heads 5tails 5tails 5tails 5tails 5tails 5
heads 5heads 5heads 5heads 5heads 5heads 5heads 5tails 5heads 5tails 5
heads 5tails 5tails 5heads 5tails 5tails 5heads 5tails 5tails 5heads 5
heads 5tails 5heads 5tails 5heads 5tails 5heads 5heads 5heads 5tails 5
heads 5heads 5tails 5heads 5heads 5tails 5heads 5heads 5heads 5tails 5
heads 5tails 5tails 5heads 5heads 5heads 5heads 5heads 5heads 5tails 5
tails 5heads 5tails 5tails 5tails 5tails 5tails 5tails 5tails 5tails 5
tails 5heads 5tails 5heads 5tails 5tails 5tails 5heads 5heads 5tails 5
heads 5heads 5tails 5tails 5tails 5tails 5tails 5tails 5heads 5tails 5
tails 5heads 5tails 5heads 5heads 5tails 5tails 5tails 5heads 5heads 5发布于 2022-03-30 04:47:56
您调用翻转并打印其结果。翻转功能是打印‘正面’或‘尾巴’,printf是打印5
printf("%2d", flip());请注意,
int flip (void){
int toss = 0;
toss = rand()%2;
// generates 1 or 2 at random
if(toss==1)
printf("heads");
else
printf("tails");
}//说那个翻转返回一个整数。(不确定会是什么)但是您没有返回任何内容,但是编译器将返回任何函数的最后一个返回值,即printf返回它打印的字符数(注意,这不是应该发生的情况,编译器应该警告您您犯了错误)。
由于还不清楚翻转应该返回什么值,我建议将其改为42 --这是一个很好的数字。
int flip (void){
int toss = 0;
toss = rand()%2;
// generates 1 or 2 at random
if(toss==1)
printf("heads");
else
printf("tails");
return 42;
}//你现在的输出是'heds 42尾42.‘
可能你只是不想打印结果所以替换
printf("%2d", flip());使用
flip();发布于 2022-03-30 04:52:35
在int触发器(void)函数中,您没有返回任何整数,因此将考虑从最后一个函数返回的整数。如果您打印一个5个字符串,它将返回一个5。如果你要打印的是2个字符,你会得到一个2。
例如:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int check (void );
int main(void) { // main function{//srand(time(NULL));//random generator
for(int i=1; i<=100; ++i)// for loop flip coin 100 times
{
printf("%2d", check());
if(i % 10==0)
puts("");
}// end of for loop
}// end of main
int check (void ) {
printf("hi");
}会打印出这样的东西
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2
hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2hi 2您可以像这样修改代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int flip(void); //function prototype
int main(void) { // main function{//srand(time(NULL));//random generator
for(int i=1; i<=100; ++i)// for loop flip coin 100 times
{
flip();
if(i % 10==0)
puts("");
}// end of for loop
}// end of main
// Coin flip function
int flip (void){
int toss = 0;
toss = rand()%2; // generates 1 or 2 at random
if(toss==1)
printf("heads\n");
else
printf("tails\n");
return 0;
}//end of flip function发布于 2022-03-30 04:40:51
倒装返回打印的字符数(5),因为正面和尾部长度相同。然后在主循环中打印翻转的结果。所以它首先打印正面/反面,然后再打印5。实际上,你应该从翻转中返回一些有意义的值。否则,触发器将返回其返回寄存器中的任何碰巧。
https://stackoverflow.com/questions/71671543
复制相似问题