有关c语言的循环嵌套的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关c语言的循环嵌套的问题相关的知识,希望对你有一定的参考价值。

输入一个正整数repeat (0<repeat<10),做repeat次下列操作:
输入一个正整数n,打印一个边长为 n 的菱形图案。
输出使用以下语句:
printf(" ");
printf("* ");
printf("\n");
输入输出示例:括号内为说明
输入
2 (repeat=2)
3 (n=3)
4 (n=4)
输出
* (n=3的菱形图案)
* * *
* * * * *
* * *
*
* (n=4的菱形图案)
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*

我这里编译正常,运行正常,显示
1,2,3,61,2,4,51,2,5,41,2,6,31,3,2,61,3,6,2
1,4,2,51,4,5,21,5,2,41,5,4,21,6,2,31,6,3,2
2,1,3,62,1,4,52,1,5,42,1,6,32,3,1,62,3,6,1
2,4,1,52,4,5,12,5,1,42,5,4,12,6,1,32,6,3,1
3,1,2,63,1,6,23,2,1,63,2,6,13,6,1,23,6,2,1
4,1,2,54,1,5,24,2,1,54,2,5,14,5,1,24,5,2,1
5,1,2,45,1,4,25,2,1,45,2,4,15,4,1,25,4,2,1
6,1,2,36,1,3,26,2,1,36,2,3,16,3,1,26,3,2,1
请按任意键继续.
.
.
参考技术A int
main(
)

int
mc,p,n,m;
//a不需要
int
k;
scanf("%d%d",&n,&m);
for(k=n;k>=0;k--)
//
k>0即可,Mc此时还没确定呢
for(mc=n-k;mc>=0;mc--)
p=n-k-mc;
//
不需要循环,此时p为定值
if(m==20*k+12*mc+8*p)
printf("%d%d%d\n",k,mc,p);
//输出k,mc.p
而不是&k,&mc,&p

错误原因见注释
参考技术B 你要的功能都能实现

#include <iostream>
using namespace std;
int main()

int i,j,k,num; //定义for循环中的变量 i,j,k 。num是菱形的个数。
int N; //定义菱形的宽度。

cout<<"Please enter the width of the diamend:"<<endl<<"N=";
cin>>N;
while(N%2==0) //判断输入的菱形宽度是否为奇数,若是奇数则正确,若是偶数则错误。

cout<<"The number you entered is wrong!"<<endl;
cout<<"Please try again:"<<endl;
cin>>N;


char c;
cout<<"The number is right!"<<endl<<"请输入构成菱形的字符(字符必须是单个的)."<<endl;
cout<<"The sign is:";
cin>>c;

cout<<"请输入你想输出的菱形的个数!"<<endl;
cout<<"The number is:";
cin>>num;

for(int n=0;n<num;n++) //最外层for循环开始,控制菱形个数

for(i=0;i<(N+1)/2;i++) //显示菱形的上半部分

for(j=0;j<(N+1)/2-i-1;j++) //显示空格

cout<<" ";

for(j=0;j<2*i+1;j++) //显示构成菱形的字符

cout<<c;

cout<<endl;

/* 注释:display
*
***
*****
******* */

for(k=i;k<N;k++) //显示菱形的下半部分

for(j=0;j<k-i+1;j++) //显示空格

cout<<" ";

for(j=0;j<2*N-2*k-1;j++) //显示构成菱形的字符


cout<<c;

cout<<endl;

/* 注释:display
*****
***
*
*/
cout<<endl;
//最外层for循环结束
return 0;
本回答被提问者采纳
参考技术C main()
int repeat,m;
int n[10];
m=0;
printf("Repeat number(1~9):");
for(repeat=0;repeat>=0 && repeat<=10;)
scanf("%d",&repeat);
if(repeat>=10 || repeat<=0)
printf("Input 1~9!");
continue;
else
break;


for(;m<repeat;m++)
printf("Line (1~9):");
for(n[m]=0;n[m]<=10 && n[m]>=0;)
scanf("%d",&n[m]);
if(n[m]>=10 || n[m]<=0)
printf("Input 1~9!");
continue;
else
break;



for(m=0;m<repeat;m++)
int i,j,k;
for(i=1;i<=(n[m]*2-1);i++)
k=abs(n[m]-i);
for(j=1;j<=k;j++)printf(" ");
for(j=1;j<=n[m]*2-1-k*2;j++)printf("*");
for(j=1;j<=k;j++)printf(" ");
printf("\n");



刚编好的,已经运行通过
参考技术D int i,j,n,repeat;
scanf("%d,%d",&repeat,&n);
for(;repeat<=9;repeat++)

for(i=1;i<=n;i++)

for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("/n");

for(i=1;i<=n-1;i++)

