#include <stdio.h>
void main(){
int finish()
{
int i,j,k,math,count;
math=0;
count=0;
for(i=5;i<9;i++)
for(j=5;j<9;j++)
for(k=5;k<9;k++)
{
if(i!=j&&j!=k&&i!=k)
math=math+i*100;
math=math+j*10;
math=math+k*1;
count++;
printf("此时符合条件的数个数为第%d个:",count);
printf("%d",math);
}
}
}
第一个问题是每次最内层循环结束时,要把 math 清零。 第二个问题是内层的if缺少了大括号 第三个问题是应该改成 math += xxxx
#include <stdio.h>
void main(){
int i,j,k,math,count;
math=0;
count=0;
for(i=5;i<9;i++)
for(j=5;j<9;j++)
for(k=5;k<9;k++)
{
if(i!=j&&j!=k&&i!=k)
math=math+i*100;
math=math+j*10;
math=math+k*1;
count++;
printf("此时符合条件的数个数为第%d个:",count);
printf("%d\n",math);
math=0;
}
}
上面这个给你源程序改好能运行了,但是不符合题意
修改如下:
#include <stdio.h>
void main(){
int i,j,k,math,count;
math=0;
count=0;
for(i=5;i<9;i++)
for(j=5;j<9;j++)
for(k=5;k<9;k++)
{
if((i!=j)&&(j!=k)&&(i!=k))
math=math+i*100;
math=math+j*10;
math=math+k*1;
count++;
printf("此时符合条件的数个数为第%d个:",count);
printf("%d%d%d\n",i,j,k);
math=0;
}
}
我们得注意一个要点就是:组成的三位数 不能是相同的数字
然后就好办了
#include <stdio.h>
int main()
{
int i,j,k,w=0;
for(i=5;i<=8;i++) /*一层循环*/
{
for(j=5;j<=8;j++) /*二层循环*/
{
if(i==j) /* if+continue 作用排除1至4中重复出现数字 */
continue;
for(k=5;k<=8;k++) /* 三层循环-----完成三位数*/
{
if(k==i || k==j) /* if 语句同理二循环中排除重复作用*/
continue;
w++; /* 每次完成三位数时 w变量加一*/
}
}
}
printf("总的数量:%d\n",w); /* 输出变量w次数*/
return 0;
}
运行结果:
总的数量:24
#include <stdio.h>
void function();
int main() {
function();
return 0;
}
void function()
{
int i, j, k, math, count;
math = 0;
count = 0;
for (i = 5; i < 9; i++)
for (j = 5; j < 9; j++)
for (k = 5; k < 9; k++) {
if ((i != j) && (j != k) && (i != k)) {
math += math + i * 100;
math += math + j * 10;
math += math + k * 1;
count++;
printf("此时符合条件的数个数为第%d个:", count);
printf("%d%d%d\n", i, j, k);
math = 0;
}
}
}
为什么我点了运行没有反应?什么都没有输出
#include <stdio.h>
void function(); //记得调用函数要声明
void main(){
function();
}
void function(){
int i,j,k,math,count;
math=0;
count=0;
for(i=5;i<9;i++)
for(j=5;j<9;j++)
for(k=5;k<9;k++)
{
if(i!=j&&j!=k&&i!=k)
math+=i*100;
math+=j*10;
math+=k*1;
count++;
printf("the math is %d\n",math);
math=0;
printf("count is %d\n",count);
printf("the i,j,k is %d%d%d\n",i,j,k);
}
}
这一段执行结果为什么是64,应该是24才对啊,哪里的问题
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632