| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:一个程序 很多疑问
只看楼主 加入收藏
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
一个程序 很多疑问
#include "stdio.h"
int main()
{
    int i,j,a[10]={9,8,7,6,5,4,3,2,1,10},temp;
    a[10]=-1;
    for (j=0; j<10;j++)
    {
        for (i=0;i<20-j ;i++ )
        {
            if (a>a)
            {
                temp=a;
                a=a;
                a=temp;
            }
        }
    }
    printf("paixu hou :\n");
    for (i=0;i<20 ;i++ )
        printf("%-5d",a);
}

a[10]=-1 数组可以这样赋值吗?
if(a>a)可以这样判断吗?
a=a 这样赋值可以吗?  这个程序我好多疑问。。
搜索更多相关主题的帖子: 疑问 
2010-07-22 15:06
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:5 
你的疑问 我看到了
目前还没通过编译 所以我也赞同楼主的疑问 可以吗?不可以吗?需要吗?不需要吗?
我只是开个玩笑 何必认真呢
1 a[10]=-1 可以这么赋值 理由是没人管
2 if(a>a) 可以这么判断 没理由
3 a=a     目前是不可以这么做 理由是数组名没当过左值

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-22 15:24
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:5 
1。a[10]=-1 数组可以这样赋值吗?
不可以。数组只有10个元素,下标从1-9,a[10]越界了
2。可以,但是没意义,因为a==a。永远为假
3。不可以,数组名实数组的首地址,为常量,常量是不能做左值的
2010-07-22 15:28
mygameoh
Rank: 2
等 级:论坛游民
帖 子:50
专家分:15
注 册:2010-7-8
收藏
得分:0 
a[10]=-1  数组不能这样赋值吧
2010-07-22 16:11
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:5 
#include <stdio.h>

int main()
{
    int i,j,temp;
    int a[10] = {9,8,7,6,5,4,3,2,1,10},
    a[10]=-1;                                //只能到a[9],没有a[10]。错误
    for (j = 0 ; j < 10 ; j++)
    {
        for (i = 0 ; i < 20-j ; i++ )
        {
            if (a>a)                        //条件语句永远不能成立,没有意义
            {
                temp=a;
                a=a;                        //数组名不能作为左值,错误
                a=temp;
            }
        }
    }

    printf("paixu hou :\n");
    for (i=0;i<20 ;i++ )
    printf("%-5d",a);
   
    return 0;
}
2010-07-22 16:58
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:5 
#include "stdio.h"
int main()
{
    int i,j,a[10]={9,8,7,6,5,4,3,2,1,10},temp;
    a[10]=-1;
    for (j=0; j<10;j++)
    {
        for (i=0;i<20-j ;i++ )
        {
            if (a>a)
            {
                temp=a;
                a=a;
                a=temp;
            }
        }
    }
    printf("paixu hou :\n");
    for (i=0;i<20 ;i++ )
        printf("%-5d",a);
}




解答:
a[10]=-1 数组可以这样赋值吗?回答:当然可以,你可以试试
if(a>a)可以这样判断吗?//这个判断没有必要,这个表达式肯定是(0),就是不成立的表达式
a=a 这样赋值可以吗? //这个是不可以的:数组名实数组的首地址,为常量,常量是不能做左值的

LZ,你明白了吗?

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-22 17:37
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
收藏
得分:0 
谢谢各位大哥 了解了
2010-07-22 21:57
快速回复:一个程序 很多疑问
数据加载中...
 
   



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

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