| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1549 人关注过本帖
标题:不明白哪里错了``请指点
只看楼主 加入收藏
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 
可能还有一个意思,对一个数值数组,用串的方式输出
如果long s[20]变成char s[20]的话是可以的,注意结束加'\0'和数值不超界

其它。。。。

给新手出个题,加深一下印象吧。。。

革命尚未成功,同志仍需努力!
2007-06-30 00:17
fyi1106
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-14
收藏
得分:0 

楼主发贴后就一直沉默。

莫非。。。。。。。。。


JavaScript forever!
2007-06-30 00:24
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 

LZ现身了`````

其实我的意思很简单``没什么希奇的啊```

就是`想在一个数组里面输入一些数``输入多少个数``又C来决定``

然后在把我输入的数输出``

scanf (" %l", &s[i]); 这里的错误已经发现```

但是不明白下面```我是这样想的``一个数组也是一个字符串吧```那么应该可以用字符串输出``

所以就用了printf ("%s",s);

但是好像不行```不知道是怎么了```

我下来改了下程序``
然后就没问题了``

这是我改的``
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int srsj (long *) ;

int main ( )
{
int i, c ;
long s[20] ;

c = srsj (s) ;

for ( i=0; i<c; i++ )
printf ("%ld ", s[i]);
getch();
return 0;
}


int srsj (long *s)
{
int i, c ;

printf ("请输入你想输入的数的个数: ");
scanf (" %d", &c ) ;

system ("cls") ;

printf ("请输入你想输入的数: ");
for ( i=0; i<c; i++ )
scanf (" %ld", &s[i]);

return c ;
}

看样子我对printf ("%s",s);这样的格式还不清楚```谁能给我讲解下吗?

谢谢`


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-30 10:21
yinlenc
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2007-5-17
收藏
得分:0 

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int main ( )
{
int i, c ;
long s[20] ;

printf ("请输入你想输入的数的个数: ");
scanf (" %d", &c ) ;

printf ("请输入你想输入的数:\n ");


for ( i=0; i<c; i++)
scanf (" %d", &s[i]);
for( i=0;i<c;i++)
printf ("%d",s[i]);
getch();
return 0;
}


2007-06-30 10:41
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 
以下是引用死了都要C在2007-6-30 10:21:48的发言:

LZ现身了`````

其实我的意思很简单``没什么希奇的啊```

就是`想在一个数组里面输入一些数``输入多少个数``又C来决定``

然后在把我输入的数输出``

scanf (" %l", &s[i]);  这里的错误已经发现```

但是不明白下面```我是这样想的``一个数组也是一个字符串吧```那么应该可以用字符串输出``

所以就用了printf ("%s",s);

但是好像不行```不知道是怎么了```

我下来改了下程序``
然后就没问题了``

这是我改的``
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int srsj (long *) ;

int main ( )
{
    int  i, c  ;
    long s[20] ;

    c = srsj (s) ;
    
    for ( i=0; i<c; i++ )
         printf ("%ld  ", s[i]);
    getch();
    return 0;
}


int srsj (long *s)  
{
    int  i, c  ;
    
    printf ("请输入你想输入的数的个数: ");
    scanf  (" %d", &c )  ;
                      
    system ("cls") ;            
                      
    printf ("请输入你想输入的数: ");                  
    for ( i=0; i<c; i++ )
         scanf (" %ld", &s[i]);
        
    return  c ;    
}                      

看样子我对printf ("%s",s);这样的格式还不清楚```谁能给我讲解下吗?

谢谢`



fghM7b20.bmp (27.83 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册

革命尚未成功,同志仍需努力!
2007-06-30 12:08
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 

"%s"是按字节和ASCII规则一个一个输出的,而int的长度为两个字节,如数值2表示为 0x00 0x02而字符型表示为0x02
看一下下面的程序吧
#include <stdio.h>

main()
{ char a[]={'1','2','3','4','\0'};
int b[]={'1','2','3','4','\0'};
printf("a is %s\nb is %s",a,b);
getchar();
}
输出结果为:

图片附件: 游客没有浏览图片的权限,请 登录注册


B数组之所以只输出一个"1"是因为将其高位字0x00节当成'\0'了即结束了
明白???

革命尚未成功,同志仍需努力!
2007-06-30 12:35
a307871404
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-19
收藏
得分:0 
for ( i=0; i<c; i++)
scanf (" %ld", &s[i]);

printf ("%s",s);
不执行是因为输入时格式d忘了写
至于printf ("%s",s);应该是3楼说的s是数组的首地址

我让我喜欢的人不开心     真没用
2007-06-30 14:22
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
因为你后面是单个输出所以用%s就是一片乱码,把c改为char c[N],最后输出行吧。单个输出并不能作为字符串输出。

深山苦学C语言,终年不见外面世界。
2007-06-30 14:30
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
16楼``问一下```

你说``"B数组之所以只输出一个"1"是因为将其高位字0x00节当成'\0'了即结束了"

这么说的话在INT里,1应该是0x00 0x01对吧`

那么程序把最高的0X00当成了'\0'``那么应该什么都不输出才对吧``怎么还回输出1呢?


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-30 15:47
cihren
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-27
收藏
得分:0 
哈哈 ..
是这样的,一个INT由两个字节组成,即高位字节和低位字节,我们的写法:高位在前,低位在后如 00 02
而机器中读取数值的时候是由低到高依次读取N个字节的,所以先读02再读00

革命尚未成功,同志仍需努力!
2007-06-30 16:04
快速回复:不明白哪里错了``请指点
数据加载中...
 
   



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

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