关于c语言输入的小问题
这个是输入两个数组
如array1:1,2,3
array2: 3,4
最后的出的schtroumpf为两个数组各个数相乘:即
schtroumpf=1*3+1*4+2*3+2*4+3*3+#*4;
如下是我写的程序,问题是,输入时该怎样做才能排除输入字母的情况。就是比如输入abcd...会有报错什么的......
求解啊。。。。。。[color=#FF0000][/color]万分感谢啊。。。
#include<stdio.h>
void main()
{
int n,p;int Tab1[100],Tab2[100];
int stpf,i,j;
do
{
printf("Saisir le nombre du premier tableau\n");
scanf("%d",&n);
if(n<2 && n>10)
printf("recommence avec un nombre convenable\n");
}
while(n<2 && n>10)
do
{
printf("Saisir le nombre du deuxieme tableau\n");
scanf("%d",&p);
if(p<2 && p>10)
printf("recommence avec un nombre convenable\n");
}
while(p<2 && p>10)
stpf=0;
for(i=0;i<n;i++)
{
printf("tab1[%d]=",i+1);
scanf("%d",&tab1[i]);
}
for(i=0;i<p;i++)
{
printf("tab2[%d]=",i+1);
scanf("%d",&tab2[i]);
}
for(i=0;i<n;i++)
for(j=0;j<p;j++)
stpf+=tab1[i]*tab2[j];
printf("le schtroumpf sera: %d\n",stpf);
}
[解决办法]
你输入字母的话,会导致流出错···所以可以根据流的情况判断输入是否合法···
[解决办法]
在每个 do{} while();修改如下
do
{
printf("Saisir le nombre du premier tableau\n");
int count=scanf("%d",&n);
if(n<2 && n>10)
printf("recommence avec un nombre convenable\n");
}
while(n<2 && n>10 || count!=1)