#include<stdio.h>
#include<string.h>
struct date
{ int year;
int month;
int day;
};
struct person
{
int num;
char name[10];
char sex;
struct date birthday;
char job;
union
{ int xuehao;
long int ID;
}zhiwu;
}person[3];
void main()
{
int i;
for(i=0;i<3;i++)
{ scanf("%d %s %c %d %d %d %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].birthday.year,&person[i].birthday.month,&person[i].birthday.day,&person[i].job);
getchar();
if(person[i].job=='s')
scanf("%d",&person[i].zhiwu.xuehao);
else if(person[i].job!='s');
scanf("%d",&person[i].zhiwu.ID);
getchar();
}
printf("No. Name sex year month day job xuehao/ID\n");
for(i=0;i<3;i++)
{if (person[i].job=='s')
printf("%-6d%-7s%-6c%-6d%-9d%-7d%-6c%d\n",person[i].num,person[i].name,person[i].sex,person[i].birthday.year,person[i].birthday.month,person[i].birthday.day,person[i].job,person[i].zhiwu.xuehao);
else printf("%-6d%-7s%-6c%-6d%-9d%-7d%-6c%d\n",person[i].num,person[i].name,person[i].sex,person[i].birthday.year,person[i].birthday.month,person[i].birthday.day,person[i].job,person[i].zhiwu.ID);
}
}
但这段程序还是错的,不能正常运行
追答else if(person[i].job!='s');将这里分号去掉,再试试!
追问谢谢!可以了,那我能问一下那两个getchar去掉有没有关系啊
追答这里getchar主要用于消除 最后输入的回车符。
不过这里都是以%d开始的,你去掉试试,若不行再添上。
求大神解答我这段C++程序为什么不能循环啊?
修改为:scanf("%d %s %c %d %d %d %c",&person[i].num,person[i].name,&person[i].sex,&person[i].birthday.year,&person[i].birthday.month,&person[i].birthday.day,&person[i].job);
为什么我的c++程序不能运行,求大神解答
1、主要问题是死循环了,看while (num!=0) ,一旦输入num不0,那么循环就一直执行下去,没有跳出语句。2、其它代码还要看思路,反正很乱的样子。
为什么c++执行这个程序时不能循环输入,而是不停的输出? 怎么改进才能...
可以循环输入的。cin是一个阻塞函数,不可能会一直循环
C++程序未进入循环
for(i=1;t=0;i++)应该是t==0 ;t=0实际上是对t进行赋值,这个式子的值是0,相当于是false,所以不能进入循环
为什么我这段c++程序运行到一半就不能继续运行了呢???如图,求解
\/\/停住是因为system("pause");\/\/结果不对是因为 length-- #include <iostream>#include <iomanip>using namespace std;int Compact(int array[], int length){ int i = 0, j; while (i < length) { if (array[i] == 0) { int length_tmp = length;\/\/这里length...
为什么这个程序不能跳出循环啊,明天就要交作业,求解啊。。
c++一般不用c的printf,for(i=0;i<49;i++){ cin>>a[i];if(a[i]=='\\n') break;} 有问题,\\n你没法输,可以用ctrl+z中止输入,或换个标识符,不如说q
c++程序运行不能停止
肯定是循环的问题!循环的条件一直为真,所以循环不止!
C++ 条件已经不满足了,但是还是不跳出循环
你这个异常可以排除数组越界,可能的原因可能有:1,、定义的指针未释放;2、读取位置发生访问冲突。
C++ 高手帮帮忙啊 这程序咋也无法运行!!!
这里很有问题。第一 a没有初始化,如果a里面的值恰好为#,那你的程序就挂了。没有初始化的变量,是有一个随机值的。第二,假设只输入#,那么r->data == '#' r=r->next; r->next又是无定义的。它指哪里都不知道。。这个里面你的循环结束了,你有一个输出,cout<<r->data<<r->next-...
这段C++程序在VC下怎么不能运行啊急!!!
for (int i=0;i<=6;i++)有问题 你的数组只有6个元素 而这里却进行循环了7次 越界了 改成for (int i=0;i<6;i++) 就可以了