我正在尝试做一个程序,读取用户的输入,并确定整数是否为Fibonacci。
程序应该打印出num is fib或num is not fib,其中num是正整数;
如果输入是一个非正数,程序不应该产生任何输出(但是它应该在stderr上产生一个错误信息),并且应该继续提示;
如果输入包含任何字符,则程序不应该产生任何输出(但它应该在stderr上产生错误信息),然后退出。
这是预期的结果:
1 2 3 4 5
1 is fib
2 is fib
3 is fib
4 is not fib
5 is fib
(继续提示输入)
1 -2 3 -4 5
1 is fib
Error: input v
由于刚开始学习编程,尤其是C语言,我正在苦苦思索如何将printf仅限于有效的输出,即确保printf不会出现在"break“语句之后。
我知道我对scanf的测试在for循环中,当我达到3时,for循环停止,printf出现。我希望找到正确的方法来测试scanf,并确保printf不会出现在break语句之后(以防用户输入整数)。
// a program that calculates the average of an array
of 3 floating-point values and check if correct inputs
are types in scans
我是个C新手,我正在使用一个scanf函数。我要求用户输入的数字是一个名为myNumber的长整型。然而,当我输入这个值时,程序给出了“分段错误: 11”
long double ObtainNumber (myNumber)
{
scanf("%lf", &myNumber);
while (myNumber > 999999999)
{
printf("Error. Please enter a number with no greater than 9 digits\n");
这个程序应该以字符串的形式获取用户数据,并将其放入链表中。现在,我可以将数据放入链表中,但不确定为什么不打印出来。
#include<stdio.h>
#include<stdlib.h>
// define the node of the stack
typedef struct node{
char name[100];
struct node *next;
}Node, *NodePtr;
// define the stack based on the linked list of nodes
typedef struct{
Node
当我在bash脚本中使用expect交互手动请求根密码时,它接受密码,提升到根用户,但在没有完成bash脚本其余部分的情况下退出。
我正在将用户从旧的CentOS机器迁移到新的RHEL机器。我有一个手动完成此操作的过程,但我正在尝试将该过程自动化。我已经完成了大部分工作,但是有几个步骤需要根级权限。我试图在bash脚本中使用expect交互来执行su命令,以确保根密码保持安全。
#!/bin/bash
elevate()
{
echo
echo "You must be logged in as root to continue."
echo
#include<stdio.h>
#include<conio.h>
void main()
{
int a[10],i,q;
printf("Enter elements of array\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("enter number to search: ");
scanf("%d",&q);
for(i=0;i<1
我有一个函数定义,它通过用户使用scanf来获取数组的值。这就是我的东西
void readInArray(int *arr, int size) {
int i;
printf("Enter your list of numbers: ");
for (i = 0; i < size; i++) {
scanf("%f", arr[i]);
printf("%d\n", arr[i]);
}
}
当我尝试打印数组时,我得到了一个错误,scanf在行中说"format指
如何创建一个可以在每次循环时都接受用户输入的循环?
#include <stdio.h>
#define WORD "jumble"
#define JUMBLED "mleujb"
int main()
{
char string[6];
int i = 0;
printf("The jumbled word is ");
printf(JUMBLED);
printf("\nCan you guess the original: ");
while(i == 0)
当用户输入我们不希望他输入的东西时,我想知道是否有任何方法返回到if语句的开头。例如:
#include <stdio.h>
int main()
{
int number1;
printf("Please enter a number:"); scanf("%d", &number1);
if(blablabla)
printf("blabla");
else if(blablabla)
printf("blabla");
else
当使用Xcode运行这个小C脚本时,我得到以下消息:
Format specifies type 'float *' but the argument has type 'double" at scanf("%f", v) and scanf("%f", i).
我不明白,因为我没有声明任何double类型的变量。
int main(int argc, const char * argv[]) {
char choice[10];
float v;
float i;
float r;
我正在尝试让我的输入在一个范围和整数类型之间进行验证。目前,我有以下code.The范围所需的是0-100的X和0-50的Y。
for(loop=0;loop<3;loop++){
printf("\n\nEnter MAGENTA X coordinate from 0 to 100:\n");
scanf("%d",&mg[loop].x);
printf("\nEnter MAGENTA Y coordinate from %d to 50:\n");
scanf("%d",&a
在下面的代码中,我希望向用户提供一个选项,让用户输入'e‘退出代码并查看结果,而不是像目前代码中使用的100。但是,由于scanf需要一个与声明的类型匹配的整数,因此代码无法从终端使用'e‘正常运行。如果我键入任何字符而不是整数,scanf会以某种方式将其存储在变量中。这种方式是固定的吗?如果它是固定的,我是否可以使用存储的值来检查是否退出程序?
#include<stdio.h>
int main(void)
{
int rating[11], x;
for (int a = 0; a <= 11; a++)
rating[
我有一个非常简单的命令行实用程序,在它的末尾,我正在等待一个用户按回车键结束程序:
fmt.Scanf("\n") // wait for hitting the enter key to end the program
现在我想要更改它,如果enter键已经有一段时间没有被击中,我想取消Scanf并执行其他操作。是否可以取消等待用户的输入?
在c中,我有一个片段
int n=0;
do {
printf("random text\n");
scanf("%d", &n);
} while ( n < 1 || n > 10);
当用户输入一个数字以外的任何内容时,循环发送printf,而不等待用户输入。
为什么会发生这种情况,我如何解决这个问题
我在大学的第一个学期学习C编程。我们已经获得了模块化代码的介绍,我的问题的基本要点是我创建了一个函数来提示用户继续或退出程序。显然,在此之前我还有一些其他函数,我在main()中调用这些函数。请记住,这些函数位于单独的C文件中。如果用户输入'Y‘(即从头开始启动程序),我希望循环回到main(),但考虑到我的初学者知识,我很难弄清楚如何做到这一点。如有任何帮助或指导,我们将不胜感激!
int continueOrExit() {
char response;
char upperResponse;
printf("Do you wish to cont
这里是我的简单计算器的代码:
#include <stdio.h>
int main(void)
{
int n1, n2;
char op;
do {
printf("Enter which operation you want to do(+, -, *, /) \n"); op = getch();
} while(op!='+' && op!='-' && op!='*' && op!='/');