c语言 提示 使用了未初始化的局部变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 提示 使用了未初始化的局部变量相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define LEN sizeof(struct score)
#define LEN1 sizeof(struct match)
#define FORMAT "%-8d%-10s%-12s%-12s%-17s%-13s%-13s%\n"
#define FORMAT1 "%-8d%-10s%-12s%-12s%-17s%-13s%\n"
#define DATA member[i].num,member[i].team1,member[i].team2,member[i].winner,member[i].name,member[i].time
#define DATA1 member1[i].num1,member1[i].teamA,member1[i].teamB,member1[i].thewinner,member1[i].scoreA,member1[i].scoreB,member1[i].time

struct score //比赛信息

int num; //编号
char team1[100]; //队伍1
char team2[100]; //队伍2
char winner[100] ; //进球方
char name[100]; //进球队员
int time[100]; //进球时间

;
struct match //胜负信息

int num1;
char teamA[100];
char teamB[100];
char thewinner[100];
int scoreA[100];
int scoreB[100];
int time[100];
;
void timetable()
int figer=20160625;

FILE *fp;
int i,m,j=0;
char temp=0;
if((fp=fopen("比赛.txt","ab+"))==NULL)

printf("不能打开文件\n");
return;


while(!feof(fp))
if(fread(&member1[m],LEN1,1,fp)==1&&figer<*member1[m].time) /*警告 使用了未初始化的局部变量“m”*/

m++;

fclose(fp);
if(m==0)

printf("没有记录!\n");
return;


for(i=0;i<m;i++)
for(j=i+1;j<m;j++)
if(member1[i].time>member1[j].time)
temp=*member1[i].time;*member1[i].time=*member1[j].time;*member1[j].time=temp;

for(i=0;i<m;i++)
printf("编号 队伍A 队伍B 胜利队伍 A队得分 B队得分 比赛时间 \t\n");
printf(FORMAT1,DATA1);
break;

参考技术A 你的局部变量m没有初始化,应当初始化m=0;追问

可是我在声明函数的时候已经令其为0了,要怎么改啊

追答

在声明函数的时候已经令其为0?你是怎么弄的,把代码复制粘贴过来看看吧

追问

主要的代码就在这里了

追答FILE *fp;
int i,m,j=0;  //你这里的m都没初始化嘛,你可以这样做int i=m=j=0;
char temp=0;

本回答被提问者采纳

以上是关于c语言 提示 使用了未初始化的局部变量的主要内容,如果未能解决你的问题,请参考以下文章

C++ 错误 C4700:使用了未初始化的局部变量“i”

C语言中使用变量为啥必须要初始化?

scala变量能初始化为null吗

C语言中的“局部变量”是啥意思?

C语言基础:作用域规则(局部变量,全局变量,形式参数)全局变量与局部变量在内存中的区别初始化局部变量和全局变量

C语言局部变量全局变量,局部静态变量,全局静态变量,extern,static的区别