9.27 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符‘0’的个数,用下标为‘1’的元素统计字符‘1’的个数······
#include <stdio.h>
main()
{
int str[10]={
0},i;
char ch;
printf("请输入一串字符:");
while((ch=getchar())!='\n')
{
if((ch>='0')&&(ch<='9'))
str[ch-'0']+=1;
}
for(i=0;i<=9;i++)
printf("%d:%d个\n",i,str[i]);
}
9.28 编写函数,对具有10个整数的数组进行如下操作:从下标为n的元素开始直到最后一个元素,一次向前移动一个位置。输出移动后的结果。
#include <stdio.h>
#define NUM 10
void fun(int *a,int n,int x)
{
int i;
for(i=x;i<n;i++)a[i-1]=a[i];
for(i=0;i<n;i++)printf("%d ",a[i]);
printf("\n");
}
main()
{
int n,x,a[NUM];
int i;
n=NUM;
printf("请输入10个整数:");
for(i=0;i<n;i++)scanf("%d",&a[i]);
for(i=0;i<n;i++)printf("%d ",a[i]);
printf("\n");
printf("请输入一个下标:");scanf("%d",&x);
fun(a,n,x);
}
9.29 编写函数,把数组中的所有奇数放在另一个数组中返回。
#include <stdio.h>
#include <stdlib.h>
#define M 20
int fun(int *a,int *b,int n)
{
int i,k=0;
for(i=0;i<n;i++)
{
if(a[i]%2!=0)
{
b[k]=a[i];
k++;
}
}
return k;
}
main()
{
int a[M],b[M];
int i,k,j,n;
n=M;
for(i=0;i<M;i++)
{
a[i]=rand()%50;
printf("%d\t",a[i]);
if((i%5==4)&&(i!=0))printf("\n");
}
printf("--------------------------\n");
k=fun(a,b,n);
for(j=0;j<k;j++)
{
printf("%d\t",b[j]);
if((j%5==4)&&(i!=0))printf("\n");
}
printf("\n");
}
9.30 编写函数,对字符数组中的字母按由大到小的字母顺序进行排序。
#include <stdio.h>
#define NUM 6
void fun(char *,int );
void arrin(char *a,int n)
{
int i=0;
char ch;
printf("请输入5个字符:");
while(((a[i]=getchar())!='\n')&&(i<n))i++;
}
void fun(char *a,int n)
{
int i,j;
char ch;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)if(a[i]<a[j]){
ch=a[i];a[i]