| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 574 人关注过本帖
标题:求教,对于不知道待测试数据个数的时候如何定义数组
只看楼主 加入收藏
wrz930214
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-12-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
求教,对于不知道待测试数据个数的时候如何定义数组
描述
验证18位证件号是否正确。
输入
现有一组M个18位证件号,将奇位数的值相加的和求的平均数X,偶位数先与3相乘得到的各位数的和的平均数y。如果(X+Y)是10的倍数,则证件号正确,否则则错误。
输出
若证件号正确,单独一行输出”Y”,否则输出”N”。
样例输入
       2
431023198919230939
568952114235123155
样例输出
Y
N
提示
注意每个数据后的回车键的处理

我不知道怎么处理这个M啊,就定义了个100 的二维数组,但就算按样例输入,也得不到结果,该怎么修改啊,谢大神了
程序代码:
#include<stdio.h>
void main()
{int n,i,j,d[100][2],x=0,y=0;
int s[100][18];
char ch;
scanf("%d",&n);
for(i=0;i<n;i++)
{for(j=0;j<18;j++)
scanf("%d",&s[i][j]);
ch=getchar();
}
for(i=0;i<n;i++)
{for(j=0;j<18;j+=2)

x+=s[i][j];
d[i][0]=x;
x=0;
}
for(i=0;i<18;i++)
{for(j=1;j<18;j+=2)

 y+=s[i][j]*3%10;
d[i][0]=y;
y=0;
}
for(i=0;i<n;i++)
{if(d[i][0]%9==0&&d[i][1]%9==0&&int(d[i][0]/9+d[i][1]/9)%10==0)
printf("Y\n");
else
printf("N\n");

}

}


搜索更多相关主题的帖子: 证件 平均数 如何 
2012-12-06 16:35
wrz930214
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-12-6
收藏
得分:0 
还有他说注意回车键处理,我该怎么理解这句话
2012-12-06 16:38
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:20 
关于回车键处理,就是说你要先把所有数据读完,然后在后面跟着输出


[fly]存在即是合理[/fly]
2012-12-06 17:32
wrz930214
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-12-6
收藏
得分:0 
我改成这样子了,还是不对。。。
程序代码:
#include<stdio.h>
int main()
{int n,i,j,x=0,y=0;
char s[19];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",s);
for(j=0;j<18;j+=2)
x+=s[j]-'0';
for(j=1;j<18;j+=2)

 y+=(s[j]-'0')*3%10+int((s[j]-'0')*3/10);
if(x%9==0&&y%9==0&&int(x/9+y/9)%10==0)
printf("Y\n");
else
printf("N\n");

x=0,y=0;
}

}


[ 本帖最后由 wrz930214 于 2012-12-6 18:35 编辑 ]
2012-12-06 18:15
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
先读完数据,,,
程序代码:
scanf("%d", &N);
for (i = 0;i < N;i++)
{
    //输入
    //计算
}
for (i = 0;i < N;i++)
{
    //输出
}
或者
程序代码:
scanf("%d", &N);
for (i = 0;i < N;i++)
{
    //输入
}
//计算
for (i = 0;i < N;i++)
{
    //输出
}


[fly]存在即是合理[/fly]
2012-12-06 19:18
wrz930214
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-12-6
收藏
得分:0 
我把if(x%9==0&&y%9==0&&int(x/9+y/9)%10==0)

改成
if(int(x/9+y/9)%10==0)
就对了
2012-12-06 19:55
快速回复:求教,对于不知道待测试数据个数的时候如何定义数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022057 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved