C语言.随机生成四位正整数并判断第三位是不是是2或7输出YES或NO
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言.随机生成四位正整数并判断第三位是不是是2或7输出YES或NO相关的知识,希望对你有一定的参考价值。
按照你的要求,随机生成四位正整数并判断第三位是否是2或7输出YES或NO的C语言程序如下:
#include <stdio.h>#include <time.h>
#include <stdlib.h>
int main()
srand((unsigned) time(NULL)); //用时间做种子,每次产生随机数不一样
for (int i=0; i<10; i++) //产生10个随机数
int number = rand() % 9000 + 1000;//产生1000-9999的随机数
printf("%d ", number);
int n=number/10%10;
if(n==7||n==2)printf("Yes\\n");
else printf("No\\n");
return 0;
运行结果:
参考技术A //// main.c
// C语言调试01
//
// Created by dushengduan on 15/7/4.
// Copyright (c) 2015年 dushengduan. All rights reserved.
//
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void srand();
int main()
srand((unsigned)time(NULL)); //用时间做种,每次产生随机数不一样
int number = 1000 + rand() % 9000; //产生0-9999的随机数
printf("%d\\n", number);
//取第三位数,也就是十位数
int thirdNum = (number % 100) / 10;
if (thirdNum == 2 || thirdNum == 7)
printf("YES\\n");
else
printf("NO\\n");
运行结果:
参考技术B #include <stdio.h>#include <stdlib.h>
#include <time.h>
int main()
int a, t, th;
srand(time(0));
//可能有点问题,我的这里每次随机第一个数都是两千多的,所以这里随机忽略一些值
t = rand()%101;
while (t--)
rand();
/////////end
a = rand()%9000+1000;
printf ("a=%d\\n", a);
//第三位是十位
th = a/10%10;
if (th == 2 || th == 7)
printf ("YES\\n");
else
printf ("NO\\n");
return 0;
第六次作业
1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
1 #include<stdio.h> 2 int main() 3 { 4 int num,a,b,c,d,sum; 5 printf("输入一个四位整数"); 6 for(num=1000;num<=9999;num++) 7 { 8 a=num/1000; 9 b=num/100%10; 10 c=num/10%10; 11 d=num%10; 12 sum=1000*d+100*c+10*b+a; 13 if(num==4*sum) 14 { 15 printf(" %4d",num); 16 } 17 } 18 19 return 0; 20 }
2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。
样例: 输入123, 输出 6 June
输入12345,输出 15 ***
1 #include<stdio.h> 2 int main() 3 { 4 int num,s=0,i,x,sum=0; 5 6 printf("输入任意一个多位的数字"); 7 scanf("%d",&num); 8 9 while(num!=0) 10 { 11 s=num%10; 12 num=num/10; 13 x=x+s; 14 } 15 16 if(x<=0||x>=13) 17 { 18 printf("***"); 19 } 20 else if(x>=0&&x<=12) 21 { 22 23 switch(x) 24 { 25 case 1:printf("%dJanuary",x);break; 26 case 2:printf("%dFebruary",x);break; 27 case 3:printf("%dMarch",x);break; 28 case 4:printf("%dApril",x);break; 29 case 5:printf("%dMay",x);break; 30 case 6:printf("%dJune",x);break; 31 case 7:printf("%dJuly",x);break; 32 case 8:printf("%dAugust",x);break; 33 case 9:printf("%dSeptember",x);break; 34 case 10:printf("%dOctorber",x);break; 35 case 11:printf("%dNovember",x);break; 36 case 12:printf("%dDecember",x);break; 37 } 38 } 39 40 return 0; 41 }
3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输入格式:输入在一行中给出A。
输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。
输入样例:2
输出样例:234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
此题可在pta网站注册提交测试。https://pta.patest.cn/pta/test/14/exam/4/question/796
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int A,a,x,y,z,d,num; 6 printf("输入一位不超过6的整数"); 7 scanf("%d",&A); 8 a=A+4; 9 for(x=A;x<a;x++) 10 for(y=A;y<a;y++) 11 for(z=A;z<a;z++) 12 { 13 if(x!=y&&x!=z&&y!=z) 14 { 15 num=100*x+10*y+z; 16 printf(" %d",num); 17 d++; 18 if(d%6==0) 19 { 20 printf("\\n"); 21 } 22 } 23 } 24 return 0; 25 }
4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 int main() 5 { 6 int a,b,c,i,j,k; 7 char x,y,Y; 8 do 9 { 10 printf("请输入商品的价格:\\n"); 11 scanf("%d",&a); 12 srand(time(NULL)); 13 b=rand()%100+1; 14 for(i=1;i<=10;i++) 15 { 16 if(a!=b) 17 { 18 if(a>b) 19 { 20 printf("猜大了\\n"); 21 scanf("%d",&a); 22 j=j+1; 23 } 24 else if(a<b) 25 { 26 printf("猜小了\\n"); 27 scanf("%d",&a); 28 k=k+1; 29 } 30 } 31 if(a==b) 32 { 33 printf("猜对了,你一共猜错了%次",(j+k)); 34 } 35 } 36 printf("你一共猜错了%d次哦",(j+k-1)); 37 printf("继续下一轮吗?Y (y)or N(n)\\n"); 38 scanf(" %c",&x); 39 }while(x==\'Y\'||x==\'y\'); 40 return 0; 41 } 42
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 int main() 5 { int a,b,c=0,e=1,s1=0,s2=0,i,i1,i2; 6 char x; 7 srand(time(NULL)); 8 do{ 9 10 b=rand()%3+1; 11 printf("第%d轮对决,请选择:1.石头,2.剪刀,3.布\\n",e); 12 scanf("%d",&a); 13 if(a<=0||a>3) 14 { 15 printf("数据错误,重新输入!\\n"); 16 } 17 else if(a==b) 18 { 19 c++; 20 e++; 21 printf("平局\\n"); 22 } 23 else if((a==1&&b==3)||(a==2&&b==1)||(a==3&&b==2)) 24 { 25 s1++; 26 e++; 27 printf("你输了\\n"); 28 } 29 else if((a==1&&b==2)||(a==2&b==3)||(a==3&b==1)) 30 { 31 s2++; 32 e++; 33 printf("你赢了\\n"); 34 } 35 printf("继续下一轮吗?Y (y)or N(n)\\n"); 36 scanf(" %c",&x); 37 } while(x==\'y\'||x==\'Y\'); 38 printf("对决次数%d平局%d次,电脑%d分,你%d分",e-1,c,s1,s2); 39 return 0; 40 }
附加题
有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。
注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上
用火柴棍拼数字0-9的拼法如图所示:
1 #include<stdio.h> 2 int main() 3 { 4 int s1,s2,s3,a,b,sum; 5 for(a=0;a<=9;a++) 6 for(b=0;b<=9;b++) 7 { 8 switch(a) 9 { 10 case 0:s1=6;break; 11 case 1:s1=2;break; 12 case 2:s1=5;break; 13 case 3:s1=5;break; 14 case 4:s1=4;break; 15 case 5:s1=5;break; 16 case 6:s1=6;break; 17 case 7:s1=3;break; 18 case 8:s1=7;break; 19 case 9:s1=6;break; 20 } 21 switch(b) 22 { 23 case 0:s2=6;break; 24 case 1:s2=2;break; 25 case 2:s2=5;break; 26 case 3:s2=5;break; 27 case 4:s2=4;break; 28 case 5:s2=5;break; 29 case 6:s2=6;break; 30 case 7:s2=3;break; 31 case 8:s2=7;break; 32 case 9:s2=6;break; 33 } 34 sum=a+b; 35 switch(sum) 36 { 37 case 0:s3=6; break; 38 case 1:s3=2; break; 39 case 2:s3=5; break; 40 case 3:s3=5; break; 41 case 4:s3=4; break; 42 case 5:s3=5; break; 43 case 6:s3=6; break; 44 case 7:s3=3; break; 45 case 8:s3=7; break; 46 case 9:s3=6; break; 47 } 48 if(s1+s2+s3==12&&a<=9&&b<=9&&sum<=9) 49 { 50 printf("%d+%d=%d\\n",a,b,sum); 51 } 52 } 53 return 0; 54 }
二、知识点总结(对顺序结构、选择结构、循环结构做综合总结)
1:利用穷举法,用多个循环叠加求出多个解得问题。
2:如果使一个数倒叙输出可以通过(x=x*10+?%10;?=?%10)得到
三、实验总结(实验中遇到的问题及解决方法)
1:虽然穷举法简单好用,但是有时候运算步骤过多,需要适当减短。
2:如果变量没有规律可以通过swtich语句解决,不要忘了加分号。
3:注意问题条件的范围大小,在输出结果往往会忽略这些细节。
4:没有什么困难是努力做不到的,如果做不出来,那说明不够用心。
5:C语言编译失败往往是因为小错误,看看是那里错了呢?
6:continue跳入上一个循环(勿?)。
以上是关于C语言.随机生成四位正整数并判断第三位是不是是2或7输出YES或NO的主要内容,如果未能解决你的问题,请参考以下文章
c语言编程:输入一个正整数n,产生n个1000以内的随机数,统计其中这些随机数中偶数的个数,并输出统计结果.
C语言试题160之某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上 5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位