| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:帮忙我分析一下这个程序哪里错了?
只看楼主 加入收藏
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
帮忙我分析一下这个程序哪里错了?
#include<stdio.h>

int main()
{
    int x[10];     /*定义数组变量*/
    int y,z;     /*定义变量*/
    int f,r;
   
    for(y=0;y<10;y++)
     {
         printf("x[%d]=",y);
         scanf("%d",&x[y]);
     }
     
     for(y=0;y<10;y++)
      {
          f=x[y];
          r=y;
          for(z=y+1;z<10;z++)
           {
               if(x[z]>f)
                {
                    f=x[z];
                    r=z;
                }
           }
           x[r]=x[y];
           x[y]=f;
      }
      
      for(y=0;y<10;y++)
       {
       printf("%d\t",x[y]);
       if(y=4)
            printf("\n");
       }
      
       return 0;
}
搜索更多相关主题的帖子: include 
2010-12-25 20:26
wfee123
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2010-10-25
收藏
得分:0 
#include<stdio.h>

int main()
{
    int x[10];     /*定义数组变量*/
    int y,z;     /*定义变量*/
    int f,r;
   
    for(y=0;y<10;y++)//给数组输入十个值
    {
        printf("x[%d]=",y);
        scanf("%d",&x[y]);
    }
    //以下这个循环做完后,数组里的值全部一样了!!!给出的结果是下标为x[4]的值!!!!!
    for(y=0;y<10;y++)
    {
        f=x[y];//
        r=y;
        for(z=y+1;z<10;z++)
        {
            if(x[z]>f)
            {
                f=x[z];
                r=z;
            }
        }
        x[r]=x[y];
        x[y]=f;
    }
   
    for(y=0;y<10;y++)
    {
        printf("%d\t",x[y]);
        if(y=4)
            printf("\n");
    }
   
    return 0;
}
2010-12-25 20:55
wfee123
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2010-10-25
收藏
得分:0 
for(z=y+1;z<10;z++)
        {
            if(x[z]>f)
            {
                f=x[z];
                r=z;
            }
这个循环有问题
2010-12-25 20:58
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
for(y=0;y<10;y++)
    {
        printf("%d\t",x[y]);
        if(y==4) //你的意思是每四个换行,还是第四个以后换行?总之不能是y=4
            printf("\n");
    }
   
如果是每四个换行的话,就是下面
 for(int i=0,y=0;y<10;y++)
    {
        printf("%d\t",x[y]);
        i++;
        if(i%4==0)
            printf("\n");
    }
   


[ 本帖最后由 qq1023569223 于 2010-12-26 10:58 编辑 ]

   唯实惟新 至诚致志
2010-12-26 10:52
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
程序:
程序代码:
#include<stdio.h>

int main()
{
    int x[10];     /*定义数组变量*/
    int y,z;     /*定义变量*/
    int f,r;
   
    for(y=0;y<10;y++)/* 给数组输入十个值 */
    {
        printf("x[%d]=",y);
        scanf("%d",&x[y]);
    }
    /* 以下这个循环做完后,数组里的值全部一样了!!!给出的结果是下标为x[4]的值!!!!! */
    for(y=0;y<10;y++)
    {
        f=x[y];/*  */
        r=y;
        for(z=y+1;z<10;z++)
        {
            if(x[z]>f)
            {
                f=x[z];
                r=z;
            }
        }
        x[r]=x[y];
        x[y]=f;
    }
   
    for(y=0;y<10;y++)
    {
        printf("%d\t",x[y]);
        if(y==4)
            printf("\n");
    }
   
    return 0;
}
结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


Go Go Go
2010-12-26 11:00
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
if里面跟的是条件语句你赋值的话属于赋值语句结果是y变成了4,if永远为真,循环永远循环。

Go Go Go
2010-12-26 11:04
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
收藏
得分:0 
  if(y=4) 一个等号是赋值,如果你想判断Y是否等于4的话应该是双等号,也就是"=="
2010-12-26 11:21
zhiyajun11
Rank: 1
等 级:新手上路
帖 子:17
专家分:1
注 册:2010-12-22
收藏
得分:0 
以下是引用绯苍幻想曲在2010-12-26 11:21:46的发言:

  if(y=4) 一个等号是赋值,如果你想判断Y是否等于4的话应该是双等号,也就是"=="
同意。。。
2010-12-26 12:44
快速回复:帮忙我分析一下这个程序哪里错了?
数据加载中...
 
   



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

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