C语言题库(2)

1.图形面积(函数)

分别针对各类图形定义不同的面积函数,通过输入的选项调用不同的函数方法,根据提示输入指定方法的参数,返回面积值。

思路:

(1)为了实现不同图形面积的求解,可以对不同图形的面积求法封装成不同的方法

(2)通过switch语句调用不同的方法实现不同图形面积的求解

void square(float w);
void rectangle(float l,float w );
void triangle(float h,float w);
void round(float r);
void main(int argc, char *argv[])
{ 
    int select;
    float b;
    float l,w;
    float h,wd; 
    float r;
    printf("请选择你要求的图形编号:1正方形,2长方形,3三角形,4圆形:(eg:1)");
    scanf("%d",&select);
    switch(select){
        case 1:
            printf("border = ");
            scanf("%f",&b);
            square(b);
            break;
        case 2: 
            printf("length = ");
            scanf("%f",&l);
            printf("width = ");
            scanf("%f",&w);
            rectangle(l,w);
            break;

        case 3: 
            printf("height = ");
            scanf("%f",&h);
            printf(" width = ");
            scanf("%f",&wd);
            triangle(h,wd);
            break;
        case 4: 
            printf("radius = ");
            scanf("%f",&r);
            round(r);
            break;
        default:
            break;
    }
    return 0;
} 
void square(float w){
    float s=w*w;
    printf("the area is %-4f\n",s);
}
void rectangle(float l,float w){
    float s=w*l;
    printf("the area is %-4f\n",s);
}
void triangle(float h,float w){
    float s=h*w*0.5;
    printf("the area is %-4f\n",s);
}
void round(float r){
    float s=r*r*3.14;
    printf("the area is %-4f\n",s);
}

显示效果:

 2.删除字符串中的空格(函数)

使用循环遍历,当遍历到空格符号时,指针往后移一位,依次循环删除所有空格符。

void func(char *p){
	int i=0,j=0;
	while(p[i]){
		if(p[i]==' ') i++;
		else p[j++]=p[i++];
	}
	p[j]='\0';
	printf("%s\n",p);
}


int main(){
	char c[100]="123 qer";
	func(c);
	return 0;
} 

 如果需要输入字符串,则使用gets()方法即可。

3.将两个字符串合并为一个字符串输出

int main(int argc, char *argv[])
{ 
    char s1[40]={"Hello "},s2[20]={"World "};
    char *p,*q;
    p=s1;
    q=s2;
    while(*p++);
    p--;
    while(*q){
        *p++=*q++;
    }
    p=s1;
    puts(p);
    return 0;
} 

4.用指针将整型组 s[8]={1,2,3,4,5,6,7,8}中的值逆序存放。

int main(int argc, char *argv[])
{ 
    int s[8]={1,2,3,4,5,6,7,8};
    int *p;
    p=s;
    for(int i=0;i<8/2;i++){
        *(p+i)^=*(p+7-i);
        *(p+7-i)^=*(p+i);
        *(p+i)^=*(p+7-i);
    }
    p=s;
    for(int j=0;j<8;j++){printf("%d",s[j]);}
    puts("");
    return 0;
} 

5.输入一个字符串,内有数字和非数字字符,如 a123x456 17960? 302tab5876 将其中连 续的数字作为一个整数,依次存放到整型数组 a 中。例如,123 放在 a[0],456 放在 a[1], 统计共有多少个整数,并输出这些数

int main(int argc, char *argv[])
{ 
    char str[30],*p;
    int a[10]={0};
    int result=0,i=0,j=0,sum=0;
    printf("请输入字符串:");
    gets(str);
    p=str;
    while(*p){
        if(*p>='0'&&*p<='9'){
            result=result*10+(*p-'0');
            if(!(*(p+1)>='0'&&*(p+1)<='9')){
                a[i++]=result;
                result=0;
                sum++;
            }
        }
        p++;
    }
    printf("中间有%d个整数\n",sum);
    while(sum-->0){
        printf("%-4d\n",a[j++]);
    }
        
    return 0;
} 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值