医院网站建设运营方案,seo百科,百度关键词优化软件网站,黔东南手机网站建设1、背景#xff1a;用一个丢骰子的简单案例熟悉了C语言多文件编程该咋写2、格式#xff08;1#xff09;主函数文件main.c//文件头part1:所有要使用的函数#include ;#include ;#include ;//文件头part2:放所有函数原型的文件#inlucde main.h//文件头part3#… 1、背景用一个丢骰子的简单案例熟悉了C语言多文件编程该咋写2、格式1主函数文件main.c//文件头part1:所有要使用的函数#include ;#include ;#include ;//文件头part2:放所有函数原型的文件#inlucde main.h//文件头part3各个要使用的子文件#include funciton1.c#inlucde function2.cint main(){function1(); //在function1.cfunction2(); //在function2.creturn 0;}2乘放所有函数原型、全局变量的文件main.hvoid function1(void);void function2(void);/*
这里有2个知识点或者说优秀编程规范
1、对全局数据使用const,防止暴露数据
2、头文件方案可以偷懒而不使用“一个文件中定义式声明其他文件使用extern引用式声明”对方案但是必须加static。不然file1.c和file2.c都包含main.h那么这2个文件就都有一个相同的定义式声明大多数编译器不允许这么做
*/static const int a 10;static const double b 20(3) 放各个函数的子文件(示例function1.c)void function1(void){具体函数逻辑}3、案例丢骰子1主函数#include #include #include main.h#include random.c#include roll.c/*
1、要求用户输入骰子数、骰子的面数输出掷出的结果
2、随机数的生成种子基于time生成真随机数
3、支持循环输入
4、能处理以下错误情况
1side小于1
2输入类型不匹配
3遇到EOF
*//*伪算法
int main(){输入函数骰子数报错处理、面数报错处理循环(当不报错的时候){丢骰子函数骰子数、骰子的面数;输入函数}
}丢骰子函数骰子数、骰子的面数{while(骰子数){随机数函数骰子的面数}数组存储所有随机数结果对数组求和输出结果骰子数、骰子的面数、数组求和结果
}随机数函数骰子的面数{种子 时间函数返回的某个数输出结果 种子 % 骰子的面数
}
*/int main(){int rolls,sides,result;//输入函数部分printf(please input the num of rolls you wanna use:);if(scanf(%d,rolls) ! 1){printf(you should have input one num.\n);};if(rolls 1){printf(you use %d rolls with %d sides, and your result is %d\n,rolls,sides,roll(rolls,sides));printf(Another??? please input the num of rolls you wanna use:);if(scanf(%d,rolls) ! 1){printf(you should have input one num.\n);};if(rolls 1){printf(you should use 1 roll at least\n);}printf(How many sides a roll have? );if(scanf(%d,sides) ! 1){printf(you should have input one num.\n);};if(sides 1){printf(you should use 1 sides at least\n);} }//-test输入函数return 0;}(2)main.h//这里存放丢骰子函数的函数声明//丢骰子函数int roll(int rolls,int sides);//随机数函数int my_random(int sides);(3)丢骰子函数int roll(int rolls,int sides){int result 0;int list[rolls];for(int i 0; i rolls;i){list[i] my_random(sides);}for(int i 0 ;i rolls;i){result list[i];}return result;}/*
丢骰子函数骰子数、骰子的面数{while(骰子数){随机数函数骰子的面数}数组存储所有随机数结果对数组求和输出结果骰子数、骰子的面数、数组求和结果
}
*/(4)随机数函数/*
随机数函数骰子的面数{种子 时间函数返回的某个数输出结果 种子 % 骰子的面数
}
*/int my_random(int sides){int seed (unsigned int)time(0);seed seed % sides 1;return seed;}