任务说明:
3-4-1、小学生四则运算1(选做题1:sy3-4-1.c) :
让计算机给小学生随机出 10 道 10 以内的四则运算题。程序运行结果如下所示:
2-2=0↙
3+3=6↙
10+6=16↙
10-7=3↙
0+10=10↙
2+0=0↙
6+9=15↙
1*2=2↙
4/2=2↙
10+6=16↙
其中表达式是计算机产生的,答案是用户输入的。蓝色字体显示的为计算机运行时产生的提示信息,红色字体为用户通过键盘输入的数据。
[ 友情提示: ]
① 操作数 1 和操作数 2 是计算机随机产生的 0~10 之间的整数, 注意 除法运算要考虑除数不能为 0 且被除数一定要能够整除除数,减法运算差应>= 0 。
② 运算符为计算机产生的 1~4 之间的随机数,规定 1 为 加法 运算, 2 为 减法 运算, 3 为 乘法 运算, 4 为 除法 运算。
③ 在循环体内设置一个计数器 count 。循环条件: while( count < 10 )
④ 用到的相关函数和头文件:
rand 、 time (NULL) 、 srand ( time ( NULL ) ) 、stdlib.h 、 time.h
且srand ( time ( NULL ) ) 要放在循环体外
3-4-2、小学生四则运算2(选做题2:sy3-4-2.c)
如果将以上题目修改成:答案正确提示 right !否则提示 error !程序又将作何修改?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(void)
{
int count=0; //计数器
int num1,num2; //操作数1和操作数2
int oper; //运算符
int ans; //输入的答案
srand( (unsigned)time( NULL ) );
while(count<10)
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
oper=(int)((3*rand()/(RAND_MAX+1.0))+1); //1-4之间的随机数
switch(oper)
{
case 1:
{
printf("%d+%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1+num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 2:
{
while(num1-num2<0) //若差小于0,重新生成num1和num2
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
}
printf("%d-%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1-num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 3:
{
printf("%d*%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1*num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
case 4:
{
while((num2==0)||(num1%num2!=0)) //若除数为 0 或者除数不能够整除除数,重新生成num1和num2
{
num1=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
num2=(int)(10*rand()/(RAND_MAX+1.0)); //0-10之间的随机数
}
printf("%d*%d=",num1,num2);
scanf("%d",&ans); //键盘输入结果ans
if(ans==(num1/num2)) //判断结果正确性
printf("right !\n");
else
printf("error!\n");
break;
}
}
count++;
}
}
上面是具体的程序,有注释,经验证,没问题~
请教几个简单的C语言问题!急!在线等!
1、3.4f表示按宽度为3精度为4的单精度浮点型输出。%05d或%.5d表示按宽度为5的整型输出,实际位数少于定义的宽度则在前面补以0。printf("%03d",34)编译运行输出结果为034 其中的0不是针对8进制数,而是表示实际位数少于定义的宽度则在前面补以0。对于单双精度实数%0n1.n2f等同于%n1.n2f.2...
c语言小题目。急急急
1. 编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)main(){int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a[i]=t;} ...
C语言中输出的空格问题!!!急!
1、在输出串中直接加空格,改成:printf("%ld ld ld ",f1,f2,f3);2、采用数字输出定长方式(如8字节),不足长的补空格:printf("%8ld%8ld%8ld",f1,f2,f3);
C语言作业,急急急求解答
题分析:这个问题可能是由于软件代码中存在大量的冗余、重复计算或者低效算法等因素导致的。另外,如果软件需要加载大量的数据或者进行网络连接,则也会影响其启动速度。解决方案:为了解决这个问题,我们可以从以下几个方面入手:1.优化程序代码:检查程序中是否存在冗余、重复计算或者低效算法等因素,对代码进行...
C语言问题求解,在线等,急!!!
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。3、init函数为输入并返回动态数组。include <stdio.h> include <malloc.h> int len=0;\/\/路面长度 int *init(...
C语言问题,急
逗号运算符。先执行括号内的表达式。a=4*5=20 a*2=40 表达式a=4*5,a*2的值是40,且a的值是20 a+6=20+6=26 逗号运算符,最后一个表达式的值就是整个表达式的值。表达式(a=4*5,a*2),a+6的值是26。
c语言错误!!1,哭着找你们帮忙啊啊!!急!!!
这里不合适 你少了一个参数 应该是 c=m*power(m,n);你应该给power(int m,int n)这个函数一个初值吧 是不是在求一个阿克曼函数?还有下面的循环也不对 根据你写的程序 我改了一下 可以实现功能了 include<stdio.h> include<math.h> int power(int m,int n){ int c=1;if(n==0)retu...
C语言高手帮忙啊!急!!!
;while(p!=NULL){ printf("%d,",p->data);p=p->next;} } void main(){ linklist *L;L=CREAT();LENGTH(L);OUT(L);} 该程序在turboc2.0上运行成功。顺便说一下:其实我这学期刚学《数据结构》,我想你也应该在学这门课吧,不知道可否交个朋友,以后好互相讨教。QQ:729430705 ...
C语言颜色问题,非常急!!!
1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色 2.改变下一个输出或者输入字体和背景的颜色 采用SetConsoleTextAttribute函数,如 White on Black:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE...
C语言命令问题..急..在线等
1.在程序编辑完后按f9进行编译 2.要返回编辑窗口修改 程序,按f6,修改后运行编辑 3.要运行程序可选择RUM菜单中的RUN命令,也可用快捷键ctrl+f9 4.观察结果alt+f5。f2是保存。其他都忘记了。上学时的笔记上就记了这么多,你看着用吧。我刚翻出我的c程序设计第二版来看。笔记虽然乱了点,但重点...