C语言——while及数组的介绍与简单运用

while与for的区别

for(int i = 0;i < 10;i++){
} 有循环控制变量 关心次数
while()不关心次数

用while循环实现for循环

int i = 0;
while(i<10){
i++;
}
do{

}while(i<3);

练习

要求
输入一个十进制数,将它分别转化为二进制,八进制,十六进制

思路 1.了解进制之间的转化
2.先写出最简单的二进制
3.最后处理16进制中10~16的特殊情况

下面以二进制为例展示代码和结果

#include <stdio.h>
int main(){
    int num;
    printf("请输入数字:");
    scanf("%d",&num);
    
    int jinzhi = 2;
    int wei = 1;
    long long sum = 0;
    while(1){
        //取余 10100 
        // 00101
        // 1*0 + 10*0 + 100*1 + 1000*0 + 10000*1
        // 10100
        int yu = num % jinzhi;
        num = num / jinzhi;
        
        sum = sum + yu * wei;
        wei = wei * 10 ;
        
        if(num < jinzhi){
            sum = sum + num * wei;
            break;
        } 
    } 
    printf("%d\n", sum);
    return 0;
}

运行结果
![7VI9GEU(@OHAV@)$JJE%@Q.png

数组

为什么要数组
特点:存储多个同种类型的数据

1.数组的定义
【】表示一个数组:必须明确知道数组元素的个数
系统为数组分配内存的时候必须确定
int array【】 = {1,2,3,4};
int array【4】;
int array 【】 = {1,2};

2.数组的内存
数组名就是首地址
int array【4】;
array【0】=*(array + 0)
array【1】=*(array + 1)
array【2】=*(array + 2)
array【4】=10;不能越界

3.数组的访问:下标 0—n-1
array[0] = 2
array[1] = 23
赋值

下面我们还是做一个程序练习一下
要求
生成随机数
然后将不重复的随机数输入数组

思路

1.生成数组
2.产生随机数的同时去比较是否重复
3.如果重复就重新再产生一个随机数
4.如果不重复就保存

#include <stdio.h>
#include <stdlib.h> 
#include <time.h>
int main(){
    int array[4] = {};
    
    srand(time(NULL));


    for (int i = 0; i < 4; i++){
        int temp = rand() % 4;
        
        if (i == 0){
            array[i] = temp;
        }else{
            int j = 0; 
            for(; j <i; j++){
                if(array[j] == temp;
                    printf("重复了:%d\n",temp); 
                    break; 
                } 
            }
            if (j == i){
                
                array[i] = temp; 
            }else{
                
                i--; 
            }
        } 
    }
    for (int i = 0; i< 4; i++){
        printf("%d ", array[i]);
    }
    
    return 0;
}
B$_3IV~$F8$S}75PY(0LVOI.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是数组? 数组简单来说就是将所有的数据排成一排存放在系统分配的一个内存块上,通过使用特定元素的索引作为数组的下...
    启明_b56f阅读 954评论 0 0
  • 一、框架 1、Mac系统及常用工具、进制;C数据类型、常量变量、运算符、表达式、格式化输入输出 2、关系运算符、逻...
    师景福阅读 734评论 0 2
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,411评论 0 2
  • 目的:掌握用C语言编程的基本技能内容:1.全局变量与局部变量   2.switch语句   3.for循环   4...
    CyraChen阅读 320评论 0 1
  • 1:敢于放下,就能重生 20世纪70年代,英特尔是半导存储器芯片市场 上的当然领导者。虽然英特尔公司输赢参半,但是...
    祎祎阅读 308评论 0 0