这些关于C语言的题怎么做?

如题所述

图1的题目:考的是scanf输入参数与格式的对应。

所以只要知道整型对应int(数值太大就要长整形),字符对应char,实数对应float或double。

对应的输入格式分别是%d,%c,%f或%lf。

在多个同类型的输入参数变量,可用独立变量,也可用数组。比如3个整型,你可定义3个变量来接收输入,也可定义一个int n[3]这样的数组来接收输入。

值得注意的是字符型输入,scanf输入%c这样的格式,是会把空格和回车也作为字符接收的。所以如你单独写scanf("%c",&c);是没问题的。但如连续输入比如scanf("%d%c",&n,&c);这样输入的时候第一个数字和第二个字符之间不能有任何其它字符,包括空格和回车。否则就要用getchar来把多余字符接收掉,或清空缓存。

提示:scanf连续输入包含字符的多种格式有一技巧,那就是%s把字符当字符串来输入,最后按字符串打印或用下标取字符串中的每个字符。

下面是图1代码(我写在一个main函数中,拆开的话,getchar函数可删除):

#include <stdio.h>

int main()

{

    int i,n[3];

    printf("(1)输入3个整数:\n");

    for(i=0;i<3;i++)scanf("%d",&n[i]);

    printf("输入的整数为:\n");

    for(i=0;i<3;i++)printf("%d ",n[i]);

    getchar();//连续输入在下一次输入字符前,把上一次回车接收掉

    char c[3];

    printf("\n\n(2)输入3个字符:\n");

    for(i=0;i<3;i++)scanf("%c",&c[i]);

    printf("输入的字符为:\n");

    for(i=0;i<3;i++)printf("%c ",c[i]);

    int n2[2];

    char c2;

    printf("\n\n(3)输入2个整数和1个字符(注意第3个字符输入和前一个数字间不要有任何字符包括空格和回车):\n");

    for(i=0;i<2;i++)scanf("%d",&n2[i]);

    scanf("%c",&c2);

    printf("输入的2个整型1个字符为:\n");

    for(i=0;i<2;i++)printf("%d ",n2[i]);

    printf("%c",c2);

    int n3;

    char c3;

    float f3;

    printf("\n\n(4)输入1个整数和1个字符和1个实数(注意第2个字符输入和前一个数字间不要有任何字符包括空格和回车):\n");

    scanf("%d%c%f",&n3,&c3,&f3);

printf("输入的整型、字符及实数为:\n");

    printf("%d %c %f\n",n3,c3,f3);

    return 0;

}

下面是图2:

#include <stdio.h>

int main()

{

    float r,pi=3.14159;

    printf("1、输入圆的半径:"),scanf("%f",&r);

    printf("圆的周长是%f,面积是%f\n",2*r*pi,pi*r*r);

    printf("--------------------------------------------\n\n");

    float n1,n2;

    printf("2、输入长方形的长和宽:"),scanf("%f%f",&n1,&n2);

    printf("长方形的面积是%f\n",n1*n2);

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-24
#include<stdio.h>
#define PI 3.14159//定义圆周率
int main()
{
float r,l,s;
scanf("%f",&r);
l=2*PI*r;
s=PI*r*r;
printf("周长:%.2f 面积:%.2f",l,s);
return 0;
}
————————————————————————————
#include<stdio.h>
#define PI 3.14159//定义圆周率
int main()
{
float b,a,l;
scanf("%f%f",&a,&b);
s=a*b;
printf("面积:%.2f",s);
return 0;
}
相似回答