C语言一个简单程序

来源:百度知道 编辑:UC知道 时间:2024/05/18 14:31:39
请大家发个完整程序,不要使用下边程序以外的其他语句
#include<stdio.h>
#include<windows.h>
int main()
{
int i,j=0,k=0;
printf("enter a number:");
scanf("%d",&i);

while(i!=-1)
{if(i>=j)
{j=i;
printf("enter a number:");
scanf("%d",&i);}
else if(i>=k)
{ k=i;
printf("enter a number:");
scanf("%d",&i);}
else
{printf("enter a number:");
scanf("%d",&i);}}
printf("the biggest is:%d\n",j);
printf("the bigger is:%d\n",k);
system("pause");
return 0;}
这里第二大的值为什么算不出来呢

//这样就行了,顺便精简了一下代码
//错误见注释处

#include<stdio.h>
#include<windows.h>
int main()
{
int i=0,j=0,k=0;

while(i!=-1)
{
printf("enter a number:");
scanf("%d",&i);
if(i>=j)
{
k=j; //当你找到最前最大的值得时候,你就把j的值丢掉了,而j的值正是第二大的值,所以你需要先把次大值赋给k
j=i;
}
else if(i>=k)
{ k=i; }
}

printf("the biggest is:%d\n",j);
printf("the biggest but one is:%d\n",k);
system("pause");
return 0;}

i与j的判断和i与k的判断是分开来的,不要用else if。另外算法的逻辑好像也有点问题啊。