LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: Snoopy

这程序到底错在哪里啊??

[复制链接]
发表于 2003-7-4 19:14:23 | 显示全部楼层

用man或者。。。

或者用gnome里面的帮助,直接查找,非常方便的函数和系统调用手册
发表于 2003-7-4 23:29:30 | 显示全部楼层
同楼上的
开发应该学会使用man 和google
 楼主| 发表于 2003-7-10 13:58:21 | 显示全部楼层
man我英文还没达到那程度啊,,,,google搜索,一时没办法解决这问题啊

不过我慢慢来,这我问了很多人来看,还是解决不了,,,,,,

先把基础学好,,,谢了各位
发表于 2003-7-10 19:01:15 | 显示全部楼层

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. char b[5];

  5. getname1()
  6. {
  7.   int i;
  8.   char c[40]="男南难楠赧囡达搭打瘩嗒沓大鞑笪怛哒疸笪";

  9.   i = rand() % 19 * 2; [color=red]/* c只有19个中文字符 */[/color]
  10.   b[0] = c[i];
  11.   b[1] = c[i+1];
  12.   i = rand() % 19 * 2;
  13.   b[2] = c[i];
  14.   b[3] = c[i+1];
  15.   b[4] = '\0';
  16. }
  17. getname2()
  18. {
  19.   int i;
  20.   char c[40]="钕衄恧女主著朱珠筑逐诸助主住注祝祝祝祝";

  21.   i = rand() % 19 * 2;
  22.   b[0] = c[i];
  23.   b[1] = c[i+1];
  24.   i = rand() % 19 * 2;
  25.   b[2] = c[i];
  26.   b[3] = c[i+1];
  27.   b[4] = '\0';
  28. }
  29. main()
  30. {
  31.   char a[3], a1[3], x;
  32.   //clrscr();
  33.   srand(time(0));
  34.   printf("请输入姓氏: ");
  35.   scanf("%s", a);
  36.   printf("请输入性别(男/女): ");
  37.   scanf("%s", a1);
  38.   while(1)
  39.   {
  40.     if(strcmp(a1, "男")==0)
  41.       getname1();
  42.     else
  43.       getname2();
  44.     printf("\n %s%s\n", a, b);
  45.     printf("\n 这个名字好吗(Y/N)?\n");
  46.     x=getchar(); [color=red]/* 如果输入n就包含了n和换行两个字符 */[/color]
  47.     if(x == 'y' || x == 'Y') [color=red]/* 表达式要写正确 */[/color]
  48.       break;
  49.   }
  50. }
复制代码
发表于 2003-7-10 19:03:02 | 显示全部楼层
关于输入一个字符的问题可以看一下论坛以前的帖子。

再有,中文编程不是这么搞的,这种方法写个小程序玩一下可以。
 楼主| 发表于 2003-7-10 20:24:42 | 显示全部楼层
好,libinary我记住你!!!!!!!!!真不亏是版主,!

顺便再问一个srand(time(0))这句怎么解释啊???

难道上面时间的函数就是用在这里??
发表于 2003-7-10 22:22:55 | 显示全部楼层
srand是设置一个rand的种子值,如果没有这一句的话每次rand出来的序列都是一样的(相当于种子是1),
for(i = 0; i < 10; ++i)
printf("%d\n", rand());
你试一下,运行几次的结果都一样。
srand设置种子,time是为了保证种子不一样。
 楼主| 发表于 2003-7-18 17:34:01 | 显示全部楼层
main()
{
int x="0",y="1";
x=rand ();
y=rand ();
{while(1)
printf("%d%d",x,y);
}
}

为什么这里输出的就是没有5和7啊??可里面好象有点什么规律使的,,

可以解释一下吗 ???
发表于 2003-7-18 21:41:56 | 显示全部楼层
最初由 pinksnoopy 发表
main()
{
int x="0",y="1";
x=rand ();
y=rand ();
{while(1)
printf("%d%d",x,y);
}
}

这样的程序能运行出结果?!!
发表于 2003-7-18 21:49:17 | 显示全部楼层
正确的用法应该是这样:

  1. #include<time.h>
  2. int main()
  3. {
  4.     int x,y;
  5.     srand (time(0));
  6.     x=rand();
  7.     y=rand();
  8.     printf("%d %d",x,y);
  9. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表