鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[知识点备忘] S1E14:for语句和循环嵌套

[复制链接]
发表于 2020-4-21 12:32:21 | 显示全部楼层
for 语句里不能定义两种类型变量?按照甲鱼的示范程序我这编译偶问题!!!

Sonny@bogon ShareL]$ gcc -std=c99 work14-0.c
work14-0.c: In function ‘main’:
work14-0.c:6: error: expected identifier or ‘(’ before ‘int’
work14-0.c:6: error: ‘j’ undeclared (first use in this function)
work14-0.c:6: error: (Each undeclared identifier is reported only once
work14-0.c:6: error: for each function it appears in.)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 12:34:11 | 显示全部楼层
for (int i=0, j=10; i > j; i++, j--)这样才能过
for (int i=0, int j=10; i > j; i++, j--)这样就报错????
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-8 11:30:52 | 显示全部楼层
========== 怎样留言才会更加有意义 ===== 这是个问题 =====
常用套路
_Bool flag=1;//标志
while(表达式)//也可是for
  if(表达式)
     ……
if(flag)
    ……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 11:33:22 | 显示全部楼层
肖-肖 发表于 2020-5-8 11:30
========== 怎样留言才会更加有意义 ===== 这是个问题 =====
常用套路
_Bool flag=1;//标志
  1. //判断一个数是否为素数
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     int i,num;
  6.     _Bool flag=1;//素数判定标志

  7.     printf("请输入一个整数: ");
  8.     scanf("%d",&num);

  9.     for(i=2;i<num/2;i++)
  10.     {
  11.         if(num%i==0)//说明能被i整除
  12.         {
  13.             flag=0;//不是素数->吧flag设置成0
  14.         }
  15.     }
  16.     if(flag)
  17.     {//能运行flag->1->是素数
  18.         printf("%d是一个素数!\n",num);
  19.     }
  20.     else
  21.     {
  22.         printf("%d不是一个素数!\n",num);
  23.     }
  24.     return 0;
  25. }
  26. #endif

  27. #if(1)
  28. //打印9*9乘法表
  29. #include<stdio.h>
  30. void main()
  31. {
  32.     for(int i=1;i<=9;i++)
  33.     {
  34.         //int cj;
  35.         for(int j=1;j<=i;j++)
  36.         {//%-2d是什么意思
  37.             printf("%d * %d = %d\t",i,j,i*j);
  38.         }
  39.         printf("\n");//putchar('\n');
  40.     }
  41. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-8 11:39:17 | 显示全部楼层
Sonny.next 发表于 2020-4-21 12:34
for (int i=0, j=10; i > j; i++, j--)这样才能过
for (int i=0, int j=10; i > j; i++, j--)这样就报错 ...

你定义变量的时候会写:int i=0,int j=0吗?
不一个道理吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 20:06:04 | 显示全部楼层

请问一下,第一个for语句 “i < num/2”  是什么意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-7 00:00:54 | 显示全部楼层

吃饭,睡觉,学编程^o^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-2 19:58:58 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-15 23:39:59 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-21 16:59:56 | 显示全部楼层
#include <stdio.h>

int main()
{
        int i,j;
        for (i=0,j=10; i < j; i++, j--)
        {
                printf("%d\n", i);
        }
printf("%d%d\n",i,j);//这里最后为什么打印出来的是55而不是46?
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 23:15:34 | 显示全部楼层
求问%d*%d = %-2d 中%-2d 为什么要加-2,我直接%d 也是能成功的。求解答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-21 20:50:46 | 显示全部楼层
for(i = 0 ; i <= n ; i++ )
(素数的求法有很多,这里用比较朴素暴力的方式)

for(;;)代表while(1){},永远为真的死循环

表达式1和3可以是一个简单的表达式,也可以是逗号表达式

分支结构决定了哪些语句会运行,哪些 语句不会运行,循环结构决定了那些语句 会被运行多少次

从内到外(攘外欲先安内)
14try2.png
14try1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-29 17:19:47 | 显示全部楼层
已看完
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-16 21:56:02 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-22 17:56:12 | 显示全部楼层
朝闻道夕死可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-31 10:56:09 | 显示全部楼层
那个素数的程序,好像 4  在我打的程序里面,他显示的是素数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-25 18:14:03 | 显示全部楼层
为什么九九乘法表那个代码,我的终端会直接弹出 10 * 11 = 110啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-25 18:17:12 | 显示全部楼层
han487965 发表于 2021-4-25 18:14
为什么九九乘法表那个代码,我的终端会直接弹出 10 * 11 = 110啊。。。

试了一下,for语句之下只会打印最终结果怎么破
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-5 17:54:21 | 显示全部楼层
懂了懂了   ----   谢谢小甲鱼老师
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-5 13:38:31 | 显示全部楼层
for 循环应该不能 int i=0, int j=10 吧
应该是: for(int i=0, j=10; i < j; i++, j--){}
这样才对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 08:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表