(1)编写函数,将一维数组中的元素逆序存放,例如数组数据为1、2、3、4、5,逆序存放后位5、4、3、2、1。
#include<stdio.h>
int n,i,j,t=0,a[50],m;
void h(int n){
for(i=0;i<n;i++){
scanf("%d",&a[i]);}
for(j=0;j<n/2;j++){
t=a[j],a[j]=a[n-j-1],a[n-j-1]=t;}
for(j=0;j<n;j++){
printf("%4d",a[j]);}
}
main()
{ printf("您想输入多少个整数:");
scanf("%d",&m);
h(m);
}
(2)有一个长度不大于40的字符串,已知其中包含两个字符“A”,编写函数求处于这两个字符“A”中间的字符个数,并把这些字符依次打印出来。
#include<stdio.h>
void string(char *str,int len,int *begin,int *end){
int m=0,h=0;
for(int i=0;i<len;i++){
if(str[i]=='A'){
*begin=i;
m=1;
for(int j=i+1;j<len;j++){
if(str[j]=='A'){
*end=j;
h=1;
goto a;
}
}
}
}a:if(m==0||h==0){
printf("未找到两个A");
};
}
main(){
char str[41];
printf("请输入一个不大于40个字符的字符串(打印输出两个“A”中的字符)");
gets(str);
int len=sizeof(str)/sizeof(str[0]);
int k=0,n=0;
string(str,len,&k,&n);
for(++k;k<n;k++){
printf("%c",str[k]);
}
}
注:本代码可以使用c99标准的变长数组改为任意长度的字符串。
(3)编写函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的统计结果。
#include <stdio.h>
#include <string.h>
void count(char str[],int c1,int c2,int c3,int c4)
{
int i=0;
c1=c2=c3=c4=0;
while(str[i]!='\0')
{
if(str[i]>='A' && str[i]<='Z' || str[i]>='a' && str[i]<='z')
c1++;
else if(str[i]>='0' && str[i]<='9')
c2++;
else if(str[i]==' ')
c3++;
else
c4++;
i++;
if (str[i]=='\0'){
printf("字母:%d\t数字:%d\t空格:%d\t其他字符:%d\n",c1,c2,c3,c4);
}
}
}
int main()
{
char s[100];
int n1,n2,n3,n4;
printf("请输入字符串:");
gets(s);
count(s,n1,n2,n3,n4);
}
谢谢观赏,欢迎指教。