关于C语言结构体的一个程序,总是显示有错误,大佬们帮忙看下

关于C语言结构体的一个程序,总是显示有错误,大佬们帮忙看下,第1张

// 结构体数组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语言程序 用结构体编写一个程序,实现输入两个数,求出平均数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10136948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存