int main(){
float i
while (scanf_s("%f", &i) == -1 || (int)i - i != 0.0 || i<20 || i>100){
fflush(stdin)// 清空输入缓存区,避免输入字符时,scanf()进入死循环
printf("格式错误!请重新输入:\n")
}
}
while (scanf_s("%f", &i) == -1 || (int)i - i != 0.0 || i<20 || i>100)
解释:scanf_s("%f", &i) == -1,表示输入的数据没有读取成功。
(int)i - i != 0.0,表示i输入的不是整数。最好是每次输入都写输入提示,这样输入的时候就知道输入什么了,当然,多次输入,可以在前面写一个总的提示。具体的情况,还是要题目的要求。如果是自己写程序,那就无所谓了,不过也要考虑使用者的情况。说了这么多废话,总结一句,看情况决定!
直接调用系统API MessageBox()函数就可以了。函数原形
int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType)
参数说明
hWnd: 消息框的拥有窗此参数口。如果为NULL,则消息框没有拥有窗口。
lpText:消息框的内容。
lpCaption: 消息框的标题。
uType:
指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。指定下列标志中的一个来显示消息框中的按钮以及图标。
MB_OK 默认值。有一个确认按钮在里面。
MB_YESNO有是和否在里面。
MB_ABORTRETRYIGNORE 有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL 消息框含有三个按钮:Yes,No和Cancel
MB_RETRYCANCEL 有Retry(重试)和Cancel(取消)
MB_OKCANCEL 消息框含有两个按钮:OK和Cancel
当然还有其他标志和返回值, 具体内容参考
https://msdn.microsoft.com/en-us/library/ms645505(VS.85).aspx
最后是用系统API时需要包含头文件 windows.h
您好 学C语言 推荐您使用Codeblock编译器 VC6.0由于版本比较老 可能与最新的标准C语言有些不兼容等问题 比如 C语言规定了 main函数 必须返回 int类型 而在VC中 是void返回类型
#include<stdio.h>int main()
{
float a,b
a=123456.789e5
b=a+20
printf("%f\n",a)
printf("%f\n",b)
}
我在Codeblock上可以编译通过
结果是
12345678848.000000
12345678848.000000