前言:更多内容请看总纲《嵌入式C/C++学习路》
从键盘得到一个数字比如345321,把其中每个数位的数字拆开并按顺序打印在屏幕上,打印的时候相邻数字使用空格分开,数字的数位不超过5个。
#include<stdio.h>
int main(){
int arr[5],num = 0,num1 = 0; //定义一个数组存放输入的数字
printf("请输入一个数字:\n");
scanf("%d",&num1);
for (num = 0;num <= 4 ;num++){ // 初始化数组的元素都为 -1
arr[num] = -1;
}
for (num = 4;num >= 0;num--){ // 不断取最后一个数存入数组
arr[num] = num1 % 10;
num1 /= 10;
if (!num1){ // 如果num1等于0(即数字被拆分完了),则退出循环
break;
}
}
printf("拆分如下:\n");
for (num = 0;num <=4;num++){
if (arr[num] >= 0){
printf("%d ",arr[num]);
}
}
printf("\n");
return 0;
}
生成一个彩票号码(7个数字),避免出现重复数字
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int lottery[7] = {} , num = 0,num1 = 0; // num用于记录得到了多少个有效数字
srand(time(0)); // 用当前时间来设定rand函数所用的随机数产生演算法的种子值
do
{
lottery[num] = rand() % 36 + 1; // 生成新数字
for(num1 = 0;num1 <= num - 1;num1++){
if (lottery[num1] == lottery[num]) //如果新数字已经存在数组中,退出for循环,重新生成数字
{
break;
}
}
if (!(num1 <= num - 1)) // 如果for循环正常结束,即新数字有效
{
num++;
}
} while (num < 7);
printf("彩票数字为:\n");
for (num = 0;num <= 6; num++)
{
printf("%d",lottery[num]);
}
printf("\n");
return 0;
}