gpt4 book ai didi

c - 程序报错

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:30 25 4
gpt4 key购买 nike

程序的逻辑很清楚,但是当它要求用户输入名字时。第二次它要求输入名称,即在 i=1 时它要求输入名称并要求输入年份。简而言之,它不允许用户在 int year 中 i=0 之后输入数据。

/* Write a program to take input name roll number and year of joining of 5 students and making a function which prints name of only those who have joined in the particular year mentioned by the user*/
#include<stdio.h>
#include<conio.h>
struct student
{
char name[50];
int year;

}
a[5];

void func ( void );
void main ( void )
{
int i;
for ( i = 0; i < 5; i++ )
{
printf ( "Enter name %d\n", i + 1 );
gets ( a[i].name );
puts ( "Enter year" );

scanf ( "%d", &a[i].year );
}
func();
getch();
}
void func ( void )
{
int i;
int yearr;
printf ( "Enter a year:" );
scanf ( "%d", &yearr );
for ( i = 0; i < 5; i++ )
{
if ( yearr == a[i].year )
{
printf ( "%s", a[i].name );
}// if ends

}//for ends
}// func ends

最佳答案

除了 gets 的代码臭味(使用 fgets。拜托。现在,当你仍在从错误中学习时。),以及你的输出的隐藏性(这里和那里的 \n 会创造奇迹),看起来它可以工作。假设你想让它从用户那里得到 5 个名字和年份,然后要求搜索一年,并列出所有年份匹配的学生姓名。 (如果这不是您想要的,那么逻辑甚至没有您想象的那么清晰。)

就我个人而言,我不会混合使用 scanffgets(是的,我说的是 fgets。使用它。),所以我我不确定这样做的问题。反正我不是 scanf 的粉丝,所以我可能有偏见。

关于c - 程序报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com