实验1
rand():
1.不需要参数,返回一个从0到最大随机数的任意整数
2.0~99 rand()%100 1~100 rand()%100+1
即 rand()%n+a a是起始值,n-1+a是终止值,n是整数的范围
3.通常rand()产生的随机数在每次运行的时候都与上一次相同,若要产生每次不同的随机数,则可以使用srand(seed)函数进行产生随机化种子
4.time.h下用srand(time(0))来使用当前时间,使随机数发生器,随机化,这样可以保证每两次运行时得到不同的随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main()
{
int number;
int i;
srand( time(0) ); // 以当前系统时间作为随机种子
for(i = 0; i < N; ++i) {
number = rand()%500 + 1;
printf("20228329%04d\n", number);
}
return 0;
}
实验二
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 3
int main(){
int number,i,a,b,c;
srand(time(0));
number=rand()%30+1;
printf("猜猜2022年11月哪一天会是你的lucky day");
printf("\n");
printf("开始喽,你有三次机会,猜吧(1~30):");
for(i=0;i<N;++i){
scanf ("%d",&a);
if(a<number && i != 2){
printf("你猜的日期早啦,你的lucky还没到呢\n");
printf("\n");
printf("再猜(1~30):");
}
else if(a>number && i != 2){
printf("你猜的日期晚啦,你的lucky已经过啦\n");
printf("\n");
printf("再猜(1~30):");
}
else if(a==number){
printf("哇,猜中啦\n");
return 0;
}
else{
if(a<number){
printf("你猜的日期早啦,你的lucky还没到呢\n");
printf("\n");
}
else if(a>number){
printf("你猜的日期晚啦,你的lucky已经过啦\n");
printf("\n");
}
}
}
printf("次数用完啦,告诉你:11月,你的lucky day是%02d号",number);
return 0;}
![]()
实验3
#include<stdio.h>
int main(){
char a;
while( scanf("%c",&a)!=EOF)
{
getchar();
if(a=='r'){
printf("stop!\n");
}
else if(a=='g'){
printf("go go go\n");
}
else if(a=='y'){
printf("wait a minute\n");
}
else printf("something must be wrong\n");
}
return 0;
}
![]()
实验4
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
unsigned int n,a;
while(scanf("%d%d",&n,&a)!=EOF){
double b=0;
double s=0.0;
for(double i=1;i<=n;i++){
b=b*10+a;
s=s+i/b;
}
printf("n=%d,a=%d,s=%lf",n,a,s);
printf("\n");
}
return 0;}
![]()
实验5
#include<stdio.h>
int main(){
int h=0,w=0;
for(h=1;h<=9;h++){
for(w=1;w<=h;w++){
printf(" %d*%d=%3d",h,w,h*w);
}
printf("\n");
}
return 0;
}
![]()
实验6
#include<stdio.h>
int main(){
int m,n,w;
scanf("%d",&m);
n=m+1;
for(int i=1;i<n;i++){
for(int j=1;j<=i;j++){
printf(" ");
}
for(int k=i;k<2*n-i-1;k++){
printf(" o ");
}
printf("\n");
for(int j=1;j<=i;j++){
printf(" ");
}
for(int k=i;k<2*n-i-1;k++){
printf("<H>");
}
printf("\n");
for(int j=1;j<=i;j++){
printf(" ");
}
for(int k=i;k<2*n-i-1;k++){
printf("I I");
}
printf("\n");
}
return 0;
}
![]()
第i行,打印2i-1个字符小人
不是很会用\t
\t,跳过8个空格,从第8个位置结束,从第九个位置开始;若前面有8个字符,则从第16个位置结束,从第17个位置开始。