Tag: 循环

循环固定大小的数组而不在C中定义其大小

一些示例代码来启动问题: #define FOO_COUNT 5 static const char *foo[] = { “123”, “456”, “789”, “987”, “654” }; 通常迭代的方式,如一个例子,如下: int i = FOO_COUNT; while (–i >= 0) { printf(“%s\n”, foo[i]); 无论如何,如果没有明确地将人数统计为数字5,是否仍然可以做到这一点? 在将来,我可能会添加/删除元素,忘记更新数组的大小,从而破坏我的应用程序。

使用8位无符号整数变量作为计数器循环超过256个值

所以我只想用连续数字0-255来填充缓冲区。 我对此并没有多想,最终陷入了无限循环。 uint8_t i; uint8_t txbuf[256]; for (i=0; i<256; i++) { txbuf[i] = i; } 问题是i永远不会是256,因为它在255之后翻到零。 我的问题是,有没有办法做这个循环而不会使i达到16位值? 注意:我知道我可以将循环更改为i<255并为最终位置添加另一条线,但我正在试图找出一种更好看的方式。

在C中获得2到100之间的所有素数

这是我的代码,它只能输出素数。 #include int prime(int n){ int j; for (j=2;j<=n/2;j++){ if((n%j)==0){ return 0; } else{ return 1; } } } void main(){ int i,p; for (i=2;i<=100;i++){ p=prime(i); if(p==1){ printf("%d \n",i); } } } 结果是2,3,7,9,11,13,15 …. 不是2,3,5,7,11,13 …. 我做错了什么?

无法输入while语句

可能重复: 未签名和签名的比较 unsigned int和signed char比较 当我尝试输入这个while语句时,我有一个奇怪的行为: unsigned u = 0; int i = -2; while(i < u) { // Do something i++; } 但它永远不会进入,即使我设置了一个断点i = -2和u = 0 。 我究竟做错了什么? 我怎么能解决这个问题?

编译器不会在scanf()上停止输入

这是一个小C代码 #include int main() { char ch=’Y’; while(ch==’Y’) { printf(“\nEnter new value for Y “); scanf(“%c”,&ch); if(ch==’Y’ || ch==’y’) // do some work printf(“Y was selected\n”); } printf(“exiting main”); return 0; } 我第一次输入’Y’作为输入(没有qoutes),循环返回true并第二次进入内部,但这次它没有在scanf()上停止用户输入。(请执行输入为为了清晰起见,’Y’。 输出如下所示: 如此处所示,编译器第二次没有停止输入。 这背后的原因是什么? 提前致谢 !

在C中随机播放一个int数组 – 没有while循环

我想要对一个整数数组进行随机排序,数组已经排序,其大小为n,值为1 – n。 我只是想避免使用while循环以确保rand()不会给我相同的索引。 代码看起来像这样的somthin: void shuffleArr(int* arr, size_t n) { int newIndx = 0; int i = 0; for(; i < n – 1; ++i) { while((newIndx = i + rand() % (n – i)) == i); swap(i, newIndx, arr); } } for循环一直持续到n-1,因此例如在最后一次运行中它有50/50的机会等于i。 我想避免这个想法。

随机漫步10x10arrays

我有一个问题找出这个问题的算法,已经尝试了几天没有成功,这里是我试图获得的图片: http://sofzh.miximages.com/c/X70nX.png 这是我的代码尝试了许多不同的解决方案,但总是陷入同一点:(对不起混合语言,重要的部分是英语) ps我不应该使用函数来解决这个问题只有循环和数组。 经过多次修复后编辑它可以行走但很少崩溃任何想法吗? #include #include #include int main(void){ char box[10][10]; int i,j; int move,row,col; char letter=’A’; srand(time(NULL)); printf(“\n\tSTART\n\n”); for(i=0;i < 10 ;i++)/* righe */ { for(j=0;j < 10;j++) /* colonne */ { box[i][j] = '.'; /* assegno . a tutti gli elementi dell array */ if(j == 9) printf("%c%c\n", box[i][j]); /* giustifico ogni […]

如何在C中使用带有用户输入的循环函数?

这是我创建的平均程序。 #include #include int main() { float f1,f2,f3; /* Program to calculate averages. */ /*Asks for the numbers.*/ printf(” Please enter three numbers.\n”); printf (“\t” “First number please.\n”); scanf(“%f”, &f1); printf (“\t” “Second number please.\n”); scanf (“%f”, &f2); printf(“\t” “Third number please.\n”); scanf(“%f”, &f3); /* Now it averages it.*/ printf(” Thank you, wait one.\n”); printf(” […]

为什么“for(i = 100; i <= 0; –i)”永远循环?

unsigned int i; for (i = 100; i <= 0; –i) printf("%d\n",i);

什么是嵌入式C编程语言中的“超级循环”?

嵌入式C编程语言中的Super Loop是什么?