知识基础:
scanf("输入模式",地址列表);//输入语句及其格式。注:地址列表一定要加取地址符号&,如:&a,&b
printf("输出模式",输出列表);//输出语句及其格式。注:输出模式和输出列表一一对应,如:printf("%d%d",a,b);
if(表达式){若干语句}//单条件单分支的条件语句,若表达式成立,执行若干语句
if(表达式){若干语句1}else{若干语句2}//单条件双分支的条件语句,若表达式成立,则执行若干语句1,若表达式不成立,执行若干语句2
题目是输入a、b、c三个值,输出其中最大值,除了需要a,b,c三个变量以外,还需要一个变量t存放最大值,先拿a和b比较,如果a>b则t存放a的值,否则存放b的值,再拿c和t比较(因为t中存放的是a,b中最大的),如果c>t,则把c中的值替换t中的值,输出t
答案
#include<stdio.h> int main(){ int a,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a>b) t=a; else t=b; if(c>t) t=c; printf("%d\n",t); return 0; }
ps:if中若干语句如果只有一条的话,可以省略大括号{}
else中若干语句如果只有一条的话,可以省略大括号{}
程序结束return 0;不可省
0.0分
84 人评分
#include<stdio.h> int main() { //有三个整数a b c,由键盘输入,输出其中的最大的数。 int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d\n",a>b?(a>c?a:c):(b>c?b:c)); return 0; }
#include<stdio.h> int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (a > b) { printf("%d", a); } else if(c>a) { printf("%d", c); } else { printf("%d", b); } }
#include<stdio.h> int main() { int a,b,c; printf("please enter 3 integers!\n"); scanf("%d %d %d",&a,&b,&c); //scanf 老是写成sanf if(a>b) { if(a>c) { printf("%d\n",a); } else { printf("%d\n",c); } } else //else后面不需要条件 { if(b>c) { printf("%d\n",b); } else { printf("%d\n",c); //未加分号 } } return 0; } 请问大家 ,这个为什么答案错误 .可我在VC6上测试没问题呀 !!
#include<stdio.h> int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a>b){ if(a>c){printf("%d\n",a);} else{printf("%d\n",c);} } else{ if(b>c){printf("%d\n",b);} else{printf("%d\n",c);}} return 0; }
#include<stdio.h> int main() { int a,b,c; int max; printf("input three number: "); scanf("%d%d%d",&a,&b,&c); if (a<b) max = b; else max = a; if(max < c) max = c; printf("the max: %d\n",max); return 0; } 上面这个程序没有问题,但是提交就是错误的,只要把多于的输出 the max :删掉就是正确的。所以感觉这个练习系统的评判巨坑。
#include<stdio.h> int main() { int a[3],max,i; for(i=0;i<3;i++) {scanf("%d",&a[i]);} for(i=0;i<3;i++) {if(a[i]>a[i-1]) max=a[i]; } printf("%d",max); return 0; } 为什么会错啊!
Clearlove7 2018-11-25 19:24:29 |
第八行,i=0时,ifa[0]>a[0-1],很明显错误,而且你的程序只有在后一个数比前一个数大的情况下才是正确的
想知道哪里错了 #include<stdio.h> int main() { long long int a[3],i,max; for(i=0;i<=2;i++) scanf("%d",&a[i]); if(a[0]>a[1]) max=a[0]; else max=a[1]; if(a[1]>a[2]) max=a[1]; else max=a[2]; printf("max=%d",max); return 0; }
Clearlove7 2018-11-25 19:28:09 |
你把第二个if else 语句中的a[1]改成max就对了,假设a[0]>a[1]>a[2],按照你之前的程序,输出的max=a[1],错误
#include<stdio.h> int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); if(a>b) max=a; else if(b>c) max=b; else max=c; printf("%d",max); return 0; } 我这个为什么编译错误啊?在dev上可以运行的啊!
Clearlove7 2018-11-25 19:31:01 |
第一个else到max=c;全部yong{}括起来,if或else后面的语句只有一行时可以不用{},否则要用{}括起来
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:525 |
C语言训练-字符串正反连接 (C语言代码)浏览:618 |
程序员的表白 (C语言代码)浏览:655 |
sizeof的大作用 (C语言代码)浏览:1449 |
A+B for Input-Output Practice (III) (C语言代码)浏览:420 |
剔除相关数 (C语言代码)浏览:1088 |
半数集问题 (C语言代码)浏览:920 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:501 |
金额的中文大写浏览:3488 |
总有天使爱你 2019-03-19 17:10:28 |
这点看不懂啊 printf("%d\n",a>b?(a>c?a:c):(b>c?b:c));