| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 812 人关注过本帖
标题:求助:谁能帮我翻译下最基础的C语言,我是新手,谢谢了!
只看楼主 加入收藏
xsnboy
Rank: 1
来 自:深圳
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-7
收藏
 问题点数:0 回复次数:3 
求助:谁能帮我翻译下最基础的C语言,我是新手,谢谢了!
学习C语言3天了,但很感兴趣,现在学到数组,把我难倒了,很多语句和他表达的意思我根本看不懂,教程电子书上写的都是片面,对于新手有些力不从心的感觉,希望各位懂的麻烦详细翻译一下
很简单的2个程序,但是对我现在来说太难了,希望能说具体点,在此谢谢了!
第一个:
main()
{
  int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
  for(i=0;i<10;i++)
      {p=i;q=a[i];
        for(j=i+1;j<10;j++)
        if(q<a[j]){p=j;q=a[j];}
        if(p!=i)
        {
          s=a[i];
          a[i]=a[p];
          a[p]=s;
        }
        printf("%d ",a[i]);
      }
    printf("\ninput number:\n");
    scanf("%d",&n);
    for(i=0;i<10;i++)
      if(n>a[i])
     {for(s=9;s>=i;s--) a[s+1]=a[s];
      break;}
      a[i]=n;
   for(i=0;i<=10;i++)
      printf("%d ",a[i]);
    printf("\n");
}
第2个:main()
{
    char st[20],cs[5][20];
    int i,j,p;
    printf("input country's name:\n");
    for(i=0;i<5;i++)
      gets(cs[i]);
    printf("\n");
    for(i=0;i<5;i++)
      { p=i;strcpy(st,cs[i]);
        for(j=i+1;j<5;j++)
      if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
    if(p!=i)
      {
        strcpy(st,cs[i]);
        strcpy(cs[i],cs[p]);
        strcpy(cs[p],st);
      }
    puts(cs[i]);}printf("\n");
}
搜索更多相关主题的帖子: 翻译 基础 C语言 
2008-10-10 17:48
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
main()
{
  int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};/*定义i,j,q,p,s,n和a[11],并对a数组赋值*/
  for(i=0;i<10;i++)
      {p=i;q=a[i];/* 用p存储i的数值,也就是记住数组的下标。用q记录a[i]的数值,用作比较 */
        for(j=i+1;j<10;j++)
        if(q<a[j]){p=j;q=a[j];}/* 如果q<a[j],也就是刚才的a[i]小于a[j],将p和q的数值更新 */
        if(p!=i)/* 如果p值不等于原来的i,也就是说数值经过改动,就转换a[i]和a[j]的数据 */
        {
          s=a[i];
          a[i]=a[p];
          a[p]=s;
        }
        printf("%d ",a[i]); /* 打印a[i]的值 */
      }
    /*数组排序完毕,升序排列 */
    printf("\ninput number:\n");
    scanf("%d",&n);/* 输入n的值*/
    for(i=0;i<10;i++) /* n值与数组中的数值逐一比较 */
      if(n>a[i])
     {for(s=9;s>=i;s--) a[s+1]=a[s];/* 如果n值大于数组中某一数值 */
      break;}/*将数组的数值向后移一位,并跳出循环*/
      a[i]=n;/*将原来的a[i]值,重新赋为n值。*/
   for(i=0;i<=10;i++)
      printf("%d ",a[i]);
    printf("\n");/* 打印被重新赋值的数组*/
}
/*这段程序的作用是把原来的数组升序排列,并输入一个新的数值加入到合适的位置 */

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第2个:main()
{
    char st[20],cs[5][20];
    int i,j,p;
    printf("input country's name:\n");
    for(i=0;i<5;i++)
      gets(cs[i]);      /* 逐一输入姓名,大小为单次输入最大20个字符 */
    printf("\n");
    for(i=0;i<5;i++)
      { p=i;strcpy(st,cs[i]);/* 拷贝姓名到数组st中*/
        for(j=i+1;j<5;j++)
      if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}/*用st逐一与数组字符元素比较,如果st大于cs中的字符,就把st重新赋值为cs[j],并把哨兵变量p重新赋值为cs[j]的下标j*/
    if(p!=i)
      {
        strcpy(st,cs[i]);
        strcpy(cs[i],cs[p]);
        strcpy(cs[p],st);
      }/*交换字符数组cs的数值 */
    puts(cs[i]);}printf("\n"); /* 打印交换后的字符串 */
}
/*这个程序的作用是把一个字符数组(5行)赋值,并升序排列。主要运用的是函数strcpy,strcmp */

####################################3

    解释得不一定正确,但出发点是正确的。谨作参考。
2008-10-11 01:33
xsnboy
Rank: 1
来 自:深圳
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-7
收藏
得分:0 
谢谢你!感谢指导.

睡醒时.一般都是天黑.
2008-10-11 10:47
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
羡慕你啊  我当时30天也没学到数组

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-11 11:25
快速回复:求助:谁能帮我翻译下最基础的C语言,我是新手,谢谢了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028664 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved