Tag: for loop

使用scanf扫描一行中的多个输入

我正在尝试扫描单行输入并将其存储在结构中。 我不确定我是否存储错误或者我打错了。 我不确定如何将scanf与for循环一起使用,因为我从来没有这样做过,更不用说C喜欢覆盖东西了。 所以我不确定如何处理这个问题。 这是我放在一起的东西,但是当我打印时,我得到了垃圾数字。 我本打算使用指针,但我的教授不会让我们使用它。 这就是我遇到麻烦的原因。 EDITED #include #include #include #define MAX 3 #define MAXTRIP 6 struct stop { float cost; float time; }; struct trip { char Dest_letter; int stop_num; struct stop leg[MAX]; }; int main(void) { int trip_num, index, i; struct trip travel[MAXTRIP]; printf(“Enter number of trips: “); scanf(“%d”, &trip_num); printf(“Please enter […]

for循环中是否允许多个条件?

运行以下代码时不会出现任何错误或警告 #include int main(){ int i, j; int p = 0, q = 2; for(i = 0, j = 0; i < p, j < q; i++, j++){ printf("HelloWorld\n"); } return 0; } 然而, Let Us C(Yashwant Kanetkar)一书中说,for循环的测试表达式中只允许有一个表达式(参见本书第115页)。 我不确定标准。 for循环的测试表达式中是否允许多个表达式? 编辑:我当然可以加入这两个表达式但是当我在这个网站上找到上面的代码时,我感到很沮丧。 我的问题是这个有效的C代码是不是?

这个C for-loop如何打印文本艺术金字塔?

这是我第一次在这里发帖,希望我做得对。 基本上我需要帮助试图弄清楚我用C编写的一些代码。程序的目的是询问用户0到23之间的数字。然后,根据用户输入的数字,半金字塔将打印(就像旧学校马里奥游戏中的那些)。 我是编程的初学者,仅凭运气得到了我的代码的答案,但现在我无法真正告诉我的for循环如何提供金字塔形象。 #include int main ( void ) { int user_i; printf ( “Hello there and welcome to the pyramid creator program\n” ); printf ( “Please enter a non negative INTEGER from 0 to 23\n” ); scanf ( “%d”, &user_i ); while ( user_i 23 ) { scanf ( “%d”, &user_i ); } for […]

使用for循环创建链接列表

这是我的结构 struct ListItem{ int data; struct ListItem *next; }; 假设链表的第一个节点将有data = 0,我想写一个for循环,创建一个大小为5的链表,但我不知道如何工作 我尝试了以下内容 int main(int argc, char* argv[]){ struct ListItem a; a.data = 0; for (int i = 1; i next; } } 但结果是a.data = 0和a.next-> data = 4

C中的for循环和getchar()

为什么代码会在偶数时间直接获取空数据? 我不知道发生了什么事。 非常感谢你。 #include #pragma warning(disable : 4996) void main() { int f, a = 10, b = 20; for (int i = 0; i < 5; i++) { char ch; ch = getchar(); printf("ch = %c\n", ch); switch (ch) { case '+': f = a + b; printf("f = %d\n", f); break; case '−': […]

OpenMP – 为什么比较次数会减少?

我有以下算法: int hostMatch(long *comparisons) { int i = -1; int lastI = textLength-patternLength; *comparisons=0; #pragma omp parallel for schedule(static, 1) num_threads(1) for (int k = 0; k <= lastI; k++) { int j; for (j = 0; j i) i = k; } return i; } 更改num_threads我得到以下比较数的结果: 01 = 9949051000 02 = 4992868032 04 = […]

什么(;;)和while(); 在C中的意思

我正在看一些示例代码,我看到有人这样做了 for (;;) { // … } 这相当于while(1) { } ? 而什么while(condition); 做? 我没有理由把’;’放在后面 而不是{}

将C“FOR”循环转换为Delphi

我正在尝试将FOR循环从C转换为Delphi,但我有些疑惑: 我在C中知道这段代码: for (i = 0; i size; i++) { //… } 在Delphi中是这样的: for i := 0 to mb.size do begin //… end; 但这个C代码怎么样: for (i = 0; i size; i+= mb->data_size) { //… } 可能看看Delphi? ?

将复合语句放在for循环的条件中

我有一个人为的例子来演示特定function的请求 – 我想知道是否有人有一个聪明的技巧来做到这一点。 以下是一个经常遇到的问题: “打印一系列数字;在它们之间打印一个空格,并在末尾打一个回车(但没有空格)。 显而易见的解决方案是使最后(或第一)语句成为特例。 我正在考虑如何使这更有效/更紧凑。 蛮力: for(ii=0; ii<4; ii++) { printf("%d", ii); if(ii<3) printf(" "); else printf("\n"); } 请注意,这涉及对条件的两次评估。 展开: for(ii=0; ii<3; ii++) { printf("%d ", ii): } printf("%d\n", ii); 利用ii在离开循环时最后一次增加的事实。 我想要的function ii = 0; while(1) { printf(“%d”, ii); ii++; if(ii<3) printf(" "); else {printf("\n"); break;} } 我想知道是否有可能在for语句中使这项工作成功。 我修改了一下,发现以下工作(有点令我惊讶……它确实需要括号,而且?:和运算符之间完全不可读 – 请参阅http://codepad.org/wFa2YwCg ): for(ii=0; […]

是否可以在C / C ++的for循环的增量部分中执行多个操作?

是否可以在C / C ++的for循环的增量部分中执行多个操作? 像这样的东西: int a = 0, b = 0, c = 5; for(; a < c; increase a by 1 and increase b by 2)