Tag: 循环

当用户在c中输入输入时停止for循环

首先,谢谢你的帮助! 我是C语言的新手(以及一般的编程),我正在尝试编写一个用户输入数据点的程序。 然后将数据点保存在一个数组中,然后可以对它们进行操作。 我被卡住的地方:我希望用户能够输入(几乎)任意数量的点,然后使用各种“关键字”来表示数据输入的结束。 在这种情况下,用户将键入“完成”。 这是我到目前为止所拥有的: #include #include int main(void) { printf(“\n Welcome! \n\n Please enter each data point. Enter ‘done’ when finished.\n\n”); double data[1048]; int i, count; for (i = 1; ;i++) { printf(“Data[%i]: “, i); scanf(“%lf”, &data[i]); if (data[i] == ‘done’) { break; } else { count++; } } } 我试过’返回1;’ ‘打破;’。 每次,程序都能正常运行,直到输入“关键字”,此时我得到: […]

嵌套循环到CUDA

我想将我的c代码移植到CUDA。 主要计算部分包含3个嵌套循环: for (int i=0; i< Nx;i++){ for (int j=0;j<Ncontains[i];j++){ for (int k=0;k< totalVoxels;k++){ ……. } } } 如何将其转换为我的CUDA内核? 有两个for循环我可以做类似的事情: int n= blockIdy.y * blockDim.y + threadIdx.y; int i= blockIdx.x * blockDim.x + threadIdx.x; 但是我怎么能最初开始运行呢?

从用户输入密码并检查它是否有字符,字母和数字

我怀疑的是,如果我输入填充数组的密码,程序运行正常。 但是,如果我输入密码,例如“apple25”,我认为它将数组中的空格计为字符,甚至将“apple25”声明为有效密码。 我该如何防止这种情况发生? 它是否将字符串终止符计为char ? 因为即使“AAPPLLEE2”也是有效密码。 #include #include #include #include #define TRUE 1 #define FALSE 0 int main() { char arr[10]; printf(“Enter a password. \n”); scanf(“%s”,arr ); // printf(arr); char ch; int i; int alp=0, dig=0, c=0; for (i=0; i=1&&dig>=1&&c>=1) { printf(“Valid Password”); } else{ printf(“Invalid Password”); } return 0; }

validationdo-while循环C中的输入类型

基本上,我需要确保输入是一个整数 ,如下所示: do { printf(“Enter > “); scanf(“%d”, &integer); } while (/* user entered a char instead of an int */); 我尝试了各种方法,但是当我尝试输入char时,它总是以运行时错误或无限循环结束。 我知道fflush(stdin)是一个未定义的行为,最好不要将它包含在我的代码中以防止任何错误加上它由于某些原因在VS2015中不再起作用 。 下面的代码是我尝试过的方法: typedef enum {false, true} bool; int ipt; char c; bool wrong_ipt; do { c = ‘\0’; printf(“Enter > “); scanf(“%d%c”, &ipt, &c); //infinite loop occurs while a char has been […]

数学’pow’函数gcc的SSE向量化

我试图对包含在数学库中使用’pow’函数的循环进行矢量化。 我知道英特尔编译器支持使用’pow’作为sse指令 – 但我似乎无法使用gcc运行(我认为)。 这是我正在使用的情况: int main(){ int i=0; float a[256], b[256]; float x= 2.3; for (i =0 ; i<256; i++){ a[i]=1.5; } for (i=0; i<256; i++){ b[i]=pow(a[i],x); } for (i=0; i<256; i++){ b[i]=a[i]*a[i]; } return 0; } 我正在编译以下内容: gcc -O3 -Wall -ftree-vectorize -msse2 -ftree-vectorizer-verbose=5 code.c -o runthis 这是在使用gcc版本4.2的os X 10.5.8上(我也使用了4.5,并且无法判断它是否已经向量化了 – 因为它根本没有输出任何内容)。 似乎没有一个循环矢量化 – […]

为什么不在循环外部和内部声明具有相同名称的变量会产生错误?

{ int i; for(i=0;i<5;i++) { int i=10; printf("%d",i); } } 我有两个问题 为什么我没有重新申报错误? 为什么输出将是10 5次而不是10 1次?

如何减少NCurses C应用程序中的输入延迟

当我运行我的应用程序时,我得到了大量的输入延迟。 更多细节:当我按下“w”,“a”,“s”,“d”(我指定的输入键)时,对象会移动,但是在释放按键后它会继续移动很长一段时间。 源代码如下,但是代码的一小部分已经被删除以缩短问题,但是如果下面的源代码没有编译,我将所有代码都放在github上。 https://github.com/TreeStain/DodgeLinuxGame.git谢谢您的时间。 -Tristan dodge.c: #define ASPECT_RATIO_X 2 #define ASPECT_RATIO_Y 1 #define FRAMES_PER_SECOND 60 #include #include “object.h” #include “render.h” int main() { initscr(); cbreak(); noecho(); nodelay(stdscr, 1); object objs[1]; object colObj; colObj.x = 10; colObj.y = 6; colObj.w = 2; colObj.h = 2; colObj.sprite = ‘*’; colObj.ySpeed = 1; colObj.xSpeed = 1; objs[0] = […]

有没有办法在循环中打印struct成员而不命名C中的每个成员?

每次我想要打印或初始化结构时,我都必须通过每个成员使代码不能重复使用。 有没有办法在for,while或do while循环中执行此操作? typedef struct Client { char* Name; char* Address; char* Password; char* Privilege; }Client;

OpenMP令人尴尬地并行循环,没有加速

我有一个非常简单的并行for循环,它只是将零写入整数数组。 但事实certificate线程越多,循环越慢。 我认为这是由于一些缓存抖动所以我玩了调度,块大小, __restrict__ ,在并行块内嵌套并行,并刷新。 然后我注意到读取数组进行缩减也比较慢。 这应该显然非常简单,并且应该几乎线性加速。 我在这里想念的是什么? 完整代码: #include #include #include #include void tic(), toc(); int main(int argc, const char *argv[]) { const int COUNT = 100; const size_t sz = 250000 * 200; std::vector vec(sz, 1); std::cout << "max threads: " << omp_get_max_threads()<< std::endl; std::cout << "serial reduction" << std::endl; tic(); for(int c […]

使用嵌套循环在C中打印星形(’*’)钻石?

当用户为钻石输入5时,我希望能够打印出这样的钻石。 但也适用于任何奇数且大于0的值。 我有一个代码,用于为用户输入5制作钻石,但不适用于所有奇数输入.. half = (size/2)+1; for (a=1; a <= half ; a++) /*top to mid row of diamond*/ { for (b=a; b<half;b++) { printf(" "); } for (c= size -2* a; c <= half; c++) { printf("*"); } printf("\n"); } for (a = 1; a 0;b–) { printf(” “); } for (c = size-2*a; […]