| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2127 人关注过本帖
标题:为什么我的程序不能运行
只看楼主 加入收藏
yunnandaxue
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-11-19
结帖率:100%
收藏
 问题点数:0 回复次数:32 
为什么我的程序不能运行
#include<stdio.h>
int main()
{
    int i,j=0,z;
    char b[5],c[5];
    printf("请输入一句话: \n");
    scanf("%s",&b);
        for(i=4;i>=0;i--)
        {j++;
        c[j]=b[i];}
    
    for(z=0;z<5;z++)
    printf("%s的逆转函数为%s",b[z],c[z]);

    return 0;
}

这是我编的程序,我想用这个程序实现“任意字符数组元素存放位置逆转的程序”,请大家帮帮忙
收到的鲜花
  • 广陵绝唱2008-12-12 16:55 送鲜花  49朵   附言:学习认真奖。
搜索更多相关主题的帖子: 运行 
2008-12-10 22:13
xian1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:42
专家分:10
注 册:2008-12-5
收藏
得分:0 
输出单个字符使用%c,%s是输出整个字符串的,然后字符数组是以'\0'结尾的,这个要注意
2008-12-10 22:22
yunnandaxue
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-11-19
收藏
得分:0 
可是要求输入一串啊
2008-12-10 22:40
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
#include "stdio.h"
main()
{char s1[80],s2[80];
 int i,j;
 scanf("%s",s1);  /*这里不加&*/
 for(i=0,j=3;i<=3;i++,j--)
  s2[i]=s1[j] ;
 printf("%s 转换成 %s",s1,s2) ;
}

不知道这样行不?

寡人有疾,寡人好色......
2008-12-10 23:52
yunnandaxue
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-11-19
收藏
得分:0 
这样还是不行,如果把for(i=0,j=3;i<=3;i++,j--)
这句话改为for(i=0,j=80;i<=80;i++,j--),输入一串字符就会显示许多“汤”子而不是所要的结果
2008-12-11 12:57
longxigen
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-11
收藏
得分:0 
我觉得楼主的这段程序中有两处错误。
第一处是:for(i=4;i>=0;i--)
         {j++;   
         c[j]=b[i];}  其中的j++错了,因为程序一开始就定义了j=0,此处循环的开始处又让它自增,相当于b[4]赋值给c[1],b[3]赋值给c[2],……c[0]并没有得到赋值,而是处于某个随机状态,当然输出结果不对。
第二处是:for(z=0;z<5;z++)
          printf("%s的逆转函数为%s",b[z],c[z]);
         其实对于字符串的输出,可以单个输出,此时该用“%c”格式;也可以整个一串输出,此时该用“%s”格式。楼主用了for循环,想必是想用单个输出,但却用了“%c”格式。
以下为我修改后的程序:
#include<stdio.h>
void main()
{
 int i,j=0,z;
 char b[5],c[5];
 printf("请输入一串字符:\n");
 scanf("%s",&b);
 for(i=4;i>=0;i--)
  {
   c[j]=b[i];
   j++;
  }
 printf("\n该字符串的反转为:\n");
 printf("%s",c);
}
2008-12-11 14:11
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
不好意思,我又改了一下,这下可以了(TC下运行的)。
#include "stdio.h"
#define S 6
main()
{int i,j;
 char a[S],b[S];
 scanf("%s",a);
 for(i=0,j=S-1;i<S;i++,j--)
 b[j]=a[i];
 for(i=0;i<S;i++)  printf("%c",b[i]) ;  /*这里用printf和puts函数输出都不行的*/
}
我验证了半天,也找不到原因的,我再翻翻书去。

寡人有疾,寡人好色......
2008-12-11 15:20
柳无痕
Rank: 1
来 自:浙江省
等 级:新手上路
帖 子:57
专家分:0
注 册:2008-12-10
收藏
得分:0 
六楼的程序scanf语句中的b前不用加&
2008-12-11 16:15
longxigen
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-11
收藏
得分:0 
回复 第8楼 柳无痕 的帖子
嗯 指教的是 多谢
2008-12-11 17:22
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
程序代码:
#include "stdio.h"
#define S 100
main()
{
char a[S],b[S];
char *p=a,*q=b;
scanf("%s",a);
while (*p !='\0')
    p++;
do
{
    p--;
    *(q) = *(p);
    q++;
}
while (p != a);
*q = '\0';
printf("%s",b);
getch();
}


有更经典的写法
程序代码:
#include "stdio.h"
#define S 100
void main()
{
char a[S];
scanf("%s",a);
strrev(a);
printf("%s",a);
getch();
}

春了夏了秋冬了,来了来了又来了
相信我的帖子打开都很快,看我头像就知道了
2008-12-11 17:27
快速回复:为什么我的程序不能运行
数据加载中...
 
   



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

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