求助 C语言程序调试题目 谢谢!

2024-11-25 08:52:41
推荐回答(3个)
回答1:

#include 
void fun(char p[])   
{   char min;
int i=0,q=0;
min=p[i];
while(p[i]!= '\0')
{    if(min>p[i]) //比最小的小才是最小的
{  
q = i;    
min=p[i];
}
i++;  
}
while(q>0)      
{  p[q]=p[q-1];   //应该是前面一个数赋值给后面
q--;  
}
p[0]=min; 
}
void main()

char str[80];
printf("Enter string:\n");
gets(str);    //输入参数应该是数组名
fun(str);
puts(str);
}

回答2:

#include 
void fun(char p[]) {
    char min;
    int i = 0,q = 0;
    min = p[i];
    while(p[i]!= '\0') {
        if(min < p[i]) { /* 改为if(min > p[i]) */
            q = i;
            min=p[i];
        }
        i++;
    }
    while(q > 0) {
        p[q - 1] = p[q]; /* 改为 p[q] = p[q - 1]; */
        q--;
    }
    p[0] = min; 
}
void main() {
    char str[80];
    printf("Enter string:\n");
    gets(str[]); /* 改为 gets(str); */
    fun(str);
    puts(str);
}

回答3:

#include
void fun(char p[])
{
char min;
int i=0,q=0;
min=p[i];
while(p[i]!= '\0')
{
if(min>p[i])/* 比较方向*/
{
q = i;
min=p[i];
}
i++;
}
while(q>0)
{ p[q]=p[q-1]; /** 赋值方向*/
q--;
}
p[0]=min;
}
int main()
{ char str[80];
printf("Enter string:\n");
gets(str);
fun(str);/** 传值*/
puts(str);
return 0;
}