C语言编程中的出现的奇怪问题,很简单的。
#include<stdio.h>structstudent{charname[50];intage;floatscore;};intmain(void){inti;pr...
# include <stdio.h>
struct student{ char name[50]; int age; float score;};
int main(void){ int i; printf("请输入学生人数\n"); int renshu; scanf("%d", &renshu); struct student st; for(i=0;i<renshu;i=i+1); { printf("请输入第%d个学生的名字\n", i+1); scanf("%s", &st.name); printf("请输入第%d个学生的年龄\n", i+1); scanf("%d", &st.age); printf("请输入第%d个学生的成绩\n", i+1); scanf("%f", &st.score); }
for(i=0;i<renshu;++i); { printf("第%d个学生的信息为:%s, %d, %f",i+1, st.name, st.age, st.score); } return 0;
}
奇怪的是我运行之后输入3,结果却是这样的 展开
struct student{ char name[50]; int age; float score;};
int main(void){ int i; printf("请输入学生人数\n"); int renshu; scanf("%d", &renshu); struct student st; for(i=0;i<renshu;i=i+1); { printf("请输入第%d个学生的名字\n", i+1); scanf("%s", &st.name); printf("请输入第%d个学生的年龄\n", i+1); scanf("%d", &st.age); printf("请输入第%d个学生的成绩\n", i+1); scanf("%f", &st.score); }
for(i=0;i<renshu;++i); { printf("第%d个学生的信息为:%s, %d, %f",i+1, st.name, st.age, st.score); } return 0;
}
奇怪的是我运行之后输入3,结果却是这样的 展开
5个回答
展开全部
for(i=0;i<renshu;i=i+1)
{
printf("请输入第%d个学生的名字\n", i);//这里不能再加1了,下面也是。
scanf("%s", &st.name);
printf("请输入第%d个学生的年龄\n", i);
scanf("%d", &st.age);
printf("请输入第%d个学生的成绩\n", i);
scanf("%f", &st.score);
}
另外,你st只是一个结构,没有数组或者指针链表,只能存储一个学生的信息。输出的时候,也只能输出同一个,也就是最后一个。
展开全部
你for循环后面多打了个分号!导致循环没有作用,会在第一个for循环中将i累加到4,st一概用数组存储
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/* Note:Your choice is C IDE */
# include <stdio.h>
struct student
{
char name[50];
int age;
float score;
}st;
int main(void)
{
int i,renshu;
printf("请输入数\n");
scanf("%d", &renshu);
//struct student st;
for(i=0;i<renshu;i=i+1);
{
printf("请输入第个%d名字\n", i+1);
scanf("%s",&st.name);
printf("请输入第%d年龄\n", i+1);
scanf("%d",&st.age);
printf("请输入第%d成绩\n", i+1);
scanf("%f",&st.score);
}
for(i=0;i<renshu;++i);
{
printf("第%d信息:%s, %d, %f",i+1, st.name, st.age, st.score);
}
return 0;
}
你看看 这个代码行吗 ?你的也应该可以啊 你就按他说的输入名字就行 一步一步下去
# include <stdio.h>
struct student
{
char name[50];
int age;
float score;
}st;
int main(void)
{
int i,renshu;
printf("请输入数\n");
scanf("%d", &renshu);
//struct student st;
for(i=0;i<renshu;i=i+1);
{
printf("请输入第个%d名字\n", i+1);
scanf("%s",&st.name);
printf("请输入第%d年龄\n", i+1);
scanf("%d",&st.age);
printf("请输入第%d成绩\n", i+1);
scanf("%f",&st.score);
}
for(i=0;i<renshu;++i);
{
printf("第%d信息:%s, %d, %f",i+1, st.name, st.age, st.score);
}
return 0;
}
你看看 这个代码行吗 ?你的也应该可以啊 你就按他说的输入名字就行 一步一步下去
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for循环后面的分号去掉
for(i=0;i<renshu;i=i+1)
for(i=0;i<renshu;i=i+1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for后面没有";"的吧
有的话循环就结束了,
i=3
有的话循环就结束了,
i=3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询