for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=2*n-1-2*i;j++)
printf("*");
printf("/n");


试一下哦,很受用的

求一些C语言if嵌套语句算法题

三、if--else
if--else结构。
if(表达式1)
语句1;
else
if(表达式2)
语句2;
else
if(表达式3)
语句3;
.
.
.
else
语句n;
这种结构是从上到下逐个对条件进行判断,一旦发现条件满点足就执行与它有关的语句,
并跳过其它剩余阶梯;若没有一个条件满足,则执行最后一个else
语句n。最后这个else常起着缺省条件的作用。同样,如果每一个条件中有多于一条语句要执行时,必须使用和把这些语句包括在其中。
条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。
例如:
if(x>20||x<-10)
if(y<=100&&y>x)
printf(good);
else
printf(bad);
对于上述情况,
turbo
c2.0规定:
else语句与最近的一个if语句匹配,
上例中的else与if(y<=100&&y>x)相匹配。为了使else与if(x>20||x<-10)相匹配,
必须用花括号。如下所示:
if(x>20||x<-10)

if(y<=100&&y>x)
printf(good);

else
printf(bad);
下面举几个例子:
1.输入一个数,如果大于0,输出plus;如果是负数,输出negative;如果正好是0,则输出zero。
main()

float
num;
scanf(%f,&f);
if(num>0)
printf(plus\n);
else
if(num<0)
printf(negative\n);
else
printf(zero\n);

先定义两个变量,然后输入一个数,然后判断这个数的范围,输出对应的字符串。
2.输入一个数x,输出y。其中y是x的绝对值。
main()

float
x,y;
scanf(%f,&x);
if(x>=0)
y=x;
else
y=-x;
printf(%f\n,y);

程序比较简单,这儿就不分析了。
其实trubo
c
2.0把一些常用的功能都写好了,我们只需要使用就可。例如求绝对值的功能在c的库里面就有。看下面的:
#include
math.h
main()

float
x,y;
scanf(%f,&x);
y=fabs(x);
/*求x的绝对值,然后赋值给y*/
printf(%f\n,y);

这个程序和上面的程序完成的功能是一模一样的,都是求绝对值。可以看出,用下面这个方法比上面就要好一些。由于fabs()是一个函数,系统自带的,所以在使用它的时候,我们必须把它所在的库文件math.h包含都程序中,即程序最前面一行。类似的还有求开方sqrt(),求指数幂exp()等等,这些与数学方面有关的函数都在math.h里面。具体哪些有哪些没有,在什么库里面,可以查看一些手册。
3.输入x,输出y,x和y满足关系:
x<-5
y=x;
-5<=x<1
y=2*x+5;
1<=x<4
y=x+6;
x>=4
y=3*x-2;
程序如下:
main()

float
x,y;
scanf(%f,&x);
if(x<-5)
y=x;
else
if(-5<=x&&x<1)
y=2*x+5;
else
if(1<=x&&x<4)
y=x+6;
else
y=3*x-2;
printf(%f\n,y);

这里要说明两点:
(1).-5<=x&&x<1不能写成-5<=x<1;1<=x&&x<4也不能写成1<=x<4;在c语言中,不能认识连续不等式。
(2).y=2*x+5不能写成y=2x+5;y=3*x-2也不能写成y=3x-2;这与我们平时所写的方法不一样。
4.输入三个数x,y,z,然后按从大到小输出。
main()

float
x,y,z;
scanf(%f%f%f,&x,&y,&z);
if(x>=y&&x>=z)

printf(%f\t,x);
if(y>=z)
printf(%f\t%f\n,y,z);
else
printf(%f\t%f\n,z,y);

else
if(y>=x&&y>=z)

printf(%f\t,y);
if(x>=z)
printf(%f\t%f\n,x,z);
else
printf(%f\t%f\n,z,x);

else

printf(%f\t,z);
if(x>=y)
printf(%f\t%f\n,x,y);
else
printf(%f\t%f\n,y,x);


说明:这是一个典型的if语句嵌套结构,如果不使用括号,那么if和else的对应关系就乱了。
参考技术A 从键盘上输入两个字符,比较其大小,输入大于,等于,小于的判断结果。
答案如下:#include
using
namespace
std;
int
main()

char
ch1,ch2;
cout<<"请输入两个字符:";
cin>>ch1>>ch2;
if(ch1!=ch2)
if(ch1>ch2);
cout<
评论
0
0
加载更多

以上是关于有关c语言的循环嵌套的问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言中:两个for循环嵌套使用有什么作用?

c语言中的循环的嵌套是怎么运行的

c语言入门教程–-7嵌套循环

两个嵌套for循环的执行顺序

有两个循环,他们是嵌套关系,在内循环中使用break将终止哪一个循环?

用C语言循环嵌套语句编出一个三角形形状