导航菜单
首页 >  » 正文

打印下列图案(用C语言编写程序 12345 1234 123 12 1 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数

打印下列图案(用C语言编写程序 12345 1234 123 12 1

呵呵,这个问题跟打印“*”号的问题差不多,双重for()循环就可以了
代码如下:
#include "stdio.h"
main()
{
int i,j;
for(i=5;i>=1;i++) //这里i的值取5,4,3,2,1
{
for(j=1;j<=i;j++) //这里j的值取1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
printf("%3d", j);
printf(" ");
}
}
j值就是你所要的,输出出来即可~~

已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数

A
整形和字符型一起输入时中间不能连有空格,因为空格也是字符,所以BC错,D有逗号,那么在输入的格式控制也应该有逗号scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);
这样才对。。

C语言:输入12345#后,写出下列程序的输出结果

你会加断点吗?单步运行就可以看出来为什么了。
第一次循环开始的时候先执行c=getchar(),此时c=‘1’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘2’已经被读取且未输出;
第二次循环开始的时候先执行c=getchar(),此时c=‘3’并且进行了输出,判断循环条件的时候又执行了“getchar()”,此时缓冲区中的‘4’已经被读取且未输出;
第三次循环开始的时候先执行c=getchar(),此时c=‘5’,因为此时getchar()==’#’不满足循环条件,所以未进行输出。
你想表达的意思应该是下面这样吧:
void main()
{
char c;
for(c=getchar(); c!=#; c=getchar())
putchar(c);
return;
}