c语言srand_C语言经典100题(17)

1

上期答案揭晓

首先给大家看看上一篇文章C语言经典100题(16)中第三部分编程题的答案:

#includeint main(){    int a,b,t,r;    printf("请输入两个数字:\n");    scanf("%d %d",&a,&b);    if(a    {t=b;b=a;a=t;}    r=a%b;    int n=a*b;    while(r!=0)    {        a=b;        b=r;        r=a%b;    }    printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b);    return 0;}

以上实例输出结果为:

请输入两个数字:12 26这两个数的最大公约数是2,最小公倍数是156

2

今日知识分享

从函数返回数组

C 语言不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。我们将在下一章中讲解有关指针的知识,您可以先跳过本章,等了解了 C 指针的概念之后,再来学习本章的内容。 如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:
int * myFunction(){...}
另外,C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 现在,让我们来看下面的函数,它会生成 10 个随机数,并使用数组来返回它们,具体如下:
#include #include #include /* 要生成和返回随机数的函数 */int * getRandom( ){  static int  r[10];  int i;  /* 设置种子 */  srand( (unsigned)time( NULL ) );  for ( i = 0; i < 10; ++i)  {     r[i] = rand();     printf( "r[%d] = %d\n", i, r[i]);  }  return r;}/* 要调用上面定义函数的主函数 */int main (){   /* 一个指向整数的指针 */   int *p;   int i;   p = getRandom();   for ( i = 0; i < 10; i++ )   {       printf( "*(p + %d) : %d\n", i, *(p + i));   }   return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
r[0] = 313959809r[1] = 1759055877r[2] = 1113101911r[3] = 2133832223r[4] = 2073354073r[5] = 167288147r[6] = 1827471542r[7] = 834791014r[8] = 1901409888r[9] = 1990469526*(p + 0) : 313959809*(p + 1) : 1759055877*(p + 2) : 1113101911*(p + 3) : 2133832223*(p + 4) : 2073354073*(p + 5) : 167288147*(p + 6) : 1827471542*(p + 7) : 834791014*(p + 8) : 1901409888*(p + 9) : 1990469526

3

今日经典编程题

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:利用while语句,条件为输入的字符不为'\n'。

各位有兴趣的读者可以自行设计程序实现,我将在下一篇文章揭晓该题的代码实现供参考! 扫码关注我,手把手带你撸代码 29570fcd81089656e166344d00e178ec.png

如果你觉得文章让您增长了知识,

请点击右下方的“在看

   37c16b530734c0f89da66349617e7ce8.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值