‘壹’ 将组成整数的每个数字重新排列成一个最大和最小的数的c语言源程序责怎么写
C不是太熟,希望对你有点儿帮助。
首先是取得数字(如果是其他方式获得,这部分程序就改掉)
比如用getchar();
然后,将所得的数字处理好。
这个就是什么冒泡法什么的了,随便选择方式。下面的方式比较好理解:多次循环,比较相邻数组元素大小,看是否需要交换相邻两个变量的位置。
然后输出。
比如用printf();
如果是已经在内存中的数字,需要用%运算符,将余数赋值给数组。这是因为第一种例子中的数是字符型的,每个数字实际上都是ASCII字符。而现在说的这个数字,可能是一个整形数,这样就需要对其进行除以10取余数的运算。
加油!你肯定能写好。
‘贰’ C语言:冒泡排序法将数组中10个元素从小到大排序,并找出最小值
#include<stdio.h>
int main()
{
int a[11],min=0,t;
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
for(int i=0;i<10;i++)
if(a[i]<min)//求最小值
min=a[i];
for(int i=0;i<10;i++)//冒泡排序
for(int j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf(" %d",min);
return 0;
}
‘叁’ 用选择排序搜索数组中的最小值【C语言】
void sort(int a[],int i,int n){
if(i==n) return ;
else {
int j;
int flag=i,t;
for(j=i;j<n;j++){
if(a[flag]>a[j]) flag=j;
}
if(flag!=j){
t=a[flag];
a[flag]=a[i];
a[i]=t;
}
sort(a,i+1,n);
}
}
void main(){
int a[10]={3,9,1,6,4,78,1,2,3,8};
int i;
printf("before sort:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
printf("\nafter sort:\n");
sort(a,0,10);
for(i=0;i<10;i++) printf("%d ",a[i]);
}
‘肆’ C语言题目,输入一个不超过20位的数,不改变位数,重新排列后输出最小的数
//根据题意,实际上就是对输入的数字进行从小到大的排序,一下代码使用冒泡排序#include<stdio.h>int main() {
int num[20];
char *str=new char[20];
//初始化数组
for(int i=0;i<20;i++){
num[i]=-1;
str[i]='\n';
}
//输入数据
cin>>str;
int i=0;
while(str[i]!=0)
{
num[i]=str[i]-48;
i++;
}
//排序
//冒泡排序
for(int i=0;i<20;i++){
for(int j=0;j<i;j++){
if(num[i]<num[j]){
int temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
for(int i=0;i<20;i++){
if(num[i]==-1){
continue;
}
else
{
printf("%d",num[i]);
}
}
return 0;
}
‘伍’ c语言对整形数组进行排序,输出其最小值和次最小值的序号如何做啊
C数组中, 找出最小、最大值你会吧, 其实这个思想跟找最大值是一样的
首先, 定义两个变量a,b用来存最小值和次最小值, 先比较数组的前两个元素,把最小的赋值给a,次最小的赋值给b,
然后 利用循环 把数组的元素依次与a,b相比,①如果这个值比最小的小,那就把这个最小的重新赋值给a,原来的最小也就变为次最小,②如果这个值只比次最小值 小,那就只把次最小重新赋值,③ 如果这个值比a,b都大,则换下一个元素继续比较,直到数组最后一个元素为止,
自己写程序吧, 这样才能学习的更深, 方法已经给你说了
‘陆’ 一个10个数排序并且记录最大最小位置的C语言程序
带符号的 char 只能表示最大 127 的正数。将 char a[10] 改成 int a[10] 就是了。
‘柒’ C语言~十个数字从小到大怎么排列~从大到小呢~
//要求任意输入10个数,然后按从小到大顺序输出
#include <stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
printf("请输入10个整数:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列后顺序为:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("
");
return 0;
}
‘捌’ C语言中要把三个数从大到小排列出来应该怎么编
初学简单版本代码如下:
#include<stdio.h>
int main( )
{
int a, b, c;//定义三个数的变量
int t ;//定义作为交换的变量
scanf ( "%d%d%d" , &a, &b, &c ) ; //取值
if ( a < b )
{t = a; a = b; b = t ;};//如果a,b,进行交换,反之不动
if ( a < c )
{t = a; a = c; c = t ;};//同上
if ( b < c )
{t = b; b = c; c = t ;};
printf( "%-5d%-5d%-5d " , a, b, c);//输出
}
(8)排列组成最小数c语言扩展阅读:
C语言中其他多个数排序的方法:
1、冒泡排序法
#include <stdio.h>
#define SIZE 8
void bubble_sort(int a[], int n);
void bubble_sort(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
} } }
int main()
{
int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int i;
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
{
printf("%d ", number[i]);
}
}
2、选择排序
#include<stdio.h>
void main()//主函数
{
int a[10];
int i,j,w;
printf("请输入10个数字: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(a[i]<a[j])//进行比较
//比较后进行交换
{
w=a[i];
a[i]=a[j];
a[j]=w;
}
‘玖’ C语言把十个数按从小到大顺序排列,结果输出十个数都是最小的那个数,不知道哪里错了
#include<stdio.h>
intmain()
{
inta[10]={65,12,12,4,32,54,8,4,2,34},i,j,t;
/*
for(i=0;i<9;i++)
for(j=i+1;j<=9;j++)
if(a[i]<a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
*/
//修改如下
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
for(j=0;j<10;j++)
{
printf("%d ",a[j]);
}
printf(" ");
}
‘拾’ c语言 编程。 整数各位数重组构成的最大值与最小值
#include<string.h>
voidmain()
{
chars[10],i,j,t,k;
printf("输入一个整数(不大于十位): ");
scanf("%s",&s);
k=strlen(s);
for(i=0;i<k;i++)
{
for(j=0;j<=i;j++)
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
printf("Max=%s ",s);
printf("Min=");
for(i=k-1;i>=0;i--)
printf("%c",s[i]);
printf(" ");
}