#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
int a[3][4], i, j, found;
printf("請輸入12個數字\n");
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++)
{
scanf("%d", &a[i][j]);
}
found = 0;
for (i = 0; i < 3 && !found; i++)
for (j = 0; j < 4 && !found; j++)
{
if (a[i][j] < 0)
found = 1;
}
if (!found)
{
printf("沒有找到\n");
}
else
{
printf("minus number num[%d][%d]:%d\n", i-1, j-1, a[i-1][j-1]);
}
system("pause");
}
這里的founf ,!found這個回圈條件到底是個啥啊?到底是怎么回圈的,怎么才符合?大神求求詳細解釋下
uj5u.com熱心網友回復:
!found 就是 found為0值取反 為非 零值條件就成立, 也就是 說found為0值這個 !found 條件就成立為 真uj5u.com熱心網友回復:
把每個數都檢查,直到遇見了負數就跳出回圈了,那么為什么遇到了負數,就不符合!found了?為啥正數就符合!found?uj5u.com熱心網友回復:
if (a[i][j] < 0)found = 1; ---------------- 遇到了負數, found置 1, !found為0,條件就為假, 就不回圈了
uj5u.com熱心網友回復:
多謝你了,老哥!再幫我解釋解釋為啥 輸入的是正數就符合!foung,就一直回圈下去了。
uj5u.com熱心網友回復:
found = 0; 一開始found置0, !found取反就為1, 也就是真, 條件為真回圈一直到完結。除非遇到負數, found置1,!found取反為0, 條件為假,回圈中斷
uj5u.com熱心網友回復:
哇!謝謝老哥,我是一個初學者,自學的,謝謝你為我解釋可以加個VX或者QQ嗎?嘿嘿,想共同學習下。
EMM,最后一個疑惑,
為啥遇到負數 found就等于1了?真的最后一個了,太麻煩你了。
uj5u.com熱心網友回復:
if (a[i][j] < 0)found = 1; ------------ 這里遇到負數不就置1了嗎
uj5u.com熱心網友回復:
found=0!found=1執行if
found!=0
!found=0不執行if
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37785.html
標籤:新手樂園
上一篇:問下各位c++大佬
