1 随机函数练习
1)参照王芳版课本第45页的例子,练习练习随机函数rand的用法。
注:
函数原型:int rand();
功能:返回一个随机数
2) 请使用rand函数,来写一个上午上课随机点名的小程序,要求执行该程序后会输出被提问学生的学号。(注意,咱班有45个人,学号为1~45)
定义一个100长度的整型数组,使用rand函数生产随机数对每个元素进行赋值,顺序遍历该数组,输出所有值大于50的数。输出格式例子为:
a[1]=100
a[5]=70
1)参照王芳版课本第45页的例子,练习练习随机函数rand的用法。
注:
函数原型:int rand();
功能:返回一个随机数
2) 请使用rand函数,来写一个上午上课随机点名的小程序,要求执行该程序后会输出被提问学生的学号。(注意,咱班有45个人,学号为1~45)
#include "stdio.h"
#include "stdlib.h"
main()
{
int a;
a=rand()%45+1;
printf("the random number is %d\n",a) ;
}
3)对2中程序进行改进,要求一次输出7个学生的学号(我可能会在刚刚上课的时候就执行这个程序,并通知这7个学生随时准备回答问题)
#include "stdio.h"
#include "stdlib.h"
main()
{
int i,b;
for(i=0;i<=6;i++)
{
b=rand()%45+1;
printf("the %d random number is %d\n",i+1,b) ;
}
}
4)对3中的程序进一步改进,要求使用数组来存储这些学生的学号,同时要求学号不能重复。
#include "stdio.h"
#include "stdlib.h"
#define N 7
main()
{
int i,j,temp;
int students[N];
for(i=0;i<N;i++)
{ temp=rand()%45+1;
if(i>0)
{ for(j=0;j<=i-1;j++)
{ if(temp==students[j])
{temp=rand()%45+1;
j=-1;}
}
}
students[i]=temp;
printf("the %d student no is : %d\n",i,students[i]);
}
}
2 一维数组练习
定义一个100长度的整型数组,使用rand函数生产随机数对每个元素进行赋值,顺序遍历该数组,输出所有值大于50的数。输出格式例子为:
a[1]=100
a[5]=70
a[20]=90
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[100],i;
a[i]=rand();
for(i=0;i<100 ;i++)
if(a[i]>50)
printf("a[%d]=%d\n",i,a[i]);
}
3 二维数组练习
1)随机生成一个对称矩阵,并输出。
#include "stdio.h"
#include "stdlib.h"
#define n 10
main()
{
int a[n][n],i,j;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
a[i][j]=rand();}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(i!=j)
a[i][j]=a[j][i];}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");}
}
2)两个矩阵相加。
#include "stdio.h"
#include "stdlib.h"
main()
{
int a[3][3],b[3][3],c[3][3],i,j;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
a[i][j]=rand();}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
b[i][j]=rand();}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%d ",c[i][j]);
printf("\n");}
}