为什么下面的程序输出的不是:1 121 12321 1234321 123454321

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{int i=0;
i++;
if(i=1) printf(" %d ",1);
printf("\n");
if(i=2) printf(" %d%d%d ",121);
printf("\n");
if(i=3) printf(" %d%d%d%d%d ",12321);
printf("\n");
if(i=4) printf(" %d%d%d%d%d%d%d ",1234321);
printf("\n");
if(i=5) printf("%d%d%d%d%d%d%d%d%d",123454321);

}
我知道应该用for 的循环,把上面的改了一下/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{int i;

if(i=1) printf(" %d",1);
printf("\n");
if(i=2) printf(" %d%d%d",121);
printf("\n");
if(i=3) printf(" %d%d%d%d%d",12321);
printf("\n");
if(i=4) printf(" %d%d%d%d%d%d%d",1234321);
printf("\n");
if(i=5) printf("%d%d%d%d%d%d%d%d%d",123454321);

}
输出的结果后面的那一串多余的数字哪来的啊!!!我知道用for的双循环,但这个问题先替我解决一下。。。。

我刚学c没几天,也刚学if这儿。但我觉得那不是个if语句么?是不是应该用一个for循环语句呢??你这样i++只运行了一次吧。。。结果应该只是1吧。。。因为到了下边就直接输出结果不再运行任何东西了。。。好像是这样,我也不专业,希望可以帮到你!
你自己试着用for循环做一下,我也试试。。。

标准中规定int型必需16位或更高,long型必需32位,在以前16位机时这两种数据就是一个16bit一个32bit,但进入x86时代后实际上两者都是32位的,int型一般和处理器位数一致,代表都内存的寻址空间。
整型变量有三种int,long int,short int,int是用两个字节储存整型数字,short int一个字节,long int是四个字节……
你定义i的时候用long int,输出printf(“\n%ld”,i) 对不?? 1234321 123454321都应该用%ld的形式输出,定义的时候也应该用long int来。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-23
程序设计方向不对头!
应使用双重循环实现

...输出这样的图形 1 121 12321 1234321 123454321
1、实现这样图形的最简单方法就是使用循环的嵌套。2、c代码示例如下:include<stdio.h>int main( ){ int i,j,k,m;for(i=1;i<=5;i++){ for(m=1;m<=5-i;m++)printf(" "); for(j=1;j<=i;j++)printf("%d",j); for(k=j-2;k>=1;k--)printf("%d",k); pr...

编一程序输出如下图形:1 121 1 2 3 2 1 1234321 123454321
void main(){ int i,j;for(i=1;i<7;i++){ for(j=1;j<=i;j++)printf("%d ",j);for(j=i-1;j>0;j--)printf("%d ",j);printf("\\n",j);} }

PASCAL 打印 1 121 12321 1234321 123454321 12345654321
12321 1234321 123454321 那么代码为 var n,i,j:integer;begin readln(n); \/\/n为行数 for i:=1 to n do begin write('':n-i);for j:=1 to i do write(j);for j:=i-1 downto 1 do write(j);writeln;end;end.如果您只需要在同一排上输出,那么用下面一段代码 var n,i,j:in...

小学一年级数学1 12 121 12321 1234321后面该是什么数
也就是把数字分为两段,前面是正数后面是倒数 所以后面的数应该是123454321

编程输出以下图形 1 121 12321
include"stdio.h"int main(){int n,i,j;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n-i;j++)printf(" ");for(j=0;j<=i;j++)printf("%c",'1'+j);for(j-=2;j>=0;--j)printf("%c",'1'+j);printf("\\n");} return 0;} ...

...不胜感激。 1 121 12321 1234321 123454321
define N 9 int main(int argc, char *argv[]){ int i,j;for(i=1;i<=N;i++){ printf("%*c",N+1-i,' ');for(j=1; j<=(2*i-1)\/2; j++)printf("%d",j%(i+1));for(j=(2*i)\/2; j>=1; j--)printf("%d",j%(i+1));printf("\\n");} getch();} ...

...二行121第三行12321第四行1234321第五行123454321
{ for(j=1;j=1;k--)printf("%d",k);\/*k是每行递减的计数量*\/ printf("\\n");\/* 换一行*\/ } getchar(); \/*方便查看输入栏*\/ return 0;}

1+121+12321+1234321+123454321+12345654321=?用C语言怎么写_百度知 ...
{ unsigned long item=0;for (int j=1;j=1;--k) item=item*10+k;cout<<item<<endl;sum+=item;} cout<<"sum = "<<sum<<endl;return 0;} 程序是这样的,但有个问题,数据溢出了,从12345654321开始用unsigned long都放不下了。

1 121 12321 1234321 123454321 按如此规律第2008个数字式多少呢,郁闷...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 ...200820072006200520042003200220012000199919981997...987654321 采纳哦

算式1×1+11×11+111×111+……111…111×111…111(2010个1)的结果的...
规律找到了得数为1,121,12321,1234321,123454321,12345654321,。。。观察个位都是1,一共2010个,所以有以上可得个位是1×2010=2010 个位即为0,进位201个十,观察十位,除了第一个数都是2 所以十位是(2010-1)×2=4018 加上个位进的201 得4219 所以十位为9 进位421个百 观察百位...

相似回答