一觉起来,悬着的心终于死了
部分错误!!救命,孩子以及傻了啊啊啊啊啊
int main(){
int a,b,c;
int min,i,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
if(b>c){
max=a;i=b;min=c;
}
else if(a>c){
max=a;i=c;min=b;
}else{
max=c;i=a;min=b;
}
}else if(a<c){
if(b<c){
max=c;i=b;min=a;
} else if(a<c){
max=b;i=c;min=a;
}else{
max=b;i=a;min=c;
}
}
printf("%d->%d->%d",min,i,max);
return 0;
到底是哪里错了!
int main(){
int a,b,c;
int min,i,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
if(b>c){
max=a;i=b;min=c;
}
else if(a>c){
max=a;i=c;min=b;
}else{
max=c;i=a;min=b;
}
}else {
if(b<c){
max=c;i=b;min=a;
}else if(a<c){
max=b;i=c;min=a;
}else{
max=b;i=a;min=c;
}
}
printf("%d->%d->%d",min,i,max);
return 0;
答案正确!!!我又活了!!是后半部分ELSE错了,IF和ELSE没有一一对上捏,数一下就差不多了好耶
IF后面一定要跟条件!!是下午回来又忘记的我
一,SWITCH-CASE语句
还是来到我们的中奖大梦!
int main(){
int a;
scanf("%d",&a);
switch (a){
case 5:
printf("自己花吧");
break;
case 25:
printf("5万留着,15上交");
break;
case 100:
printf("5给你,15给我,20交税,50养老");
break;
default:
printf("没中吗?!");
}
1,格式———swith(变量){case 常量 冒号!!是冒号!分号会报错的,语句,break;分号,……最后defaulf : 冒号}
2,变量只能是INT类型,就是整数型,double不行
3,常量可以是表达式,2+3,但是结果要是常量,可以CONST定义一个,可以直接用【仅限C99哦】
4,和IF语句的差别就是?IF会一个个验条件?有先后顺序,SWITCH的CASE都是平级,找到符合的就执行了
int main() {
int a;
scanf_s("%d", &a);
if (a = 5) {
printf("自己花吧");
}
if (a = 25) {
printf("5万留着,15上交");
}
if (a = 100) {
printf("5给你,15给我,20交税,50养老");
}
else{
printf("没中吗?!");
}
5,CASE只是一个入口,不能阻止句子继续执行,如果没有BREAK,遇到多少个CASE都会执行,知道遇到BREAK为止
case 1:
case 5:
printf("自己花吧");
break;
case 25:
printf("5万留着,15上交");
case 100:
printf("5给你,15给我,20交税,剩下养老");
break;
输入1,会执行5的输出,输入25,25和100的输出都会执行,
6,A不能出现在常量表达式中,所以?他不能写分段连续函数是吧!?
二,循环
int main(){
int a;
int b=0;
scanf("%d",&a);
a/=10;
b++;
while(a>0){
a/=10;
b++;
}
printf("%d",b);
PS:计算机里面的整数是有范围的哦
差不多就是把IF改成WILE,其他部分都一样
1,一定要有改变循环判断的条件,嗯,此雷已踩,谢,大概就是少写了一句两句
while(a>0){
a/=10;
b++;
}
如果去掉循环之前的运算,输入0输出0,
【可以外面IF一下A>0.ELSE输出1】【或者int b=1,B的初始值就是1】
while(a>0){
printf("a=%d,b=%d\n",a,b);
a/=10;
b++;
可以把输出加入循环调试!!!!就可以看到每一步啦【用边缘数字进行调试哦】
!!!!【上交的时候记得注释掉}
三,do-while循环
do {
a/=10;
b++;
}
while(a>0);
区别就是先做了一遍,然后再判断条件,条件满足,继续循环,条件不满足,循环结束!!!呵呵马上我就错了
DO{语句}while(判断条件);分号,不然语句不结束!
【微笑】不懂讲了什么,大概是?能跑的都是好的??
跑大循环可以用小循环测试一下
四,RAND()
#include<stdio.h>
#include<stdlib.h>
#include<time.h>//两句话都是为了调用srand,rand
int main(){
srand(time(0));
int a=rand( );
int b=0;
printf("%d,猜的次数是%d",a%100,b);
return 0;
随机产生的数字比较大,除100取能保证随机产生100以内的数字
4.1猜字游戏
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊我好绝望,我的循环怎么回事
救命啊救命啊
狗东西!!!啊啊啊明明SV可以,为什么DEV老是报错!!!!!啊啊啊啊我真的服了
#include<stdio.h>
#include<stdlib.h>
#include<time.h>//两句话都是为了调用srand,rand
int main() {
srand(time(0));
int number = rand() % 100 + 1;
int count = 0;
int a = 0;
printf("我已经想好了一个1-100的数字");
do {
printf("请猜这个数字");
scanf_s("%d", &a);
count++;
if (a > number) {
printf("说大了");
}
else if (a < number) {
printf("说小了");
}
} while (a != number);
printf("牛啊,%d次就猜对了\n", count);
return 0;
}
好吧,重开一个DEV文件又可以,服了服了
4.2 求平均数
int number = 0;
int count = 0;
int sum = 0;
scanf_s("%d", &number);
do {
sum += number;
count++;
} while (number != -1);
sum = sum / count;
printf("count=%d,sum=%d\n", count, sum);
不对!啊,这个只能输入一个数字,只要不是-1,就会一直累加循环,不是输入一串数字捏,要把输入也放进循环里面!
int number = 0;
int count = 0;
int sum = 0;
do {
scanf_s("%d", &number);
sum += number;
count++;
} while (number != -1);
sum = sum / (count-1);
printf("count=%d,sum=%d\n", count, sum);
只输入-1,运行到SUM=SUM/(COUNT-1)会报错
家人们一听就蒙了,怎么回事!!!!所以,-1是不算在里面吗?
我的也行,就是后面还是count要减去1,哦,D0-WHILE多做了一次动作,那不就是WHILE
还关系到运行速度,内存,是否容易被别人理解,好吧,做个笔记就好
int number = 0;
int count = 0;
int sum = 0;
scanf_s("%d", &number);
while (number != -1) {
sum += number;
count++;
scanf_s("%d", &number);
}
sum = sum / count;
printf("count=%d,sum=%d\n", count, sum);
4.3 整数求逆
int x=0;
int digit=0;
int t=0;
scanf("%d",&x);
while(x!=0){
x/=10;
digit=10*digit+x%10;
printf("%d\n",digit);
t++;
}
printf("一共有%d位数,反写是%d\n",t,digit);
天杀的,哪里错了 !!!最后一步!5/10=0,这里要加上判断!
木啊的,直接整晕了
int x = 0;
int digit = 0;
int t = 0;
scanf_s("%d", &x);
if (x > 10) {
while (x > 10) {
digit = 10 * digit + x % 10;
x /= 10;
printf("%d\n", digit);
t++;
}
}
if (x < 10) {
x = x;
digit = 10 * digit + x % 10;
printf("%d\n", digit);
t++;
}
printf("一共有%d位数,反写是%d\n", t, digit);
这是把小于10的情况单独讨论了,有犯一个错误是,X/=10之后,值就变了,不能再带入DIGIT的运算了,所以要先算DIGIT
int x = 0;
int digit = 0;
int t = 0;
scanf_s("%d", &x);
while (x != 0) {
digit = 10 * digit + x % 10;
x /= 10;
printf("%d\n", digit);
t++;
}
printf("一共有%d位数,反写是%d\n", t, digit);
嗷呜!原来一开始的循环没错,是循环里面的东西错了!开心!!
如果要700输出007
scanf_s("%d", &x);
while (x != 0) {
digit = x % 10;
x /= 10;
printf("%d", digit);
t++;
}
printf("一共有%d位数", t);