当前位置:首页 > c语言第9章书后习题 - 编程题
第9章 数 组
三、编程题
9.27 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符’0’的个数,用下标为1的元素统计字符’1’的个数……
#include
int a[10]={0},i; char c;
while((c=getchar())!='\\n') { }
for(i=0;i<=9;i++)
printf(\字符的个数:%d\\n\if(c>='0' && c<='9')
a[c-'0']++;
}
9.28 编写函数,对具有10个整数的数组进行如下操作:从下标为n的元素开始直到最后一个元素,依次向前移动一个位置。输出移动后的结果。
#include
#include
void fun(int a[], int n, int m)//m代表数组的大小 { }
void main() {
int a[10],n,i;
for(i=0;i<=9;i++)//产生10个0~39的随机数,并输出 {
a[i]=rand()@; int i;
for(i=n;i } } printf(\ printf(\ scanf(\指定n的值 fun(a,n,10); 9.29 编写函数,把数组中所有奇数放在另一个数组中返回。 #include void fun(int a[], int b[],int * n)//n代表b数组有效数的多少 { } void main() { } 9.30 编写函数,对字符数组中的字母按由大到小的字母顺序进行排序。 int a[10],b[10]={0},i,n; for(i=0;i<=9;i++)//产生10个0~39的随机数,并输出 { } printf(\fun(a,b,&n); for(i=0;i printf(\ printf(\a[i]=rand()@; printf(\int i,j=0; for(i=0;i<10;i++) if(a[i]%2) b[j++]=a[i]; *n=j; #include void fun(char a[], int n)//n代表a数组的大小 { } void main() { } 9.31 输入若干个有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对插在最前,插在最后, 插在中间三种情况运行程序,以便验证程序是否正确。 #include char a[10],i=0,n; while((a[i++]=getchar())!='\\n' && i<=9); //排序前输出数组中字符 for(i=0;i<=9;i++) { } printf(\fun(a,10);//排序 //排序后输出数组中字符 for(i=0;i<10;i++) printf(\putchar(a[i]); int i,j; char c; for(i=0;i for(j=i+1;j if(a[i] {c=a[i]; a[i]=a[j]; a[j]=c;} printf(\ { } 9.32 编写函数,把任意十进制正整数转换成二进制数。提示:把十进制数不断被2除的余数放在一个一维数组中,直到商为零。在主函数中进行输出,要求不得逆序输出。 #include void dtob(int n,int a[],int *m) { int i=0,r,j; a[0]=n%2; n=n/2; while(n>0) char a[10],i,n,m,j; printf(\请输入有序数有多少个\\n\ scanf(\代表具体有多少个有序数,它应在1~9之间 printf(\请输入%d个有序数:\\n\for(i=0;i scanf(\ } printf(\请输入要插入的数:\scanf(\输入要插入的数 //找位置 for(i=0;i if(a[i]>m) break; //空出位置 for(j=n-1;j>=i;j--) a[j+1]=a[j]; //插入数m a[i]=m; n++; //输入后的数组元素 for(i=0;i printf(\ printf(\
共分享92篇相关文档