从键盘上输入若干个正整数,把这些正整数按个位数由小到大的次序输出 要用C语言做出来噢、、、急需答案!!

如题所述

#include<stdio.h>
void main()
{
int a[200],b[10]={0},c[10],d[200];
int i,j,t,n;

printf("请输入正整数的个数:");
scanf("%d",&n);
if(n>200)n=200;
printf("请输入%d个正整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
/* 从小到大排顺 */
for(j=0;j<n;j++)
for(i=0;i<n-1-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
/* 计算个位数是0-9的个数 */
for(i=0;i<n;i++)
b[a[i]%10]++;
/* 计算个位数是0-9的累计个数 */
c[0]=0;
for(i=1;i<10;i++)
c[i]=c[i-1]+b[i-1];
/* 按照个位数是0-9的顺序将数组a存到数组d */
for(i=0;i<10;i++)
b[i]=0;
for(i=0;i<n;i++)
{
j=a[i]%10;
d[c[j]+b[j]]=a[i]; /* 数据位置为累计数加已出现的个数 */
b[j]++;
}
for(i=0;i<n;i++)
printf("%d ",d[i]);
}
温馨提示:内容为网友见解,仅供参考
无其他回答

...把这些正整数按个位数由小到大的次序输出 要用C语言做出来噢...
void main(){ int a[200],b[10]={0},c[10],d[200];int i,j,t,n;printf("请输入正整数的个数:");scanf("%d",&n);if(n>200)n=200;printf("请输入%d个正整数:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);\/* 从小到大排顺 *\/ for(j=0;j<n;j++)for(i=0;...

C语言,从键盘读入一个正整数,统计该数的位数,并从低位到高位分别输出...
include <stdio.h>int main(){int n;int nConut = 0;scanf("%d", &n);do{nConut ++;printf("%d ", n % 10);n = n \/ 10;}while(n != 0);printf("\\n共有%d位\\n", nConut);return 0;}

c语言编写程序,输入一个3位整数,打印输出其个位数、十位数和百位...
void main(void){ int n;printf("输入一个三位的正整数: ");scanf("%d",&n);if((n>999)||(n<100)){ printf("%d 不是一个三位数\\n",n);return;} printf("输入在数 %d,其个位是%d,十位是%d,百位是%d\\n",n,n%100,(n\/10)%10,n\/100);return ;} ...

c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么...
用一个for循环计算输入之数的十进制长度,用1之后的0的个数表示并赋与临时变量t,如10000表示输入了一个4位十进制正整数;用一个while循环先后由t\/=10和n\/t%10来求得从高位至低位的各位数字并输出。代码如下:include "stdio.h"int main(int argc,char *argv[]){int n,t;printf("Please ent...

c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行...
printf("位数:%d\\n",k);for(i=0;i<k-1;i++)for(j=0;j<k-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("从小到大:");for(i=0;i<k;i++)printf("%d",a[i]);printf("\\n从大到小:");for(i=k-1;i>=0;i--)printf("%d",a...

如何用C语言编写一个计算正整数位数的程序?
1、输入一个正整数 2、将整数转换为字符串(使用sprintf函数)3、求字符串的长度(strlen函数),即正整数的位数 代码如下:include <stdio.h>#include <string.h>int main(){long num;char str[20];scanf("%ld", &num);sprintf(str, "%ld", num);printf("%d", strlen(str));return 0;}...

c语言: 从键盘上输入正数顺序,从屏幕上以颠倒次序输出.如输入1234...
\/* 当扫描到空格或者句号时是一个单词的结尾 *\/ if( * end_of_word == ' ' || * end_of_word == '.'){ if ( * next_word != '.' );work_of_obj++ = ' ';word_no++;if( * end_of_word == '.')next_word = end_of_word;else { next_word = end_of_word+1;} ...

输入4个整数,要求从大到小按顺序输出。。。c语言编程.xiexie
int main(){ int i,j,t,a[4];\/* 定义一个数组用来存这4个数 *\/ for(i=0;i<4;i++)scanf("%d",&a[i]); \/* 录入4个数 *\/ for(i=0;i<4;i++) \/* 冒泡法 *\/ for(j=0;j<3-i;j++){ if(a[j]<a[j+1]) \/* 比较相邻的两个数,da的调前面。*\/ { ...

C语言编程实现:从键盘中输入任意一个多位的整数(位数不确定),将其每一...
思路:定义一个字符数组,利用该数组接收键盘输入的整数,接着依次遍历该数组并输出。参考代码:include "stdio.h"int main(){ int i;char a[100];gets(a);\/\/接收键盘输入 printf("%c",a[0]);\/\/先输出第一个字符 for(i=1;a[i]!='\\0';i++)\/\/接着输出各个字符 printf("$%c"...

将从键盘输入的一对数由小到大排序输出,当输入一对相等数时,结束循环...
include<stdio.h>#include<malloc.h>#include<string.h>#define nsize 10 \/\/输入的10进制数字初始长度(包含结束符号),及内存增长幅度typedef struct num{ char *iNum;\/\/数字的整数部分 int iCnt;\/\/整数部分位数 char *fNum;\/\/数字的小数部分 int fCnt;\/\/小数位数}NUM;void getNum...

相似回答