首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于c语言输入的小疑点

2012-04-03 
关于c语言输入的小问题这个是输入两个数组如array1:1,2,3array2: 3,4最后的出的schtroumpf为两个数组各个

关于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)

热点排行