C语言关于for循环中使用scanf连续输入的问题or not,求大神看看代码。
#include<stdio.h>intmain(){intn,i,a,b;intd[i];printf("dd");scanf("%d",&n);for(i=0;i<n...
#include <stdio.h>
int main()
{
int n,i,a,b;
int d[i];
printf("dd");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("ss");
scanf("%d\0%d",&a,&b);
d[i]=(a*b);
}
for(i=0;i<n;i++)
{
printf("%d\n",d[i]);
}
return 0;
}
运行之后是这样的(括号内为我的标注)
dd(输入)3
ss(输入)1 2
ssss(输入)3 4
(结果为)
0
0
0
我想要达到的结果是:先输入一个数n,表明我下面要输入n对数据,之后再一起输出这n对数据分别的乘积。
形如:
输入:
3
1 2
3 4
5 6
输出:
2
12
30
请问怎么修改,本人大一萌新。 展开
int main()
{
int n,i,a,b;
int d[i];
printf("dd");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("ss");
scanf("%d\0%d",&a,&b);
d[i]=(a*b);
}
for(i=0;i<n;i++)
{
printf("%d\n",d[i]);
}
return 0;
}
运行之后是这样的(括号内为我的标注)
dd(输入)3
ss(输入)1 2
ssss(输入)3 4
(结果为)
0
0
0
我想要达到的结果是:先输入一个数n,表明我下面要输入n对数据,之后再一起输出这n对数据分别的乘积。
形如:
输入:
3
1 2
3 4
5 6
输出:
2
12
30
请问怎么修改,本人大一萌新。 展开
2个回答
2016-10-21
展开全部
首先,C语言不能直接定义可变大小的数组。也就是int d[i];这种写法是不可以的。变通的方法是,估计一个可能的最大值作为数组的大小,实际使用中,用多少算多少。所以假设数组不超过10000个元素,那么就可以定义为int d[10000];
其次就是输入中,不要用\0,一般来说,这个输入不了,程序执行会出错。改成scanf("%d%d",&a,&b); 即可。
进行了以上修改之后,代码就没其他问题了
其次就是输入中,不要用\0,一般来说,这个输入不了,程序执行会出错。改成scanf("%d%d",&a,&b); 即可。
进行了以上修改之后,代码就没其他问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询