{
char a[4];
int i=0,j=0,t=0;
for(j=0;j<4;j++)
{
scanf("%d\n",&a[j]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j]
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("congdadaoxiao");
for(j=0;j<4;j++)
{
printf("%d\n",a[j]);
}
return 0;
}(省略了头文件)
你的思路我知道了,想用冒泡法排序。
你把那个char a[4].
改成int a[4]
也不知道你的需求是什么,但是常规的:你的数组定义的是char 类型,但是却用scanf("%d\n",&a[j]);去获取输入这不太规范,可以改为将数组改为 int型
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a[4];
int i=0,j=0,t=0;
for(j=0;j<4;j++)
{
scanf("%d",&a[j]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("congdadaoxiao");
for(j=0;j<4;j++)
{
printf("%d\n",a[j]);
}
return 0;
}
{
int a[4]; // char a[4];
int i = 0, j = 0, t = 0;
for (j = 0; j < 4; j++)
{
scanf("%d", &a[j]); //
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 3 - i; j++) //for (j = 0; j < 4 - i; j++) i=0,j<4-0时a[j + 1]越界
{
if (a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("congdadaoxiao:\n"); //
for (j = 0; j < 4; j++)
{
printf("%d\n", a[j]);
}
return 0;
}
如果你要输入数字,那么把char[4]改为int[4]
如果你要输入字符,那么把%d改为%c
修改如下,供参考:
#include<stdio.h>
int main()
{
int a[4]; //char a[4];
int i = 0, j = 0, t = 0;
for (j = 0; j < 4; j++)
{
scanf("%d", &a[j]);
}
for (i = 0; i < 3; i++) //for (i = 0; i < 4; i++)
{
for (j = 0; j < 3 - i; j++) //for (j = 0; j < 4 - i; j++)
{
if (a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("congdadaoxiao");
for (j = 0; j < 4; j++)
{
printf("%d ", a[j]); //printf("%d\n", a[j]);
}
return 0;
}