该程序使用函数将数组的每个值乘以10。我收到了很多错误。 我可以把尺寸换成for循环吗?
#include<stdio.h>
mult(int arr[])
{
int i;
for(i=0;i<size;i++)
{
arr*=10;
}
return arr;
}
int main()
{
int j[];
printf("enter the all ten values to multiply by 10");
for(j=0;j<size;j++)
scanf("%d");
j[] = mult(j);
printf("%d",&j);
return 0;
}
答案 0 :(得分:2)
int j[];
您错误地创建了一个数组(在此上下文中)。你必须指定它的大小。例如:int j[256];
for(j=0;j<size;j++) scanf("%d");
什么&#39; size
?你怎么能增加一个数组?您错误地使用了scanf
。你应该做for(int s=0;s<size;s++) scanf("%d",&j[s]);
。
j[] = mult(j);
又错了。您应该创建另一个数组并在那里复制值。
printf("%d",&j);
您不需要&
,请将其删除。您最好使用"%d\n"
在自己的行上打印每个号码。
mult(int arr[])
函数声明错误。您必须指定函数返回的类型。您可能需要使用int *mult(...)
代替return &arr[0];
arr*=10;
您想要实现的目标是什么?完全错了,你在这里乘以地址。
请阅读文档!您的代码没有任何意义,请先学习C,然后尝试编码。
此外,你需要在这里指点,注意它们。我建议您首先编写 Hello World 程序,以便了解基础知识。 Kernighan先生和Ritchie先生也会帮助你。
注意:我可能错过了一些错误,因为太多了。如果是的话请纠正我。
答案 1 :(得分:0)
您必须告诉mult()
数组的大小是多少,并且您传递的数组将在mult()
中修改,因此您无需返回值。
mult(j, size);
和您的mult()
功能
void mult(int *arr, size_t size)
{
int i;
for(i=0;i<size;i++)
{
arr[i] *= 10;
}
}
答案 2 :(得分:0)
以下是完整的代码,了解差异并更正代码:
#include<stdio.h>
void mult(int *arr,int size)
{
int i;
for(i=0;i<size;i++)
arr[i]*=10;
}
int main()
{
int size=10;
int j[size],i;
printf("enter the all ten values to multiply by 10\n");
for(i=0;i<size;i++)
scanf("%d",j+i);
mult(j,size);
for(i=0;i<size;i++)
printf("%d ",j[i]);
printf("\n");
return 0;
}