C语言 为什么这个程序 不显示 ASCII 表的188和200 的字符 最后一行为什么会这样,还对不齐,新手求教 5
刚学malloc(),所以想多用用,其实可以不分配那些2个字节内存的,总之求大神帮我看看为什么会这样吧,我写的挺乱的,我是初学者,别的指令我还没学到,感觉只能用这种办法就...
刚学malloc() , 所以想多用用, 其实可以不分配那些2个字节内存的,总之求大神帮我看看 为什么会这样吧,我写的挺乱的 , 我是初学者, 别的指令我还没学到 ,感觉只能用这种办法
就把最后一句 用变量 代替了指针, 就能显示出来,但就想知道 上面的可以 为什么最后一行不行 展开
就把最后一句 用变量 代替了指针, 就能显示出来,但就想知道 上面的可以 为什么最后一行不行 展开
2015-03-26
展开全部
include<iostream.h>
main()
{
//定义结构类型
struct human {
char name[10];
int sex;
int age;
};
//声明结构变量和结构指针,并初始化
struct human x={"WangPing",1,30},*p=&x;
//利用结构指针显示结构中的数据
cout<<"(*p).name="<<(*p).name<<endl;
cout<<"(*p).sex="<<(*p).sex<<endl;
cout<<"(*p).age="<<(*p).age<<endl;
cout<<"-------------------------"<<endl;
//利用new运算符为p分配内存
p=new human;
//从键盘上为p指向的结构对象赋值
cout<<"p->name=";
cin>>p->name;
cout<<"p->sex=";
cin>>p->sex;
cout<<"p->age=";
cin>>p->age;
cout<<"-------------------------"<<endl;
//显示p所指结构对象的值
cout<<"p->name="<<p->name<<endl;
cout<<"p->sex="<<p->sex<<endl;
cout<<"p->age="<<p->age<<endl;
cout<<"-------------------------"<<endl;
//显示结构变量的值
cout<<"x.name="<<x.name<<endl;
cout<<"x.sex="<<x.sex<<endl;
cout<<"x.age="<<x.age<<endl;
//释放p指向的内存
delete p;
}
#include<iostream.h>
main()
{
//定义结构类型
struct human {
char name[10];
int sex;
int age;
};
//声明结构数组和结构指针变量,并初始化
human x[]={{"WeiPing",1,30},{"LiHua",1,25},{"LiuMin",0,23}},*p=NULL;
//用下标变量的输出结构数组的元素
for (int i=0;i<3;i++)
{
cout<<x[i].name<<'\t';
cout<<x[i].sex<<'\t';
cout<<x[i].age<<endl;
}
cout<<"----------------"<<endl;
//用结构指针输出结构数组的元素
for (p=x;p<=&x[2];p++)
{
cout<<p->name<<'\t';
cout<<p->sex<<'\t';
cout<<p->age<<endl;
}
}
#include<iostream.h>
main()
{
//定义一个包含指针成员的结构类型
struct test {
char *str;
int *ip;
} x;
//使用结构变量x中的整型指针ip
x.ip=new int; //分配1个单元
*(x.ip)=100;
cout<<"x.ip:"<<x.ip<<'\t'<<*(x.ip)<<endl;
cout<<"---------------"<<endl;
delete x.ip;
x.ip=new int[5]; //分配5个单元
for(int i=0;i<5;i++)
*(x.ip+i)=100+i;
cout<<"x.ip:"<<endl;
for(i=0;i<5;i++)
cout<<x.ip+i<<'\t'<<(*(x.ip+i))<<endl;
delete x.ip;
cout<<"---------------"<<endl;
//使用结构变量x中的字符型指针str
x.str=new char('A'); //分配1个单元
cout<<"x.str:"<<(*x.str)<<endl;
cout<<"---------------"<<endl;
delete x.str;
x.str=new char[5]; //分配多个单元
*x.str='G';
*(x.str+1)='o';
*(x.str+2)='o';
*(x.str+3)='d';
*(x.str+4)='\0';
cout<<"x.str:"<<x.str<<endl;
delete x.str;
cout<<"---------------"<<endl;
//在声明结构变量时初始化
test y={"Very Good!",NULL};
cout<<"y.str:"<<y.str<<endl;
cout<<"y.ip:"<<y.ip<<endl;
}
#include<iostream.h>
main()
{
//定义date结构
struct date
{
int year;
int month;
int day;
};
//定义baby结构
struct baby {
int num;
float weight;
date birthday; // date为结构类型
};
//声明baby结构变量并初始化
baby b1={10001,10,{2002,12,25}};
//下列是baby结构变量b1的引用。
cout<<"b1.num="<<b1.num<<endl;
cout<<"b1.weight="<<b1.weight<<endl;
cout<<"b1.birthday.year="<<b1.birthday.year<<endl;
cout<<"b1.birthday.month="<<b1.birthday.month<<endl;
cout<<"b1.birthday.day="<<b1.birthday.day<<endl;
cout<<"--------------------------"<<endl;
//声明baby结构变量temp,并进行赋值运算
baby temp;
temp=b1;
cout<<"temp.num="<<temp.num<<endl;
cout<<"temp.weight="<<temp.weight<<endl;
cout<<"temp.birthday.year="<<temp.birthday.year<<endl;
cout<<"temp.birthday.month="<<temp.birthday.month<<endl;
cout<<"temp.birthday.day="<<temp.birthday.day<<endl;
}
#include<iostream.h>
main()
{
//定义名为list的递归结构
struct list {
char name[10];
int sex;
int age;
list *next; //成员next为指向其自身结构的指针
};
//使用递归结构变量
list L1={"WeiPing",1,35.5,NULL};
cout<<"L1:"<<endl;
cout<<"name\t"<<L1.name<<endl;
cout<<"sex\t"<<L1.sex<<endl;
cout<<"age\t"<<L1.age<<endl;
cout<<"next\t"<<L1.next<<endl;
}
#include<iostream.h>
main()
{
int i;
//定义名为student的递归结构
struct student {
char name[10];
int math;
int computer;
float sum;
student *next; //next成员是指向自身的结构指针
};
//用student声明3个结构指针变量
struct student *head,*tail,*temp;
//申请第1块数据,并设置各结构指针的初值
temp=new struct student; //申请内存
head=temp; // 头指针
tail=head; // 尾指针
//循环为链表输入数据
cout<<"\tname Math Computer"<<endl;
for (i=1;;i++) {
cout<<i<<"\t";
cin>>temp->name;
if (temp->name[0]!='*')
{
cin>>temp->math>>temp->computer;
temp->sum=temp->math+temp->computer;
temp->next=NULL;
tail=temp; //设置链表尾指针
}
else
{
// 以下是输入结束处理
delete temp;
tail->next=NULL;
break;
}
//为下一个学生申请内存
temp->next=new struct student;
temp=temp->next; // 使处理指针temp指向新内存块
}
//将链表数据从头到尾打印出来
cout<<"--------------------"<<endl;
temp=head;
while (temp!=NULL) {
cout<<temp->name<<","<<temp->math<<",";
cout<<temp->computer<<","<<temp->sum<<endl;
temp=temp->next;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ASCII表没有定义188之后的值
追问
有的呀,0~127 是标准字符 128~255 特别字符 我用别的程序,单独显示出188和200的 这程序就显示不出 还有就是 最底下那行 至少也该跟第一行 对齐的吧 ,代码都一样..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为hdusipo98-r7a哦IP办法都特别烦死啦广东三亚过冬股份有点哦啊后拍摄的;个 就打死哦【阿虎奇葩阿斯顿电视访谈好饿个人
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询