回 帖 发 新 帖 刷新版面

主题:哪里错了?


用C++语言实现从输入的身份证号码中提取生日年、月、日、性别等信息,将提取的信息输出。其中身份证号码是18位的。18位的号码从第7位到12位为生日信息,倒数第2位为性别,奇数为男,偶数为女。
身份证号码连续输入,每个身份证号码之间用空格为分割符,回车表示输入所有号码结束。

请大家一起看看哪里写错了,运行时跟预想的不一样哦~~~
#include <iostream>
using namespace std;

int main()
{
    char args[20];
    cout<<"enter the ID  number";
    for (int j=0;j<20;j++)
        cin>>args[j];
    for( j=0;j<20;j++)
    cout<<args[j];——————————————————这个代码为什么不运行?
        cout<<"您的生日为:"<<args[6]<<args[7]<<args[8]<<args[9]<<"年"<<args[10]<<args[11]<<"月"<<args[12]<<args[13]<<endl;
        if((args[16]%2)==0)
        {
            cout<<"女性"<<endl;
        }
        else
        {
            cout<<"男性"<<endl;
        }
        return 0;
}

回复列表 (共9个回复)

沙发

for (int j=0;j<20;j++)

改成:

int j=0;
for(j=0;j<20;j++)

板凳


不行啊,跟原来一样啊。

3 楼

cin 不接受空格

4 楼


这里没有空格,而且编译也没问题,输入身份证号以后回撤后没反应啊,在随便输入两个数以后他才运行,就是不知道这个,哪位高手能指点一下啊,而且cout<<语句也不输出啊。

5 楼

for (int j=0;j<20;j++)
        cin>>args[j];
干么要20??? 你不是说是18位的身份证么, 改为18应该就好

6 楼

#include <iostream>
using namespace std;

int main()
{
    int args[18];
    cout<<"enter the ID  number";
    for (int j=0;j<18;j++)
        cin>>args[j];
    cout<<"你的身份证号码是:";
    for( j=0;j<18;j++)
    cout<<args[j];
        cout<<"您的生日为:"<<args[6]<<args[7]<<args[8]<<args[9]<<"年";
        cout<<args[10]<<args[11]<<"月"<<args[12]<<args[13]<<"日"<<endl;
        if((args[16]%2)==0)
            cout<<"女性"<<endl;
        else
            cout<<"男性"<<endl;
        return 0;
}

7 楼

但是上面输入的时候要注意 每个数字要用空格分开如:4 5 0 9 8 1 1 9 8 4 0 4 0 6 5 6 4 3这样子输入才行,因为cin输入要用空格分开的

8 楼


不愧是高手。呵呵。

9 楼

高手就不敢当,刚刚学了c两个月而已。上面的程序如果改为如下代码就不用用空格分开来输入了,而且代码质量也会提高很多。

#include <iostream>
#include<string>
using namespace std;
int main()
{
    string args;
    cout<<"enter the ID  number";
        cin>>args;
    cout<<"你的身份证号码是:";
    for(int j=0;j<18;j++)
    cout<<args[j];
        cout<<"您的生日为:"<<args[6]<<args[7]<<args[8]<<args[9]<<"年";
        cout<<args[10]<<args[11]<<"月"<<args[12]<<args[13]<<"日"<<endl;
        if((args[16]%2)==0)
            cout<<"女性"<<endl;
        else
            cout<<"男性"<<endl;
        return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册