
1个回答
展开全部
#include <stdio.h>
/*************************************************************************
Function: 从键盘用数组接收n个整型数据处理函数
Parameter:int n:接收整型数的个数;int num[]:接收所输入的整型数
Return: 0:表示接收成功;-1表示接收失败.
*************************************************************************/
int get_n_int(int n,int num[]);
int main(void)
{
int i=0;
int len;
int sum=0;
int x_num[5];
int y_num[5]={1,2,3,4,5};
len = sizeof(x_num)/sizeof(x_num[0]);
printf("请输入%d个整数",len);
while(get_n_int(len,x_num)!=0)
{
printf("你输入的字符不合法,请重新输入%d个整数\n",len);
}
sum=0;
for(i=0; i<len; i++)
{
sum += x_num[i]*y_num[i];
}
printf("sum = %d\n",sum);
return 0;
}
int get_n_int(int n,int num[])
{
char ch;
int i=0;
int *p=num;
for(i=0; i<n; i++)
{
if(scanf("%d",(p+i))==1)
{continue;}
else
{
while(getchar()!='\n');//接收完从键盘输入的字符
return -1;//表示接收n个整数失败
}
}
//接收完规定个数的数据后再判断后面数据是否合法,后面除了空字符和回车外其余都不合法,
while((ch=getchar())!='\n')
{
if(ch != ' ')
{
//进入这个里面表示后面数据不合法,接收完后就返回接收失败标志-1
while((ch=getchar())!='\n');
return -1;
}
}
return 0;//返回函数接收数据成功标志0
}
/*************************************************************************
Function: 从键盘用数组接收n个整型数据处理函数
Parameter:int n:接收整型数的个数;int num[]:接收所输入的整型数
Return: 0:表示接收成功;-1表示接收失败.
*************************************************************************/
int get_n_int(int n,int num[]);
int main(void)
{
int i=0;
int len;
int sum=0;
int x_num[5];
int y_num[5]={1,2,3,4,5};
len = sizeof(x_num)/sizeof(x_num[0]);
printf("请输入%d个整数",len);
while(get_n_int(len,x_num)!=0)
{
printf("你输入的字符不合法,请重新输入%d个整数\n",len);
}
sum=0;
for(i=0; i<len; i++)
{
sum += x_num[i]*y_num[i];
}
printf("sum = %d\n",sum);
return 0;
}
int get_n_int(int n,int num[])
{
char ch;
int i=0;
int *p=num;
for(i=0; i<n; i++)
{
if(scanf("%d",(p+i))==1)
{continue;}
else
{
while(getchar()!='\n');//接收完从键盘输入的字符
return -1;//表示接收n个整数失败
}
}
//接收完规定个数的数据后再判断后面数据是否合法,后面除了空字符和回车外其余都不合法,
while((ch=getchar())!='\n')
{
if(ch != ' ')
{
//进入这个里面表示后面数据不合法,接收完后就返回接收失败标志-1
while((ch=getchar())!='\n');
return -1;
}
}
return 0;//返回函数接收数据成功标志0
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询