请各位C语言过来解惑,谢谢
发布网友
发布时间:2023-02-05 22:42
我来回答
共3个回答
热心网友
时间:2023-09-20 23:43
#include <stdio.h>
#define M 100
void arrout (int * ,int);
int arrin (int *);
void main()
{
int s[M],k;
k=arrin (s);
arrout(s,k);
}
int arrin (int *a)
{
int i,x;
i=0;
scanf("%d,&x");
while (x>0)
{
*(a+i)=x;
i++;
scanf("%d",&x);
}
return i;
}
void arrout (int *a,int n)
{
int i;
for(i=0;i<n;i++)
printf(((i+1)%5==0)? "%4d\n":"%4d",*(a+i)); //?条件语句写有一些问题
printf("\n");
}
错误有两处,修改一下编译通过~
1 条件语句写有一些问题
2 main函数默认有返回值
热心网友
时间:2023-09-20 23:44
int arrin (int *a)
{int i,x;
i=0;
scanf("%d,&x");
while (x>0)
{*(a+i)=x;
i++;
scanf("%d",&x);
}
return i;
}
中错了,没有控制数组变量中元素的输入个数,造成输入错误,可改为:
int arrin (int *a)
{int i,x,n;
i=0;
scanf("%d\n“,&n);/*输入多少个元素*/
if(n>M)
{
printf("输入元素个数错误!");
return 0;
}
while (i<n)
{
scanf("%d",&x);
*(a+i)=x;
i++; /*减少计数*/
}
return n;/*返回输入元素的个数*/
}
void arrout (int *a,int n)
{int i;
for(i=0;i<n;i++)
printf(((i+1)%5==0)? "%4d\n";"%4d",*(a+i));
printf("\n");
}
中printf(((i+1)%5==0)? "%4d\n";"%4d",*(a+i));有错误
变为:
void arrout (int *a,int n)
{int i;
for(i=0;i<n;i++)
if((i+1)%5==0)
printf("%4d\n",*(a+i));
else
printf("%4d",*(a+i));
printf("\n");
}
热心网友
时间:2023-09-20 23:44
在 arrin 函数中,第一个scanf("%d,&x");应该改成scanf("%d", &x);
在 arrout 函数中,printf(((i+1)%5==0)? "%4d\n";"%4d",*(a+i));应该把里面的分号改成冒号。