C语言结构体入门,结构体数组问题求助
#include <stdio.h>void main(){ struct txl { char name[20]; float number; }; struct tx1 men[20]; int i; for(i=0;i<20;i++) { printf("please input name and number: "); scanf("%s,%f",&men.name,&men.number); if(men.name==9) { break; } while(1) { i=0; if(men.name==9) { printf("Over!\n"); break; } printf("name: %s number:%4.0f\n",men.name,men.number); i++; }
while(1)后面的语句是打印。。。。主要,出现在前面的几行代码有问题。。编译通不过。 展开
/*
please input name and number:
李彤 89.9
马山 99
宋海 100
9 9
name: 李彤 number:89.90
name: 马山 number:99.00
name: 宋海 number:100.00
Press any key to continue
*/
#include <stdio.h>
void main() {
struct txl {
char name[20];
float number;
};
struct txl men[20];
int i,n;
printf("please input name and number:\n");
for(n = 0;n < 20;n++) {
scanf("%s%f",men[n].name,&men[n].number);
if(men[n].name[0] == '9') {
break;
--n;
}
}
for(i = 0; i < n; ++i)
printf("name: %s number:%.2f\n",men[i].name,men[i].number);
}
你这个用的是什么编译器?
VC++ 6.0中文版。
你的结构体名称是【txl】,是字母的 l
而你的数组名称是【tx1】,是数字 1
所以报错
还有,要引用结构体数组里面的元素,需要用下标运算符,比如:
men[ 0 ].name;
men[ 4 ].number;
还是看不太明白啊。。大神, 能不能帮忙稍微修改一下。。发给我啊。。
#include <stdio.h> void main( void )大概就是这样子了
{ struct txl
{ char name[ 20 ]; float number; }; struct txl men[ 20 ]; int i = 0;
int n = 0; printf("please input name and number:\n");
for(n = 0;n < 20;n++)
{ scanf("%s%f",men[n].name,&men[n].number);
if(men[n].name[0] == '9')
{ break; --n;
} }
for(i = 0; i < n; ++i)
{ printf("name: %s number : %.2f \n",
men[i].name, men[i].number);
}}
#include <stdio.h>
void main()
{
struct txl
{
char name[20];
float number;
}men[20];
//struct tx1 ;
int i;
for(i=0;i<20;i++)
{
printf("please input name and number: ");
scanf("%s,%f",&men[i].name,&men[i].number);
if(men[i].name=="9")
{
break;
}
while(1)
{
i=0;
if(men[i].name=="9")
{
printf("Over!\n"); break;
}
printf("name: %s number:%4.0f\n",men[i].name,men[i].number);
i++;
}
}
}
这样修改就正确了
注意结构体的定义
结构体的使用