c语言 scanf( 停止,一个c程序,一运行到Scanf就程序停止
編寫學生管理系統,其中學生的信息有姓名(漢語拼音,最多20個字符),性別(男/女,用1表示男,0表示女)、
生日(19850101(年月日))、身高(以m為單位),還需要處理C語言、微積分兩門課的成績,請編寫程序實現功能:
輸入學生的人數和每個學生的信息;輸出每門課程的總平均成績、最高分和最低分,以及獲得最高分的學生的信息。
需要注意的是某門課程最高分的學生可能不只一人。
輸入輸出格式要求:身高輸出時保留兩位小數,請按照例子中進行輸出,請勿輸出其他字符
#include
#include
#include
struct student
{
char name[20]; ? ? //姓名
int sex; ? ? ? ? ? ? ? ?//性別
char bir[10]; ? ? ? //生日
double high; ? ?//身高
int c; ? //成績1
char w; ? //成績2
}S[100];
int main()
{
int c_max = 0, c_min = 100, c_sum = 0; ? ?//對成績1 的最大,最小,和作初始化
int w_max = 0, w_min = 100, w_sum = 0; ??//對成績2 的最大,最小,和作初始化
int i=0;
int n=0;
printf("請輸入需要記錄學生的數量\n");
scanf_s("%d", &n); ? ?//記錄一共輸入多少學生信息
for (i = 0; i < n; i++)
{
scanf_s("%s %d %s %lf %d %d",S[i].name,&S[i].sex,&S[i].bir,S[i].high,&S[i].c,&S[i].w); ? //就是這里,輸入學生信息時,就程序停止了,問你下是寫的有問題,還是別的問題!
if (S[i].c>c_max)c_max = S[i].c;
if (S[i].c < c_min)c_min = S[i].c;
if (S[i].w > w_max)w_max = S[i].w;
if (S[i].w < w_min)w_min = S[i].w;
c_sum += S[i].c; w_sum += S[i].w;
}
for (i = 0; i < n; i++)
{
printf("%s %d %s %lf %d %d\n", S[i].name, S[i].sex, S[i].bir, S[i].high, S[i].c, S[i].w);
}
system("pause");
return 0;
printf("c_average:%d\nc_max:%d\n", c_sum, c_max / n);
for (i = 0; i < n; i++)
{
if (S[i].c == c_max)
printf("%s %d %s %lf %d %d\n", S[i].name, S[i].sex, S[i].bir, S[i].high, S[i].c, S[i].w);
}
printf("c_min:%d\n", c_min);
printf("w_average:%d\n", w_sum / n);
for (i = 0; i < n; i++)
{
if (S[i].w == w_max)
printf("%s %d %s %lf %d %d\n", S[i].name, S[i].sex, S[i].bir, S[i].high, S[i].c, S[i].w);
}
printf("w_min:%d", w_min);
system("pause");
return 0;
}
總結
以上是生活随笔為你收集整理的c语言 scanf( 停止,一个c程序,一运行到Scanf就程序停止的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 多项式拟合EXCEL中复杂
- 下一篇: 20190827-Ubuntu查看内存槽