相关疑难解决方法(0)

如何忽略scanf中的浮点数("%d")?

如果用户输入整数变量的浮点数,我想打印无效输入.那可能吗?

 int a;
 scanf("%d",&a); // if user enters 4.35 print invalid input 
Run Code Online (Sandbox Code Playgroud)

我试过像这样的人物

  if(scanf("%d",&a)==1);
  else printf("invalid input");
Run Code Online (Sandbox Code Playgroud)

但如何处理浮动数字.如果用户输入4.35它截断到4但我想要无效输入.

c scanf

10
推荐指数
1
解决办法
3050
查看次数

从输入中将数据存储在数组中

我是C的初学者.如果我的问题很蹩脚,请不要介意.在我编写的这个程序中,当我第一次使用'for'循环时,我预计只有3个值存储在一个数组中,但它存储了4个值,并且在下一个'for'循环中,如预期的那样显示3个值.我的问题是为什么在第一个'for'循环中它需要4个值而不是3个?

#include<stdio.h>
void main()
{
    int marks[3];
    int i;

    for(i=0;i<3;i++)
    {
        printf("Enter a no\n");
        scanf("%d\n",(marks+i));
    }
    for(i=0;i<3;i++)
    {
        printf("%d\n",*(marks+i));
    }
}
Run Code Online (Sandbox Code Playgroud)

c arrays

6
推荐指数
1
解决办法
4万
查看次数

Scanf找到整数

我觉得我错过了一些非常明显的东西,但我似乎无法找到我的代码的问题.我试图使用scanf来查找输入是否为整数,如果是,则找到八进制.如果它不是整数,则它只是提示用户再次输入.但是,出于某种原因,如果情况相反,我似乎只能使代码工作,其中不接受整数,而其他任何东西都是.似乎修复它只是一个简单的问题,但我只是得到无限循环.你们可以给予的任何帮助将不胜感激.

#include <stdio.h>
enum state {success,fail,quit};
int status = fail;

int main(void)
{
int n;
char t;
do
{
printf("Enter a number between 0 and 32767: ");

if(scanf("%d%c", &n, &t) != 2 )
status = success;
}
while (status == fail);
if (status == success)
{

int oct1, oct2, oct3, oct4, oct5;

oct1 = ((((n / 8) / 8) / 8) / 8) % 8;
oct2 = (((n / 8) / 8) / 8) % 8;
oct3 = ((n / …
Run Code Online (Sandbox Code Playgroud)

c

5
推荐指数
1
解决办法
389
查看次数

C中的无限循环代码

在下面的程序中,我尝试在1to 之间输入一个数字,100但是如果我在语句的执行时间内输入a 'character'"string"(如s或sova),scanf()则会创建一个无限循环.所以我试着做....当我输入一个字符串或一个字符时,它向我显示一条消息,例如"输入了错误的值.再次输入",它将再次输入...
Thanx;

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    while(!(a>=1&&a<=100))
    {
        printf("wrong value entered. enter again\n");
        scanf("%d",&a);
    }
    printf("you enter %d. Thanxz",a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c infinite-loop

2
推荐指数
1
解决办法
1390
查看次数

标签 统计

c ×4

arrays ×1

infinite-loop ×1

scanf ×1