当前位置: 代码迷 >> C语言 >> c程序编译成功,运行时TempFile.exe 遇到问题需要关闭,请教下,急待回复
  详细解决方案

c程序编译成功,运行时TempFile.exe 遇到问题需要关闭,请教下,急待回复

热度:548   发布时间:2008-06-22 15:36:42.0
c程序编译成功,运行时TempFile.exe 遇到问题需要关闭,请教下,急待回复
TempFile.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。是什么原因呀,应该和编程
环境没有关系,因为其他程序运行正常!请教,请教!!!
代码如下:
#include <stdio.h>
    void sortCInt(int *p,int n)
    {
        int *sortAInt(int *p);
                   int *sortBInt(int *p);
        int *a,*b;
        int i;
        a=sortAInt(p);
        printf("整型数组冒泡法从小到大排列顺序为:\n");    
        for(i=0;i<20;i++)
        {
            printf("%4d",*(a+i));
            
        }
        printf("\n");
        b=sortBInt(p);
        printf("使用选择法从大到小排列顺序为:\n");    
        for(i=0;i<20;i++)
        {
            printf("%4d",*(b+i));
           
        }
            printf("\n");
    }



    void sortCString(char *p)
    {
        char *sortAString(char *p);
                   char *sortBString(char *p);
        char *a,*b;
        int i;
        a=sortAString(p);    
        printf("字符型数组使用冒泡法从A到z排序为:\n");    
        for(i=0;i<20;i++)
        {
            printf("%4c",*(a+i));
            
        }
            printf("\n");
        b=sortBString(p);
        printf("使用选择法从z到A排序为:\n");    
        for(i=0;i<20;i++)
        {
             printf("%4c",*(b+i));
                     if((i+1)%4==0)
                     printf("\n");
        }
            printf("\n");
    }




    int *sortAInt(int *p)
    {
        int i,m,j;
        for(j=0;j<19;j++)
        for(i=0;i<19-j;i++)
            if(*(p+i)>*(p+i+1))
            {    
                m=*(p+i);
                *(p+i)=*(p+i+1);
                *(p+i+1)=m;
            }
        return p;
    }




    char *sortAString(char *p)
    {
        int i,j;
        char m;
        for(j=0;j<19;j++)
        for(i=0;i<19-j;i++)
            if(*(p+i)>*(p+i+1))
            {    
                m=*(p+i);
                *(p+i)=*(p+i+1);
                *(p+i+1)=m;
            }
        return p;
    }




    int *sortBInt(int *p)
    {
        int i,m,k,j;
        for(i=0;i<19;i++)
        {
            k=i;
            for(j=i+1;j<20;j++)
            if(*(p+j)>*(p+k))
                k=j;
            if(k!=i)
            {
                m=*(p+i);
                *(p+i)=*(p+k);
                *(p+k)=m;
            }
        }
           return p;
    }




char *sortBString(char *p)
    {
        int i,k,j;
        char m;
        for(i=0;i<20;i++)
        {
            k=i;
            for(j=i+1;j<20;j++)
            if(*(p+j)>*(p+k))
                k=j;
            if(k!=i)
            {
                m=*(p+i);
                *(p+i)=*(p+k);
                *(p+k)=m;
            }
        }
           return p;
    }




void main()
{
    int a[4][5],i,t;
    char b[4][5];
    int *p=a[0][0];
    char *q=b[0][0];
    void sortCInt(int *p);
    void sortCString(char *p);
    void (*m)(int *);
    void (*n)(char *);
    m=sortCInt;
    n=sortCString;

    printf("请选择输入类型:\n");  
    printf("输入整型元素:1    输入字符型元素:2:\n");  
    scanf("%d",&t);
     if(t==1)
        {printf("请输入20个字符型元素:\n");  
      for(i=0;i<20;i++,q++)
          scanf("%c",q);
         (*m)(p);}
    else
    {printf("请输入20个整型元素:\n");
    for(i=0;i<20;i++,p++)
    scanf("%d",p);
    p=*(a+0);
    q=*(b+0);
    (*n)(q);}    
}
搜索更多相关的解决方案: 急待  TempFile  exe  编译  

----------------解决方案--------------------------------------------------------
真够混乱的


[color=white]
----------------解决方案--------------------------------------------------------
告诉你:返回指针一般是很危险的!!
建议你从参数返回指针,而不要以函数返回值的形式来返回。
如:
void func(int *p)
{
*p += 1;
}
----------------解决方案--------------------------------------------------------
回复 3# flyue 的帖子
那怎样修改呢?时间紧迫啊,万望给助
----------------解决方案--------------------------------------------------------
回复 5# かわい 的帖子
不算是吧
我们猜的考试题
呵呵
----------------解决方案--------------------------------------------------------