第一题

输入一个正整数,请判断该数据是否为偶数,如果是偶数,则输出:偶数,如果是奇数,则输出:奇数
输入描述:输入一个正整数,只需要输入一次
输出描述:输出该数是奇数还是偶数
样本输入:4
样本输出:偶数

#include <stdio.h>
int main()
{
int num;
printf("输入一个整数:");
scanf("%d",&num); 
if (num%2==0) printf("偶数");
else printf("奇数");
}

第二题


编写程序,输入一个整数 x 的值,要求输出相应的 y 的值。
输入样例:x=2
输出样例:y=4

#include <stdio.h>
int main()
{
int num;
printf("x = ");
scanf("%d",&num); 
if (num<-1) printf("y = -1");
else if (num==0) printf("y = 0");
else printf("y = %d",2*num);
}

第三题

给一个不多于 5 位的正整数 num,要求求出它是几位数。
输入样例:5000
输出样例:5000 是个 4 位数

原写法

#include <stdio.h>
int main()
{
int num;
while(1){
printf("输入一个正整数:");
scanf("%d",&num); 
if (num<=0)
printf("非正整数,不做判断。"); 
else if (num<10)
printf("%d 是一个1位数!\n",num);
else if (num>=10&&num<100)
printf("%d 是一个2位数!\n",num);
else if (num>=100&&num<1000)
printf("%d 是一个3位数!\n",num);
else if (num>=1000&&num<10000)
printf("%d 是一个4位数!\n",num);
else if (num>=10000&&num<100000)
printf("%d 是一个5位数!\n",num);
else
printf("%d 大于5位数!\n",num);}
}

稍微优雅一点的写法

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int num;
while(1)
{
    printf("输入一个正整数:");
    scanf("%d",&num); 
    int base ;
    for (int i = 0;i < 11;i++)
    {
        base = abs(num) / pow(10,i);
        if (base >=0 && base<1)
        {printf("%d是一个%d位数\n",num,i) ;
         break;}
    }
    fflush(stdin); //如果有错误的结果需要它来释放缓存区
    }
}

第四题

从键盘上输入一个小于 1000 的正整数 num,要求输出它的平方根,要求在输入数据后检查输入的数值是否是小于 1000 的正数,若不是,提示“数据无效,请重新输入一个小于 1000 的正整数”,并重新输入 num

#include <stdio.h>
#include <math.h>
int main()
{
float num;
while(1){
printf("输入小于1000的正整数:");
scanf("%f",&num); 
if (!(num>0&&num<1000)|| num != int(float(num)))
printf("数据无效,请重新输入一个小于 1000 的正整数\n"); 
else
printf("%d 的平方根是 %f\n",int(num),sqrt(int(num)));
}
}

看起来我做复杂了一点,实际上我不清楚题目会不会对“整数”这个有严格的要求,舍友我就自己加了一个整数判断。
如果这个数和去掉小数位的数不相等,那么判断为非整数。

问了老师,题目不要求整数判断,那就更简单了。

#include <stdio.h>
#include <math.h>
int main()
{
int num;
while(1){
printf("输入小于1000的正整数:");
scanf("%d",&num); 
if (!(num>0&&num<1000))
printf("数据无效,请重新输入一个小于 1000 的正整数\n"); 
else
printf("%d 的平方根是 %f\n",num,sqrt(num));
}
}

单独抽取的判断整数模型

#include <stdio.h>
int main()
{
float num;
while (1){
scanf("%f",&num);
if (num == int(float(num)))
printf("整数\n");
else
printf("非整数\n"); 
}
}

最后更新:2022-10-31 21:39:29 星期一