小弟我实在受不了了,第一个大一点的程序就出了这么个问题
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include<conio.h>
#include<time.h>
void println()
{
printf(" ---------------------------------------------------\n");
printf(" //////////////////@\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf(" 系—统—大—全\n") ;
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n");
printf(" ---------------------------------------------------\n");
printf(" 请输入你想进入的系统:\n");
printf(" 0—年度收入统计系统\n");
printf(" 1—个人所得税计算系统\n");
printf(" 2—猜价格游戏软件系统\n");
printf(" 3—卡拉OK大奖赛评分系统\n");
printf(" 4—汉诺塔游戏答案告知系统\n");
printf(" 5—退出系统系统\n");
printf(" ---------------------------------------------------\n\n");
printf("请输入选择:");
}
void incomestatics()
{
printf(" *************************************************\n\n");
printf(" 年度收入统计系统\n\n");
printf(" *************************************************\n\n");
int i;
float sr[12];
float sum=0,max=0,min=0,ave=0;
float temp=0;
for(i=0;i<12;i++)
{
printf("请输入第%d个月的公司收入:",i+1);
scanf("%f",&sr[i]);
}
for(i=0;i<12;i++)
{
sum+=sr[i];
ave=sum/12;
}
max=min=sr[0];
for(i=1;i<12;i++)
{
if(sr[i]>max)
max=sr[i];
if(sr[i]<min)
min=sr[i];
}
printf("骏腾公司全年的总收入为%f\n",sum);
printf("骏腾公司全年的平均收入为%f\n",ave);
printf("骏腾公司全年的最大月收入为%f\n",max);
printf("骏腾公司全年的最小月收入为%f\n",min);
}
void revenue()
{
printf(" *************************************************\n\n");
printf(" 个人所得税计算系统\n\n");
printf(" *************************************************\n\n");
float wage,revenue;
printf("请输入你的月工资数(以元为单位):");
scanf("%f",&wage);
printf("请输入当地的个税起征点(如果不知道马上baidu一下):");
scanf("%f",&revenue);
if(wage<revenue)
printf("这点钱也缴税,忒爱国了吧!");
else if(wage>revenue&&wage<(revenue+500))
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.05);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.05));
}
else if(wage>=(revenue+500)&&wage<(revenue+2000))
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.10);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.10));
}
else if(wage>=(revenue+2000)&&wage<(revenue+5000))
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.15);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.15));
}
else if(wage>=(revenue+5000)&&wage<(revenue+20000))
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.20);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.20));
}
else if(wage>=(revenue+20000)&&wage<(revenue+50000))
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.20);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.20));
}
else
{
printf("您应该缴纳的个税为:%f\n",(wage-revenue)*0.30);
printf("您的实际收入为:%f\n",(wage-(wage-revenue)*0.30));
}
printf("纳税光荣!!!");
}
void guess()
{
char hd[8];
int s=1;
printf(" *************************************************\n\n");
printf(" 猜价格游戏软件系统\n\n");
printf(" *************************************************\n\n");
printf("他的价格在1-1000之间,谁猜中归谁,前提先回到一个问题\n\n\n");
printf("当今世界谁最牛:");
while(s)
{
//getchar();
gets(hd);
if(strcmp(hd,"huxiang")==0)
{
printf("算你识相,可以继续了");
s=0;
}
else
{
printf("这都不知道?给你个提示,我是谁?");
}
}
int price,pricei,s1=1;
srand((unsigned)time(NULL));
price=rand()%1000;
int i=0;
while(s1&&i<10)
{
printf("请输入第%d次:",i+1);
scanf("%d",&pricei);
if(pricei==price)
{
printf("你真是个天才,答对了!!!\n");
s1=0;
}
if(pricei<price)
printf("一看就知道是个小气鬼!!!\n");
if(pricei>price)
printf("有这么大吗?\n");
if(i==8)
printf("你真是无敌了,再给你一次机会!!!\n");
if(i==9&&pricei!=price)
{
printf("你注定没戏!!!\n");
}
i++;
}
}
main()
{
println();
int xtxz,s=1;
while(xtxz)
{
scanf("%d",&xtxz);
switch(xtxz)
{
case 0:
incomestatics();break;
case 1:
revenue();break;
case 2:
guess();break;
}
}
}
当调用函数guess(),也就是进入第三个系统“ 猜价格游戏软件系统”,输入2后,直接将printf("这都不知道?给你个提示,我是谁?");语句执行了,然后我讲注释去掉,加入第一次输入答案正确,就能够执行,如果第一次输入错误,以后就执行不正确了,程序无限执行printf("这都不知道?给你个提示,我是谁?");语句,但是我讲这个函数的内容单独建立一个程序运行,完全没问题,我用的是VC++编译器,小弟实在是无法了,求各位大哥大姐帮我看看问题,我估计这个地方我肯定是没学过的,谢谢了!!!