| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:运行有问题,可我不知道哪里错。。。急。。。
只看楼主 加入收藏
rainbow_hao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-11-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
运行有问题,可我不知道哪里错。。。急。。。
程序代码:
函数fun的功能是:在字符串s中找出ASCII码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
#include<stdio.h>
#include<string.h>
void fun(char str[])
{

 int n,m,min,i,j;

 min=str[0];

 n=strlen(str);

 for(i=0;i<n;i++)

 {
  m++;
  if(str[i]<min)
   min=str[i];

 }

 for(j=m-1;j>1;j--)
  str[j]=str[j-1];
  str[0]=min;
}
void main()
{

 char s[80];

 printf("输入一个字符串:");
  gets(s);
  printf("字符串是:");
  puts(s);
    fun(s);

 printf("运行后:");

 puts(s);

 printf("\n");
}
结果有问题
搜索更多相关主题的帖子: color 字符串 移动 
2011-11-04 19:44
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
m没有赋初值。整个算法都有问题,


[ 本帖最后由 heroinearth 于 2011-11-4 20:04 编辑 ]
2011-11-04 20:01
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
程序代码:
/* Note:Your choice is C IDE */
#include<stdio.h>
#include<string.h>
void fun(char str[])
{
int n,m,min,i,j;
char t;
min=str[0];
n=strlen(str);
for(i=0;i<n-1;i++)
{
  for(j=i+1;j<n;j++)
  {
      if(str[i]>str[j])
      {
          t=str[i];
          str[i]=str[j];
          str[j]=t;
      }
  }
}

}
void main()
{
char s[80];
printf("输入一个字符串:");
  gets(s);
  printf("字符串是:");
  puts(s);
    fun(s);
printf("运行后:");
puts(s);
printf("\n");
}
我帮你改的:

2011-11-04 20:12
rainbow_hao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-11-4
收藏
得分:0 
回复 3楼 heroinearth
字符多了的话还是错。。。。不过还是要谢谢你哦!!!
2011-11-04 20:40
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:5 
发个图我看看
2011-11-04 20:45
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:5 
程序代码:
//运行环境VC6.0++
#include <stdio.h>
#include <string.h>
#define N 80

void fun(char str[])
{
    int n, min, i, j;
    min = str[0];
    n = strlen(str);
    for(i=1; i<n; i++)
    {
       
        if(str[i] < min)
        {
            min = str[i];
            j = i;//用j记录最后一次交换的下标;
        }
    }
    for(j; j>0; j--)
    {
        str[j] = str[j-1];
    }
    str[0] = min;
}

void main()
{
    char s[N];
    printf("输入一个字符串:\n");
    gets(s);
    printf("字符串是:");
    puts(s);
    fun(s);
    printf("运行后:");
    puts(s);
    printf("\n");
}


[ 本帖最后由 liao06550107 于 2011-11-4 20:57 编辑 ]

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-11-04 20:55
rainbow_hao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-11-4
收藏
得分:0 
回复 5楼 heroinearth
嘻嘻,谢谢。。。。我弄出来了。。。。麻烦了。。。。
2011-11-04 21:34
快速回复:运行有问题,可我不知道哪里错。。。急。。。
数据加载中...
 
   



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

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