C语言高手请进,帮我看下这代码哪儿错了.万分感激!

2024-11-27 06:31:40
推荐回答(6个)
回答1:

#include "stdio.h"
sum(int i)
{ int h,c;
i=0;
for(h=1;h<99;h++)
for(c=1;c<99;c++)
if((0.5*h+3*c+2*(100-h-c)==100)&&((h+c)<100))
{
printf("小鸡:%d,母鸡:%d,公鸡:%d\n",h,c,(100-h-c));
i++;}
return(i);
}

main()
{char d;
int i;
printf("今有百钱,欲买百鸡,已知小鸡半元、母鸡三元、公鸡两元,问有多少种买法?\n");
printf("如果你知道答案请按Y,如果不知道请按N。\n");
scanf("%c",&d);
while((d!='y')&&(d!='n'))
{printf("您的输入有误请重新输入\n");
scanf("%c",&d);}
stop: if(d=='y'){printf("请输入您的答案\n");
scanf("%d",&i);
if(d==sum(i)) printf("回答正确恭喜您!\n");
else {printf("回答错误小傻瓜!要看正确答案请按n,要继续回答请按y。\n");
scanf("%c",&d);
while(d!='y'&&d!='n')
{printf("您的输入有误请重新输入\n");
scanf("%c",&d);}
if(d=='n')
printf("%d是正确答案,傻瓜!\n",sum(i));
else goto stop;
}
}
}

已经可以正常运行了。建议你再修改以下部分:
1。上来就按n的话,没有输出提示
2。尽量不要用goto语句
3。从sum函数返回的值,应该建立一个变量来存储。多次调用函数,会增加算法的时间复杂度。
4。写大程序的时候。变量的命名,最好能做到,见名知意。

回答2:

结构不严谨~
改了些子 还是很乱..
还要加些循环控制以及break
执行的有些问题
#include "stdio.h"

int sum()
{int h,c,k,i=0;

for(h=1;h<99;h++)
for(c=0;c<33;c++)
for(k=0;k<50;k++)
if(0.5*h+3*c+2*k==100&&h+c+k==100)
{
printf("小鸡:%d,母鸡:%d,公鸡:%d\n",h,c,k);
i++;}
return(i);
}

void main()
{char d;
int i;
printf("今有百钱,欲买百鸡,已知小鸡半元、母鸡三元、公鸡两元,问有多少种买法?\n");
printf("如果你知道答案请按Y,如果不知道请按N\n");
scanf("%c",&d);
while(d!='y'&&d!='n')
{printf("您的输入有误请重新输入\n");
scanf("%c",&d);}
stop:if(d=='y'){printf("请输入您的答案\n");
scanf("%d",&i); }

if(d==sum()) printf("回答正确恭喜您!\n");
else {printf("回答错误小傻瓜!要看正确答案请按n,要继续回答请按y。\n");
scanf("%c",&d);
while(d!='y'&&d!='n')
{printf("您的输入有误请重新输入\n");
scanf("%c",&d);}
if(d=='n')
printf("%d是正确答案,傻瓜!\n",sum());
else goto stop;
}
}

sum(i)
{
int h,c,i=0;
i重复定义了

回答3:

这是老式C.

改新式
int sum(int i) // 加int int
// 去掉 int h,c,i=0;
{
int h,c; // 加
....
void main()
....
// 程序尾漏了一个花括号,要加上。
}

如果编译器不支持中文,所有字符串该英文。

回答4:

写法有问题,很难看

回答5:

很乱。

回答6:

#include "stdio.h"
int sum(){
int h,c,i;
i=0;
for(h=1;h<99;h++)
for(c=1;c<99;c++)
if((0.5*h+3*c+2*(100-h-c)==100)&&(h+c<100))
{
printf("小鸡:%d,母鸡:%d,公鸡:%d\n",h,c,100-h-c);
i++;
}
return i;
}

main()
{
char d;
int i;
i=sum();
printf("今有百钱,欲买百鸡,已知小鸡半元、母鸡三元、公鸡两元,问有多少种买法?\n");
printf("如果你知道答案请按Y,如果不知道请按N。\n");
scanf("%c",&d);
while((d!='y')&&(d!='n'))
{
printf("您的输入有误请重新输入\n");
scanf("%c",&d);
}

stop:if(d=='y')
{
printf("请输入您的答案\n");
scanf("%d",&d);

if(d==i)
printf("回答正确恭喜您!\n");
else
{
printf("回答错误小傻瓜!要看正确答案请按n,要继续回答请按y。\n");
scanf("%c",&d);
while(d!='y'&&d!='n')
{
printf("您的输入有误请重新输入\n");
scanf("%c",&d);
}
if(d=='n')
{
printf("%d是正确答案,傻瓜!\n",i);
}
else goto stop;

}

}
else
printf("%d是正确答案,傻瓜!\n",i);
}
改好了,自己仔细看一下吧,我也不知道改了几处,呵呵