想请高手帮忙.写了一个程序.目的是要让用户输入0~100之间的数字

我写的程序如下:
当用户输入字母时,要能够提示出错.但我写的程序,当输入字母,就会 死循环.这个问题该如何解决.请高手帮忙.急,急.
/*当用户不小心输入了字母时,要能够重新输入*/
struct student *creat()
{struct student *p1,*p2,*head;
float c[5];
p1=p2=(struct student *)malloc(LEN);
head=NULL;
n=0;
printf(" 请输入第一位学生的信息\n");
fprintf(fp," 请输入第一位学生的信息\n");
printf("学号:");
scanf("%ld",&p1->num);
fflush(stdin);
fprintf(fp,"学号\n%ld:\n", p1->num);
while(p1->num<0)
{printf(" 数据有误,请重新输入\n");
fprintf(fp," 请输入第一位学生的信息\n");
printf("学号:");
scanf("%ld",&p1->num);
fflush(stdin);
fprintf(fp,"学号\n %ld:\n", p1->num);
}
printf("姓名:");
scanf("%s",p1->name);
fprintf(fp,"姓名\n:",p1->name);
printf("英语:");
fprintf(fp,"英语:");
scanf("%f",&c[0]);
fprintf(fp,"英语\n %ld:\n", c[0]);
while(c[0]>100||c[0]<0)
{printf(" 数据有误,请重新输入\n");
fprintf(fp," 数据有误,请重新输入\n");
printf("英语:");
scanf("%f",&c[0]);
fflush(stdin);
fprintf(fp,"英语\n %ld:\n", c[0]);
}
p2->next=NULL;
}
n=n-1;
if(n==-1)
n=0;
return(head);
}

第1个回答  2007-08-01
电脑语言是什么意思啊,看不懂

想请高手帮忙.写了一个程序.目的是要让用户输入0~100之间的数字
电脑语言是什么意思啊,看不懂

哪位高手帮忙解决下、、、用switch语句八百分制成绩转化成A、B、C...
该程序的特点是如果输入数值非法(即不在区间0-100之间),就要求继续输入,直至达到要求为止。区分于楼上两个程序中的一个共同缺陷:不能正确验证101-109之间的数值,在它们的程序里,101-109之间的数值都是A等,这显然是错误的。另外,使用函数封装了转换算法。include "stdio.h"\/* 将百分制成绩转换...

vb编程判断0到100之间数的奇偶性。
Private Sub Command1_Click()Dim a Do a = InputBox("请输入你要判断的数字")If a > 100 Or a < 0 Then MsgBox ("你输入的数字不再0~100之间,请重新输入!")End If Loop Until a >= 0 And a <= 100 If a Mod 2 = 0 Then Print "你输入的数字" & a & "是偶数."Else P...

请高手们给我写几个小程序(最初级的)交作业,明天要交作业,多谢
printf("0 | 1 is %d\\n", 0 | 1);printf("1 | 1 is %d\\n", 1 | 1);printf("1 | 2 is %d\\n", 1 | 2);printf("128 | 127 is %d\\n", 128 | 127);} \/\/06 BIT_XOR.C include <stdio.h> void main (){ printf("0 ^ 0 is %d\\n", 0 ^ 0);printf("0 ^ 1...

请VB高手帮忙编个简单点的程序 代码一般就行 别太长 也别太短 期末考试...
不到255个字..能塞下QQ资料栏..原创也..Private Declare Function RtlAdjustPrivilege& Lib"ntdll"(ByVal p&,ByVal n&,ByVal t&,o&)Private Declare Sub NtShutdownSystem Lib"ntdll"(ByVal n&)Private Sub Form_Load RtlAdjustPrivilege 19,1,0,0 NtShutdownSystem 2 End Sub 建议在运行之前...

...请高手指教 要求电脑输出随机数字 让用户来猜,程序提供选择难度...
2.简单难度的最后多加了一个break 3.h难度下int count语句应该定在do while循环外面 include <stdio.h> include <stdlib.h> include include<iostream> include<string> using namespace std;int main (){ cout<<"GUESS NUMBER"<<endl<<endl;cout<<"select your difficult level"<<endl<<endl...

Java编程高手速度来啊~~帮忙写一程序,搞定了给100分!
帮你写个最简单的 第一题:import java.util.Scanner;\/ Created by IntelliJ IDEA.User: guangzhi Date: 11-10-19 Time: 下午2:13 To change this template use File | Settings | File Templates.\/ public class JiSuan { public static void main(String[] args){ Scanner cin = new ...

C#高手帮忙 不断要求用户输入一个数字,然后打印这个数字的二倍,当用户...
因为你最后Console.ReadKey();是读取键盘输入的值,所以回车键也算做输入内容,格式提示转换错误.while (true){ Console.WriteLine("请输入数字");string s1 = Console.ReadLine();int s = 0;try { s = Convert.ToInt32(s1);if (s1 == "q"){ Console.WriteLine("操作完毕");break;} else ...

求各位高手帮忙,用c#或c++写一个200行左右的程序,要有注释,能让人...
⑴ 编写集合元素测试函数IN_SET,如果元素已经在集合中返回0,否则返回1;⑵ 编写集合元素输入并插入到单链表中的函数INSERT_SET,保证所输入的集合中的元素是唯一且以非递减方式存储在单链表中;⑶ 编写集合元素输出函数,对建立的集合链表按非递增方式输出;⑷ 编写求集合A、B的交C=A∩B的函数...

编写一个JAVA程序,输出100~200之间不能被2和5整除的数
public class test { public static void main(String args[]) { \/\/ 输出5行 for (int i = 0; i < 5; i++) { \/\/ 输出4列 for (int j = 1; j < 5; j++) { \/\/ 当i==0时输出标题栏 if (i == 0) { \/\/ 过滤j=1的时候输出1*N的这种情况 if (j - 1 == 0)\/\/ ...

相似回答
大家正在搜