#include <stdio.h>
int main() {
double d = 0;
scanf("%lf", &d);
printf("%.0f", d);
return 0;
}
#include<stdio.h>
int main()
{
int a = 0,b = 0,c = 0;
scanf("%4d%2d%2d", &a,&b,&c);
printf("你的出生日期是%d年%d月%d日", a,b,c);
return 0;
}
你以为你对了?hhh 你会发现你输入的19790506,输出的结果中本该出现05月,而却是5月!!! 0呢?0呢??
————嘿嘿,知识点空缺了吧(没错就是作者大大我犯的错误QAQ )
小知识点: printf 函数的 % 0格式控制符,输出数值时指定左面不使用的空位置自动填0。
于是我恍然大悟需要这打印的时候做点什么 ——👉 printf (" month =%02d\n", b);
int main()
{
int a = 0, b = 0, c = 0;
scanf("%4d%2d%2d", &a, &b, &c);
printf("你的出生日期是%d年%02d月%02d日", a, b, c);
return 0;
}
首先,我们进入游戏,需要游戏菜单,所以需要一进入页面就显示的菜单,这里我用了do while循环结构,在do阶段先噶菜单
在菜单中,我们还需要游戏按钮选项,点击开始或退出,不同按钮触发我们用的是switch开关结构
开始游戏,猜数字需要 先系统生成随机数字,这里运用的是rand, srand, time的结构
// 这里记录下我de新知识点:
// ①头文件 :rand和srand <stdlib.h>
time<time.h>
// ②随机数运用形式 :(范围a到b的随机数)a + rand ( ) % ( b - a + 1 )
( 如:1-100的随机数: 1 + rand( )% 100 )
srand((unsigned int)time(NULL))
其次,猜数字猜大猜小,需要猜好几次,所以我们考虑用for/while循环
以下是我敲的代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game() //游戏单独调用函数
{
int r = rand() % 100 + 1;//这是随机数生成
int guess = 0;
int count = 7; //设置了机会次数
for(count=7;count<=7&&count>0;) //我用的for循环
{
printf("还剩下%d次机会", count);
printf("请输入你猜的数字:");
scanf("%d", &guess);
count--;
if (guess > r)
{
printf("猜大了\n");
}
else if (guess < r)
{
printf("猜小了\n");
}
else
{
printf("恭喜你猜对了!你真棒!\n");
break;
}
if (count == 0)
{
printf("很遗憾,在规定的时间你没猜出!输了吧!傻逼!!\n");
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL)); //随机数的srand只需调用一次,于是我放前面了
do //菜单放在do的位置
{
printf("***********************\n");
printf("*****1.开始游戏********\n");
printf("*****0.退出游戏********\n");
printf("***********************\n");
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game(); //游戏单独调用函数来作,这样代码没那么臃肿
break;
case 0:
printf("退出成功\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
} while (input);
return 0;
}
这个是运算结果
这题我犯了个错误,导致我运算的结果都只有素数个数等于0
各位看官能看出哪里错了嘛
(咳咳不信都看得出来 /固执 /自我安慰)
int main() 这是含错误的代码
{
int a = 0;//a是100-200内的数
int c = 0;//c是标记非素数的
int count = 0;
for (a = 100; a <= 200; a++)
{
int b = 0;
for (b = 2; b <= a - 1; b++) //是2到(素数-1)的数的范围
{
if (a % b == 0)
{
c = 1;
break;
}
}
if (c == 0)
{
count++;
printf("%d\n", a);
}
}
printf("count=%d", count);
return 0;
}
3
2
1
————公布答案啦
错误是应该把第7行的放到第11行去
减肥法
这个得知道这个c是用来干嘛的,我后边标了注释,即c像个标记:
如果不是素数就变为0,是素数就保持1不变
假设第一次变成了0 只能代表当前的数字不为素数,所以下次循环的时候要重新初始化,再去判断下一个数是不是素数
要是放在外面,这个c就不管循环多少次都是0,没有意义了
(嘻嘻给自己讲的真好,夸夸~)