
求解决一道c语言程序问题,急!!!!!!!!!!!!!!!!! 5
inti,j;charxy;for(i=0;i<99;i++)for(j=1;j<100;j++)if(xx[i].dm>xx[j].dm){xy=xx[i];xx[i]...
int i,j;
char xy;
for(i=0;i<99;i++)
for(j=1;j<100;j++)
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
这个程序与下面的程序的区别(一个中括号的区别)
int i,j;
char xy;
for(i=0;i<99;i++)
for(j=1;j<100;j++)
{
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{ xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
}
恳请大家赶快回答,我很急 展开
char xy;
for(i=0;i<99;i++)
for(j=1;j<100;j++)
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
这个程序与下面的程序的区别(一个中括号的区别)
int i,j;
char xy;
for(i=0;i<99;i++)
for(j=1;j<100;j++)
{
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{ xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
}
恳请大家赶快回答,我很急 展开
4个回答
展开全部
两个for语句控制的范围不同:
加括号:
for(i=0;i<99;i++)
for(j=1;j<100;j++)
{
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{ xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
}
不加括号:
for(i=0;i<99;i++)
for(j=1;j<100;j++)
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
下面一个if没有包含在for里面执行。
加括号:
for(i=0;i<99;i++)
for(j=1;j<100;j++)
{
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{ xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
}
不加括号:
for(i=0;i<99;i++)
for(j=1;j<100;j++)
if(xx[i].dm>xx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
下面一个if没有包含在for里面执行。
追问
那么将第二个if换成else呢?
追答
那范围是这样:
for(i=0;ixx[j].dm)
{xy=xx[i];
xx[i]= xx[j];
xx[j]=xy;
}
else(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{ xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
}
展开全部
第一个 if(xx[i].dm==xx[j].dm)
if(xx[i].je>xx[j].je)
{xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
只执行一次,
而第二个里面同样的代码,第for一次就运行一次,
结果当然也不同
if(xx[i].je>xx[j].je)
{xy=xx[i];
xx[i]=xx[j];
xx[j]=xy;
}
只执行一次,
而第二个里面同样的代码,第for一次就运行一次,
结果当然也不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来回答你
#include <stdio.h>
#include <string.h>
void main()
{
int a,j=0,c;
printf("请输入一个正整数:");
scanf("%d",&a);
c=a;
while(c)
{
c/=10;
j++;}
printf("\n\n它是%d位数\n",j);
printf("分别输出每个数为:%d\n",a);
printf("逆序输出为:");
do{
printf("%d",a%10);
a/=10;
}while(a!=0);
printf("\n");
}
#include <stdio.h>
#include <string.h>
void main()
{
int a,j=0,c;
printf("请输入一个正整数:");
scanf("%d",&a);
c=a;
while(c)
{
c/=10;
j++;}
printf("\n\n它是%d位数\n",j);
printf("分别输出每个数为:%d\n",a);
printf("逆序输出为:");
do{
printf("%d",a%10);
a/=10;
}while(a!=0);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个:两个for都属于第二个for;
第二个:第一个if属于第二个for循环,第二个if属于第一个大的for循环;
第二个:第一个if属于第二个for循环,第二个if属于第一个大的for循环;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询