一道简单的C语言问题求大神速来

学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生名单;

#include<stdio.h>
struct student{char name[20];double score;}stu;

void Unpass(student stu[])
{ int i;
while(stu[i].score>=0)
{for(i=0;i<30;i++)
{ if(stu[i].score<60)
printf("%s %.2f\n",stu[i].name,stu[i].score);}
}
}

void main()
{ int i;
struct student stu[30];
while(stu[i].score>=0)
{
for(i=0;i<30;i++)
scanf("%s %.2f\n",stu[i].name,stu[i].score);
}

Unpass(stu);
}
这个哪里错了???

#include<stdio.h>
struct student{
char name[20];
double score;
}stu;

void Unpass(student stu[])
{
int i;
for (i = 0; stu[i].name[0] != '\0'; i++)
{
if (stu[i].score < 60)
printf("%s %.2f\n", stu[i].name, stu[i].score);
}

}

//void main()
//{
// int i;
// struct student stu[30];
// while (stu[i].score >= 0)//这stu[i].score 没有赋值
// {
// for (i = 0; i < 30; i++)
// scanf("%s %.2f\n", stu[i].name, stu[i].score);// ->输入 &stu[i].score %.2f 没有输入格式
// }//double -》%lf
//
// Unpass(stu);
//}
void main()
{
int i = 0;
struct student stu[30] = { 0 };
while (1)//
{

scanf("%s %lf", stu[i].name, &stu[i].score);


if (stu[i].score < 0){
stu[i].name[0] = 0;
stu[i].score = 0;
i--;
break;
}
i++;

}

Unpass(stu);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-29
#include <stdio.h>

#define STUDENT_LEN = 30;

struct student
{
double score;
char name[32];
};

struct student stu[STUDENT_LEN];

void upPass( struct student *stu )
{
for( int i=0;i<STUDENT_LEN ;++i )
{
if( stu[i]>60)
{
 printf("%s %.2f\n",stu[i].name,stu[i].score);
}
}
}

void main( int argc,char** argv )
{

for(int i=0;i<STUDENT_LEN ;++i )
{
scanf("%s %.2f\n",stu[i].name,stu[i].score);
}

upPass();
}

没有编译过,你自己在验证下。


附带小广告一条(勿喜勿点) http://www.iu8s.com/

第2个回答  2014-12-29
参考下面你的程序i 没有初始话并且逻辑上有一点问题的
#include<stdio.h>
struct student{char name[20];double score;}stu;

void Unpass(student stu[])
{ int i;
for(i=0;i<30;i++)
{
if (stu[i].score <= 0) break;
if(stu[i].score<60)
printf("%s %.2f\n",stu[i].name,stu[i].score);}
}
}

void main()
{ int i;
struct student stu[30];
for(i=0;i<30;i++)
{
scanf("%s %.2f\n",stu[i].name,stu[i].score);
if (stu[i].score <= 0) break;
}

Unpass(stu);
}追问

不行啊 按照格式输入名字 成绩 按一次回车就结束了 什么都没输出= =

简单的c语言问题
如图所示,term=1\/(n*n*n);是先按int运算,然后在转double,因为1\/(n*n*n)都是0.几的int,因此就是0,转成double,还是0,因此就是1+0+0...,因此要先将(n*n*n)转成double,在除法,结果就还是double了。还有double对应的输入输出是%lf(l=L的小写),因此最好是改成%.6lf。如图所...

C语言的一道题 求助求助
现在我们把上面分析到的结果用C程序伪代码写出来。伪代码就是你自己随便写,只要能帮助你自己理解就行。一个C程序伪代码如下:{!-- PGC_COLUMN --} 五、最后生成一个完整的C程序 完成伪代码之后,我们就要对伪代码做“艺术加工”,慢慢完善它,使得它成为一个可以被编译和运行的C程序。下面我们来把...

C语言 代码问题(速度!急急急急急急急急急急急急!!!)
i=0 a[0]=1;for(j=0;j<=6;j++)(1,5,3,2,4,2,2)i=1 a[1]=5;执行:for(j=0;j<=6;j++){ if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t;} } (5,1,3,2,4,,2,2)每次j都从数组的第一个开始进行比较 for(j=0;j<=6;j++) --这句??? 应为:for(...

C语言考试速度求解啊!!速度
1.输入三个数,输出其最小值。2.输入两个整数,若他们的平方和大于100,则输出该平方和的百位数以上(包括百位数字)的各个位数字,否则输出两个整数的和。3.在键盘上输入若干字符,把其中的小写字母转换成大写字母,其他的字符不变,最后把处理结果输出到屏幕上。4.求10到40之间的所有素数。5.假设...

有大神能帮我解决一个C语言问题吗?
所以浮点运算会产生误差,同时运算速度又比整数要慢上几十倍,所以,可以用整数表示的数据就不要用浮点数表示。并且有一点要注意,一定要比较两个浮点数是否相等时,要用两数之差是否小于一个很小的数。把变量a,n,m都定义为long int型后,在求平方根时,系统会自动根据有效位数进行强制转换,这样转换...

C语言请教(问题简单)
pi=pi+t就是将pi与t的和得到的新值赋给pi,完成一个累加的过程。这个循环一直进行到t的绝对值小于1e-4(即10的-4次方)结束。如刚开始pi的值为0,第一次循环t=1.0,其绝对值明显大于1e-4,故pi=0+1.0= 1.0。第二次循环t=-1\/3,其绝对值明显大于1e-4,故pi=1.0+(-1\/3)= ...

c语言问题请教高手急 !!!急!!!请速来
void checktriangle(int SideA, int SideB, int SideC){ if (SideA == SideB && SideB == SideC)printf("That\\'s an equilateral triangle.\\n");else if (SideA == SideB || SideA == SideC || SideB == SideC)printf("That\\'s an isoceles triangle.\\n");else printf("That...

C语言简单问题?
void big_sum(char a[], char b[], char c[]);函数的功能是计算超大整数的加法:c=a+b 第二个是逆向字符串的函数:void str_rev(char s[]);功能是把字符串s收尾颠倒,下面以C语言的语法描述两个函数算法,如果看不懂就代码就看注释。void str_rev(char s[]){ int n=0,i=0;char...

C语言保留三位小数 第四位四舍五入的问题 高手速来~求帮助~
include<stdio.h> main() { float a; scanf("%f",&a); a=(int)(a*1000+0.5)\/1000.0; printf("%0.3f\\n",a); }

C语言中,关于函数,struct结构,指针的一道综合题。高手速度进,答好追...
在这利用了两种方法 自我感觉第二种方法好理解些 其实就是定义结构体有些不同 其他基本上都差不多 第一种方法:include <stdio.h> include <malloc.h> \/*malloc()内存分配函数*\/ define MAX 3 \/\/可以通过修改MAX的值来升级 typedef struct stu \/*定义学生成绩信息结构体*\/ {...

相似回答
大家正在搜