c语言-用冒泡法对字符排序,我哪里错了

问题描述

用冒泡法对字符排序,我哪里错了

#include
#define N 10
char str[N];
int main(void)
{ int i,flag=1;
while(i!=0 )
{printf("
输入字符串,长度为10:
");
scanf("%s",&str);
if (strlen(str)>N)
printf("超过长度,请重输!");
else
flag = 0;
}
sort(str[i]);
printf("
排序结果:");
for (i=0;i
printf("%c",str[i]);
}
sort(char str[N])
{int i,j;
char t;
for (j=1;j
for (i=0; i
if (str[i]>str[i+1])
{ t=str[i]; str[i]=str[i+1]; str[i+1]=t;
}
}
是while那里吗,如果是的话应该怎么解决...

解决方案

你的while代码是接收用户输入数据的,条件是i非零,但是又没有设置i=0的地方。
应该是判断用户输入是否为某个值时,输入结束才对。

解决方案二:

.......首先把头文件写全了,还有你的for语句,不是这么用的吧....还有写的好乱,你先看看for语句再改改

解决方案三:

你的while语句是不是判定输入为10个字符,那应该先把i赋值,不为0即可,再在else语句下将i值改为0,退出其循环,这样子就赋值成功。

解决方案四:

冒泡排序法:
for(int i=0,i<9,i++){
for(int j=i+1,j<10,j++){
if(str[i]>str[j]){
int num;
num=str[j];
str[j]=str[i];
str[i]=num;
}
}
}

这是基本的冒泡排序法,你自己参照下,还有你那往数组输入数据应该使用for语句来输入。

解决方案五:

sorry,昨天回复完有事就走了,刚才看了一下,你应该是想这样写吧
#include
#include
#define N 10
char str[N];
void sort(char str[N]);

int main(void)
{
int i,flag=1;
while(flag)
{
printf("
输入字符串,长度为10:
");
scanf("%s",&str);
if (strlen(str)>N)
printf("超过长度,请重输!");
else
flag = 0;
}
sort(str);
printf("
排序结果:");
printf("%s",str);
}

void sort(char str[N])
{
int i,j;
char t;
for (i=0;i
for (j=i+1;j
if (str[i]>str[j])
{
t=str[i];
str[i]=str[j];
str[j]=t;
}
}

你对应一下

解决方案六:

#include
#include
#define N 10
char str[N];
void sort(char str[N]);

int main(void)
{
int i,flag=1;
while(flag)
{
printf("
输入字符串,长度为10:
");
scanf("%s",&str);
if (strlen(str)>N)
printf("超过长度,请重输!");
else
flag = 0;
}
sort(str);
printf("
排序结果:");
printf("%s",str);
}

void sort(char str[N])
{
int i,j;
char t;
for (i=0;i
for (j=i+1;j
if (str[i]>str[j])
{
t=str[i];
str[i]=str[j];
str[j]=t;
}
}

解决方案七:

 #include<stdio.h>
#include<string.h>
#define N 10
char str[N];
void sort(char str[N]);

int main(void)
 {
   int i,flag=1;
   while(flag)
     {
         printf("
输入字符串,长度为10:
");
         scanf("%s",&str);
         if (strlen(str)>N)
           printf("超过长度,请重输!");
         else
           flag = 0;
      }
 sort(str);
 printf("
排序结果:");
 printf("%s",str);
} 

 void sort(char str[N])
 {
     int i,j;
     char t;
     for (i=0;i<N;i++)
       for (j=i+1;j<N;j++)
         if (str[i]>str[j])
         {
             t=str[i];
             str[i]=str[j];
             str[j]=t;
         }
 }

解决方案八:

我也是刚注册的,刚会粘贴代码,最后一个是正确的,你看一下

解决方案九:

Java冒泡法排序实例

时间: 2024-08-03 15:38:02

c语言-用冒泡法对字符排序,我哪里错了的相关文章

有一个数组 3 7 5 0 2 9 8,用冒泡法对它排序,要求写出每一趟排序的结果。

问题描述 有一个数组 3 7 5 0 2 9 8,用冒泡法对它排序,要求写出每一趟排序的结果. 有一个数组 3 7 5 0 2 9 8,用冒泡法对它排序,要求写出每一趟排序的结果. 解决方案 3 7 5 0 2 9 83 5 0 2 7 8 93 0 2 5 7 8 90 2 3 5 7 8 9 解决方案二: 你没有说是按照从大到小还是从小到大顺序 解决方案三: 冒泡网上一搜就出来了啊 # include <stdio.h># define N 7void bubble_sort(int a[

单链表-C语言选择排序法和冒泡法区别问题

问题描述 C语言选择排序法和冒泡法区别问题 编程实现将给定的一组整数采用选择排序法按由小到大的顺序排序.要求: 1) 编写函数create()根据已知整数数组构造一个单链表,假设结点只有一个整数数据域. 2) 编写函数sort()采用选择排序方法对已知链表进行排序. 3) 在主函数中完成数据的输入与结果的输出. ===我自己写了一个程序,但是不确定选择排序法是什么,求大侠帮忙看下我写的代码sort()是选择排序吗?感觉自己混淆了选择排序法和冒泡排序了,求教如何区别? #include #incl

编程c语言-关于c语言选择法和冒泡法的区别,新手疑问

问题描述 关于c语言选择法和冒泡法的区别,新手疑问 两种方法怎样区别,求简单解释 解决方案 c语言冒泡法 解决方案二: 冒泡:把最小的数放在最后,不断地把底层的较大的数冒泡升上来: 选择:用一个变量不断地选择小的数,将值付给变量再通过变量付给相应位置的数组元素. 解决方案三: 1.冒泡排序基本思想就是对一组数据自上而下,对相邻的两个数作比较,每次让大的气泡向下沉,让小的气泡向上浮. 例如:3,1,9,2 几个数字,第一轮:3和1比较,3>1,所以交换位置:继续3和9比较,32,9和2交换: 结果

Go语言实现选择法排序实例_Golang

本文实例讲述了Go语言实现选择法排序的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import "fmt" func select_sort(a []int) {  len := len(a)  for i:=0; i < len-1; i++ {   k := i   j:= i + 1     for ; j < len; j++ {    if a[j] < a[k] { k = j }   }   if k

C++ 基本算法 冒泡法、交换法、选择法、实现代码集合_C 语言

1.冒泡法: 这是最原始,也是众所周知的最慢的算法了.他的名字的由来因为它的工作看来象是冒泡: 复制代码 代码如下: #include <iostream.h> void BubbleSort(int* pData,int Count) { int iTemp; for(int i=1;i<Count;i++) { for(int j=Count-1;j>=i;j--) {if(pData[j]<pData[j-1]) { iTemp = pData[j-1]; pData[

PHP冒泡法排序与二分法查找实例

   代码如下 复制代码 //冒泡法排序 //随便给出一个乱序数组 $arr = array(0,2,10,9,19,23,89,112,321,234); //统计数组 $num = count($arr); //冒泡倒序排列 for($i=0;$i<$num-1;$i++){  for($m=0;$m<$num-1;$m++){   if($arr[$m]<$arr[$m+1]){    $temp = $arr[$m];    $arr[$m] = $arr[$m+1];    $

C语言指针冒泡排序问题

问题描述 C语言指针冒泡排序问题 #include#include int main(){ void sort(char *name[]int n); char * alphabet[ ]={""Follow me""BASIC""Great Wall""FORTRAN""Computer design""}; int n = 5; sort(alphabetn); for(int i=

PHP的简易冒泡法代码分享_php技巧

很基础的东西,感觉代码还不够简洁,希望高手指导修改 复制代码 代码如下: <?php function BubbleSort($str){ for($i=0;$i<count($str);$i++){//从数组末尾取一个值: for ($k=count($str)-2;$k>=$i;$k--){//将这个值向前冒泡: if($str[$k+1]<$str[$k]){ //将小于号改为大于号,就是降序排列: $tmp=$str[$k+1]; $str[$k+1]=$str[$k];

Java简单数组排序(冒泡法)_java

本文实例讲述了Java简单数组排序(冒泡法).分享给大家供大家参考,具体如下: import java.util.Scanner; public class testArray { public static void main(String[] args) { Scanner input = new Scanner(System.in); int Max=0; int[] score = new int[5]; //自定义数组长度 System.out.println("please inpu