| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:额 这是什么错误
取消只看楼主 加入收藏
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
额 这是什么错误
TempFile.exe-应用程序错误
0x0040118d 指令应用的 0x0042e01d 内存.该内存不能为 written


#include<stdio.h>
#include<string.h>

void fun(char *w,int n)
{
    char t,*s1,*s2;  
    s1=w;            
    s2=w+n-1;         
    while(s1<s2)    {   
        t=*s1++;      
        *s1=*s2--;   
        *s2=t;      
    }
}
int main()
{
    char *p;
    p="1234567";      
    fun(p,strlen(p));
    puts(p);
    return 0;
}


问题2   为什么输入1**1
会出现不停顿的无限输出的循环
int main(int argc, char* argv[])
{
    int a,b;
    char mark ;

    while(1)
    {
        printf("Please enter data:\n");
        scanf("%d%c%d",&a,&mark,&b);
        switch(mark)
        {
        case '+':    printf("a+b = %d\n",a+b);
        break;   

        case '-':    printf("a-b = %d\n", a-b);
        break;

        case '*':    printf("a*b = %d\n", a*b);
        break;

        case '/' :  printf("a/b = %d\n", a/b);
        break;
        default: break ;

        }
}


[ 本帖最后由 xtjopt 于 2012-10-26 18:56 编辑 ]
搜索更多相关主题的帖子: 应用程序 include written 
2012-10-25 09:24
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 2楼 TonyDeng
新手 见笑了,我只是想知道我那些语句不符合规则
2012-10-26 18:00
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 3楼 一个孩子
我的标题就是问题,运行会出现最上面的错误,我只想知道这些语句那些错了 都错在哪里
2012-10-26 18:01
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 3楼 一个孩子
新手见笑了,我是在实践中找基础。
2012-10-26 18:02
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 4楼 青春无限
同样是新手 回复不要那么难看
2012-10-26 18:02
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 5楼 hejian11
谢谢你的程序,不过我还是想知道原来那些语句都错在哪里
2012-10-26 18:03
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
#include<stdio.h>
#include<string.h>

void fun(char *w,int n)
{
    char t,*s1,*s2;  
    s1=w;            
    s2=w+n-1;         
    while(s1<s2)    {   
        t=*s1;      
        *s1=*s2;   
        *s2=t;  
        s1++;
        s2--;   
    }
}
int main()
{
    char str[20];
    printf("please input numbers:\n");
    scanf("%s",str);
    char *p;
    p=str;      
    fun(p,strlen(p));
    puts(p);
    return 0;
}
这是我自己改的程序,我知道错哪了 ,
错误1:
        t=*s1++;      
        *s1=*s2--;   
        *s2=t;
因为s1是字符串的首地址,s1到s2中都是属于字符串的内存  所以他们不能当char来赋值
修改方法
创建数组接受字符串,串字符的首地址就可以了
错误2:
        t=*s1++;      
        *s1=*s2--;   
        *s2=t;
逻辑性错误
        t=*s1;      
        *s1=*s2;   
        *s2=t;  
        s1++;
        s2--;
改成这样就可以了
还有就是思想很乱 谢谢一个孩子提供的代码
2012-10-26 18:43
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
回复 6楼 一个孩子
不过我还有个不懂
传参传的是str字符数组的首地址 但是接收的是一个字符数组 ,为什么能行
额 那是不是字符数组的指针 能接受一个 字符数组

[ 本帖最后由 xtjopt 于 2012-10-27 15:40 编辑 ]
2012-10-26 18:46
快速回复:额 这是什么错误
数据加载中...
 
   



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

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