当前位置: 代码迷 >> C语言 >> [求助]switch..!
  详细解决方案

[求助]switch..!

热度:1083   发布时间:2007-08-23 21:57:40.0
[求助]switch..!
#include "stdio.h"
main()
{
int n;
int d1,d2,d3,d4;
d1=d2=d3=d4=0;
printf("成绩查询\n\n");
printf("输入成绩:");
scanf("%d",&n);
while(n<=100)
{
switch((int)(n/10))
{
case 10:
case 9:
d1++;
break;
case 8:
d2++;
break;
case 7:
case 6:
d3++;
break;
default:
d4++;
break;
}
printf("输入成绩");
scanf("%d",&n);
}
printf("\n优秀%d人\n",d1);
printf("\n良好%d人\n",d2);
printf("\n合格%d人\n",d3);
printf("\n不合格%d人\n",d4);
}

我想问问,switch,有什么用,还有为什么我输入大于100的数值会自动得出结果?还有那个什么d1++,d2++有什么用?
搜索更多相关的解决方案: switch  case  int  break  

----------------解决方案--------------------------------------------------------
晕倒。。。程序逻辑很严重的问题。。。。。。。


[此贴子已经被作者于2007-8-23 22:06:09编辑过]


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
switch是用来分支判断的一种程序逻辑。比如n/10==9时,就执行d1++;break;

你输入大于100的数后while循环就终止了,所以马上输出结果。

d1++,d2++...是用来统计人数的。

这些都是基本知识,要好好掌握阿。
----------------解决方案--------------------------------------------------------
while()是循环语句;

switch....case...是选择语句;

这二个语句嵌套?

我下午有空写一个,根据你的意思。

[此贴子已经被作者于2007-8-24 10:49:09编辑过]


----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
int n=0;
int d1,d2,d3,d4;
int a[100];
d1=d2=d3=d4=0;
printf("成绩查询\n\n");
printf("输入成绩:");
for(n=0;n<10;n++) /*换成switch(n++<10)也是一样的*/
{scanf("%d",&a[n]);
switch(a[n]/10)
{
case 10:
case 9:
d1++;
break;
case 8:
d2++;
break;
case 7:
case 6:
d3++;
break;
default:
d4++;
break;
}
}
printf("\n优秀%d人\n",d1);
printf("\n良好%d人\n",d2);
printf("\n合格%d人\n",d3);
printf("\n不合格%d人\n",d4);
}

数组设为100人,测试时实际只放10人。你自己调整吧。

[此贴子已经被作者于2007-8-24 11:04:52编辑过]


----------------解决方案--------------------------------------------------------
..谢谢!
----------------解决方案--------------------------------------------------------
  相关解决方案