// 结构体数组person[5]原有五个记录: zhou,wu,li,zheng,wang
// 现在,需要在zheng的位置增加1个记录test,那么,zheng和wang就相应往后移动
// 测试时输入:
// test 33 2000
// 输出6个记录
#include<stdioh>
#include<stringh> //需要调用strcpy()
//staff[5]与struct staff的名称一样,建议将staff[5]改为其它名称,例如 person[5]
struct staff
{
char name[20];
int age;
float salary;
}person[5]={{"zhou",22,1500},{"wu",29,1200},{"li",30,900},{"zheng",32,900},{"wang",29,990}};
//原代码struct staff 1[6]; //变量名怎么看似是数字"1" 将其改为其它名称,例如 L
struct staff L[6];
int main()
{
int i; //int j; //j可以不用
int k;
//这些 staff a[3]name 不需要在变量前面加staff
//原代码scanf("%s%d%d",staff a[3]name,staff a[3]age,staff a[3]salary);
//for(i=0;i<3;i++)
// staff 1[i]=staff[i];
//for(j=3;j<=5;j++)
// staff 1[j+1]=staff[j];
//手工输入一个记录 浮点float用%f &L[3]age和&L[3]salary前面要加&
scanf("%s%d%f",L[3]name,&L[3]age,&L[3]salary);
for(i=0;i<3;i++)
{
strcpy(L[i]name,person[i]name); //字符串的赋值用函数strcpy()
L[i]age=person[i]age;
L[i]salary=person[i]salary;
}
for(i=3;i<5;i++) //i不能等于5,因为person[5]的下标范围是0到4
{
strcpy(L[i+1]name,person[i]name); //字符串的赋值用函数strcpy()
L[i+1]age=person[i]age;
L[i+1]salary=person[i]salary;
}
for(k=0;k<6;k++) //屏幕输出6个记录
{
printf("%s %d %02f",L[k]name,L[k]age,L[k]salary); //%02f"表示保留2位小数
printf("\n"); //每个记录要隔行
}
//原代码printf("%s%d%d",staff 1[k]name,staff 1[k]age,staff 1[k]salary);
return 0;
}
#include <iostream>
using namespace std;
struct ListNode
{
int intStart;
int intEnd;
int Count;
ListNode Next;
};
ListNode head,NewNode,ListTemp;
void CreatList(int intStart,int intEnd,int Count)
{
NewNode = new ListNode();
NewNode->intStart = intStart;
NewNode->intEnd = intEnd;
NewNode->Count = Count;
if(head != NULL)
{
ListTemp->Next = NewNode;
ListTemp = NewNode;
}
else
{
head = NewNode;
ListTemp = head;
}
}
void ShowList()
{
ListTemp = head;
while(ListTemp != NULL)
{
cout << ListTemp->intStart << " " << ListTemp->intEnd << " " << ListTemp->Count << "->";
ListTemp = ListTemp->Next;
}
cout << endl;
}
void main()
{
int a[] = {1,2,4,7,8,9,10,12,13,14};
int start,end,count,i;
start = 0;
end = 0;
count = 1;
i = 0;
while(i<10)
{
if(count == 1)
{
start = a[i];
}
if(a[i+1] == a[i] + 1)
{
count++;
i++;
}
else
{
end = a[i];
CreatList(start,end,count);
count = 1;
i++;
}
}
ShowList();
}
给你简单写了下,你最好有你自己的思想,不要老是看别人的东西。
#define <stdioh>
struct A { int x,y; float av; } a;
void main() {
scanf("%d%d",&ax,&ay); aav=ax+ay; aav/=2; printf("%f\n",aav);
}
#include<timeh>
#include <stdioh>
#include <stdlibh>
#define ID 1
#define ID1 2
#define ID2 3
#define ID3 4
struct human
{
int blood;
int state;//状态
int rate;
};
int num=0; //回合数
struct human one={400,0,50};
struct human two={400,0,50};
struct human three={400,0,50};
struct human four={400,0,50};
void show(struct human h)
{
printf("第%d回合\n角色%d 体力%d %s 回复率%d%\n",++num,ID,hblood,hstate"正常":"中毒",hrate);
}
void show1(struct human h1)
{
printf("\n角色%d 体力%d %s 回复率%d%%\n",ID1,h1blood,h1state"正常":"中毒",h1rate);
}
void show2( struct human h2)
{
printf("\n角色%d 体力%d %s 回复率%d%%\n",ID2,h2blood, (h2state "中毒":"正常"),h2rate);
}
void show3(struct human h3)
{
printf("\n角色%d 体力%d %s 回复率%d%%\n",ID3,h3blood,h3state"正常":"中毒",h3rate);
}
int main()
{
char ch;
srand( (unsigned)time( NULL ) );
show(one);
show1(two);
show2(three);
show3(four);
while(ch=getchar())
{
if(ch==10)
{
int r=rand();
if(r>16384)
{
onestate=1;
oneblood=oneblood-r/100;
if(oneblood<=0)
{
oneblood=0;
}
}
else onestate=0;
show(one);
if(r<16384)
{
twostate=1;
twoblood=twoblood-r/130;
if(twoblood<=0)
{
twoblood=0;
}
}
else twostate=0;
show1(two);
if(r>16384)
{
threestate=1;
threeblood=threeblood-r/105;
if(threeblood<=0)
{
threeblood=0;
}
}
else threestate=0;
show2(three);
if(r<16384)
{
fourstate=1;
fourblood=fourblood-r/150;
if(fourblood<=0)
{
fourblood=0;
show3(four);
return 0;
}
}
else fourstate=0;
show3(four);
}
}
return 0;
}
你的程序我基本上看懂了,上面的代码能够正常执行
1c语言不支持bool类型,所以定义state时,应该定义成int state
2char ch,应该写在函数前面,因为c语言不支持变量的随定义随引用(即如果要使用一个变量,只需先写一定义变量的语句即可,并不需要在函数开头定义)
3c语言不支持引用类型,引用是c++增加的特性
void show(human &h)
应该写成void show( struct human h)
4较低版本的c语言不支持直接使用自定义的结构体类型定义变量,结构体类型前还需要加struct关键字 如human one是不行的,必须是struct human one
#include <stdioh>
int main(void)
{
struct student {
float qizhong;
float qimo;
float avg;
}a;
float s1,s2;
printf("请输入期中成绩:");
scanf("%f",&s1);
printf("\n请输入期末成绩:");
scanf("%f",&s2);
aqizhong=s1;
aqimo=s2;
aavg=(aqizhong+aqimo)/2;
printf("期中:%f,期末:%f,平均:%f\n",aqizhong,aqimo,aavg);
}
#include "stdioh"
void main(){
struct Student{
char id[10];
char name[10];
int score;
}
stu = {"001", "Sam", 80};
printf("%s\t%s\t%d", stuid, stuname, stuscore);
}
扩展资料在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。
因此C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。
必须定义该数据类型的变量;跟定义int类型变量是一个道理,只不过这是你自定义的数据类型而已。还可以这样定义:
pnt pnt; //第一个pnt是结构体名字,等于point pnt,第二个是实际定义的point类型变量
pntx = 1;
pnty = 1;
以上就是关于关于C语言结构体的一个程序,总是显示有错误,大佬们帮忙看下全部的内容,包括:关于C语言结构体的一个程序,总是显示有错误,大佬们帮忙看下、用C语言写个结构体的程序~~高手帮哈忙~~~、C语言程序 用结构体编写一个程序,实现输入两个数,求出平均数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)