小米商城发票没有税号:请高手指导

来源:百度文库 编辑:高校问答 时间:2024/05/02 12:37:39
为什么C语言中多打一行
printf("c[%d] is %d",i,c[i]);会影响计算效果的?
error=0,
没有语法错误,如果删掉这一行,运算结果完全正确
#include<stdio.h>
main()
{int i,x,n,j,t,cnt=0,a[10],b[10],c[10];
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
{
n=a[i];
if (n==1||n==2)
{c[cnt]=n;
cnt++;
printf("sushu has %d,the new number is %d\n",cnt,n);
}
for (j=2;j<n;j++)
{
if (n>2&&n%j==0)
{printf("the number %d is not fit.\n",n);
break;
}
else
{ if (j==n-1)
{c[cnt]=n;
cnt++;
printf("sushu has %d, the new number is %d\n",cnt,n);
}
}
}
}
printf("the array c is:");
for (i=0;c[i]!=0;i++) printf("%d,",c[i]);
printf("\n");
for (i=0;c[i]!=0;i++)
{ t=c[i];
for (j=i+1;c[j]!=0;j++)
{
if (c[i]<=c[j])
{c[i]=c[j];
c[j]=t;
printf("the c[%d] is %d",i,c[i]); /*就是这行语句*/
}
t=c[i];
}
}
if (c[0]==0)
printf("there is no sushu.");
else
{printf("the array c is:");
for (i=0;c[i]!=0;i++)
printf("%d,", c[i]);
}
}

感觉1楼看了很多书,竟然不知道C的数组写法呵呵。建议LZ把全部代码贴出来看一下.

和printf无关的呵呵,LZ的数组没有初始化值,导致你最后的循环判断条件!=0是永远不成立的,所以会打出后面不满足条件的内存值.
把开始申明变量的语句改为下面即可:
int i,x,n,j,t,cnt=0,a[10]={0},b[10]={0},c[10]={0};

你只有 两个 格式定义 所以后面只能有两个参数 而且 参数也不能加[]啊

printf("c[%d] is %d",i,c)

有几个 % 什么 后面就是几个参数 前面是格式定义 后面只是用什么去替前面的 %

多的我不说了

楼主还是先看看书吧

初学是不 呵呵

把代码都写出来看看.
你c应该是个数组撒?