结构体 赋值 初始化-C语言结构体循环赋值老是出现随机数。。

问题描述

C语言结构体循环赋值老是出现随机数。。

问题是这样的 本人大一 C语言课程设计 做一个运动员管理系统 部分代码如下
#include
#include
#include
#include
void search();
void enter();
void browse();
void save();
void add();
int load(int y);
int exchange(int x);
void Department();
void sex();
void project();
void rank();
void Score();
void name();
struct on{
int N;}z;
struct department{
char departmentName[11];
char project[11];
int rank;
int score;}department[10];
struct sportsMen{
char sportmenName[11];
char departmentName[11];
char sex[5];
char project[11];
int rank;
int score;}sportMen[50];
struct score{
char departmentName[11];
int rank[10];
int scoreSum[10];}score[10],k;
struct another{
char sportmenName[11];
char departmentName[11];
char sex[5];
char project[11];
int rank[10];
int score[4];}another[50];
int main(void)
{
int d;int k;
enter();
k=z.N;
for(d=0;d<k;d++)
{
printf("姓名:%s 性别:%s 部门:%s 项目:%s 名次:%d 得分:%dn",sportMen[d].sportmenName,sportMen[d].sex,
sportMen[d].departmentName,sportMen[d].project,&sportMen[d].rank,&sportMen[d].score);
}
}
void enter()//输入函数
{
int i,G,j;
system("CLS");
printf("请输入你想要录入的运动员人数(0-50)?");
scanf("%d",&G);

z.N=G;
for(i=0;i<G;i++)//给sportMen赋值
{
    printf("姓名:");scanf("%s",sportMen[i].sportmenName);
    printf("性别:");scanf("%s",sportMen[i].sex);
    printf("部门:");scanf("%s",sportMen[i].departmentName);
    printf("项目:");scanf("%s",sportMen[i].project);
    printf("排名:");scanf("%d",&sportMen[i].rank);
    system("CLS");
}
for(j=0;j<G;j++)//给sportMen中的score赋值
{
    switch(sportMen[j].rank)
        {
        case 1:if(sportMen[j].project=="aa"&&"bb"&&"cc")sportMen[j].score=7;
               else sportMen[j].score=5;
               break;
        case 2:if(sportMen[j].project=="aa"&&"bb"&&"cc")sportMen[j].score=5;
               else sportMen[j].score=3;
               break;
        case 3:if(sportMen[j].project=="aa"&&"bb"&&"cc")sportMen[j].score=3;
               else sportMen[j].score=2;
                break;
        case 4:sportMen[j].score=2;
                break;
        case 5:sportMen[j].score=1;
                break;
        default:sportMen[j].score=0;
            break;
        }
}

}
在利用for循环给结构体sportMen赋值时 不能输出想要的结果,排名和得分会出现随机数
请教各位我这段代码哪里有问题?`

解决方案

数字和字符混合输入注意用get()去掉末尾的空格,这个影响你了

时间: 2025-01-21 07:58:35

结构体 赋值 初始化-C语言结构体循环赋值老是出现随机数。。的相关文章

c语言 结构体函数:PHP的语言结构和函数的区别

相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等.例子: if ( isset($user) ) { //do some thing }原因是isset是语言结构,而strlen是一个函数.还有echo 是个语言结构,不是个函数.那什么是语言结构呢?它和函数有什么不同吗?1. 什么是语言结构和函数语言结构:就是PHP语言的关键词,语言语法的一部分:它不可以被用户定义或者添加到语言扩展或者库中:它可以有也可以没有变量和返回值.函

详解C++程序中定义struct结构体的方法_C 语言

什么是结构体?简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 结构体的定义 定义结构体使用struct修饰符,例如: struct

c语言,对结构体中的整型数组进行赋值.....

问题描述 c语言,对结构体中的整型数组进行赋值..... c语言中,在结构体里声明整型数组,想对整型数组赋值,只能用循环吗?如果我想这样呢..... typedef struct Data { int arr[10]; }Data; int main() { Data data; data = (Data)malloc(sizeof(Data)); data->arr[10]={1,3,2,4,5,6,7,8,9,0}; . ... ... ... } 这样可以吗? 解决方案 绝对不可以.数组作

struct-C语言中结构体中的数组,不能直接赋值吗

问题描述 C语言中结构体中的数组,不能直接赋值吗 设有定义:struct{char mark[12];intnum1;double num2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是(C) (A) t1=t2; (B) t2.num1=t1.num1; (C) t2.mark=t1.mark;//mark为结构体中的数组,不能直接赋值?? (D) t2.num2=t1.num2; ?====如题参考答案说为结构体中的数组,不能直接赋值,为什么呢?那应该怎么赋值呢?求大侠指教 解决

结构体指针初始化问题

问题描述 结构体指针初始化问题 定义一个队列结构体,想用init方法初始化一个该结构体的指针,testQueue1和testQueue2两种方法都有问题.Queue内部的front和rear指针无法初始化. 但如果是在主程序或者testQueue函数中用malloc初始化,却是可以的. main程序如下: #include "Queue.h" void testQueue1(); void testQueue2(); void testQueue3(); int main() { pr

深入剖析C++中的struct结构体字节对齐_C 语言

什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证

C与C++中结构体的区别_C 语言

C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. C++中的结构体和类的异同: 一.相同之处:结构体中可以包含函数:也可以定义public.private.protected数据成员:定义了结构体之后,可以用结构体名来创建对象.但C中的结构体不允许有函数:也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数. 二.不同之处:结构体定义中默认情况下的成员是

一道超经典的C++结构体的题目_C 语言

题目描述:有10个学生,每个学生的数据包括学号.姓名.英语.数学.物理三门课的成绩,从键盘输入10个学生数据,要求打印出3门课程的总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课的平均成绩,平均分数). c++代码: 复制代码 代码如下: #include<iostream>#include<string>using namespace std;struct Student{//声明结构体Student string num; string name; float eng

如何在传输结构体数据的同时,完成结构体中变量数据的采集?

问题描述 最近在做一个项目,自己负责的主要工作是将定义好的结构体中的变量的数据传出来,以及matlab计算后传回来的数据进行解算并显示结构体1:传递初始化数据-没有问题结构体2:实时传递摇杆采集的数据-有问题结构体3:传递自动飞行数据-没有问题结构体4:接受matlab结算的数据,并进行显示(暂时还没有测试)现在遇到的问题,主要是:我需要实时传递摇杆采集的数据并传递出去这是按钮事件,当点击按钮之后开始传递结构体的数据SendUAV_ManualPilotpSendUAV_ManualPilot;