从键盘输入一个正整数。首先分离出该正整数中的每一位数字,并按逆序显示输出各位数字:然后用分高出的每位数字组成一个最大数和一个最小数,并显示输出。
#include <stdio.h>
int main()
{
int n,a[1000],i=0,j,m=0,t,max=0,min=0;
scanf("%d",&n);
while(n>0)
{
a[m++] = n%10;
n/=10;
}
for(i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<m-1;i++)
for(j=0;j<m-i-1;j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
for(i=0;i<m;i++)
min = min * 10 + a[i];
printf("最小值为:%d\n",min );
for(i=m-1;i>=0;i--)
max = max * 10 + a[i];
printf("最大值为:%d\n",max);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:代码实现如下:
# include<iostream>
using namespace std;
int main() {
//被除数
int i;
//除数
int j;
//遍历数组时的索引
int i1;
int i2;
cout<<"请输入一个int型的数"<<endl;
cin>>i;
//声明一个数组,用来放入找到的质数
int arr[1000] = {0};
//存入元素的时候的下标
int n = 0;
//循环拿出被除数
for (i ; i > 1 ; i--) {
j = i -1;
//循环拿出除数
for(j ; j > 1 ; j--) {
//拿被除数i除以除数j余数是0,则这个被除数i不是质数,直接退出循环
if (i % j == 0) {
break;
}
}
//当除数j变为1时,说明i为质数
if(j == 1) {
//将质数存入数组
arr[n] = i;
n++;
}
}
for (i1 = 0 ; i1 < sizeof(arr)/sizeof(int) ; i1++) {
if(arr[i1] != 0) {
cout<<arr[i1]<<" ";
}
}
cout<<endl;
return 0;
}