c语言如何随机输入一串数字储存在一个数组中
时间: 2024-09-24 12:06:25 浏览: 50
在C语言中,你可以使用`<stdlib.h>`库中的`srand()`和`rand()`函数来生成随机数,并结合数组下标来存储随机数字。下面是一个简单的例子,展示如何随机填充一个整型数组:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 需要包含这个头文件来设置随机种子
#define ARRAY_SIZE 10
int random_array[ARRAY_SIZE];
void initialize_random_array() {
srand(time(0)); // 设置随机种子,通常使用当前时间,保证每次程序运行得到的随机数不同
for (int i = 0; i < ARRAY_SIZE; i++) {
random_array[i] = rand() % 100; // 随机数范围在0到99之间
printf("Element %d: %d\n", i, random_array[i]);
}
}
int main() {
initialize_random_array();
return 0;
}
```
在这个例子中,`srand(time(0))`用于初始化随机数发生器,`rand() % 100`生成的是0到99之间的随机整数,然后将它赋值给数组元素。
相关问题
c语言随机产生字符串
在C语言中,可以使用随机函数和字符数组来生成随机字符串。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generateRandomString(char *str, int length) {
const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i;
for (i = 0; i < length; i++) {
int index = rand() % (sizeof(charset) - 1);
str[i] = charset[index];
}
str[length] = '\0';
}
int main() {
srand(time(NULL)); // 使用当前时间作为随机数种子
int length = 10; // 字符串长度
char randomString[length + 1]; // +1 是为了存储字符串结束符'\0'
generateRandomString(randomString, length);
printf("随机生成的字符串:%s\n", randomString);
return 0;
}
```
运行上述代码,将会输出一个长度为10的随机字符串,例如:"AbcDeFGhiJ"。你可以根据需要修改字符串长度和字符集来生成不同的随机字符串。
用c语言随机输入两串字符串,找出两串字符串之间所有相同的字符并按照ASCII码大小输出并统计重复字符的个数. 要求: (1)可输入小写,大写,数字 (2)遇到重复的字符只输出一次并只算一个个数 (3)尽可能完成按照ASCII码大小输出
在C语言中,你可以使用`scanf`函数获取用户输入的两个字符串,然后遍历这两个字符串,比较每个字符是否相等。如果找到相同的字符,可以将其添加到一个哈希表(如数组或链表结构)中,并记录计数。同时,为了保持ASCII值的顺序,可以在遍历时使用`if`语句检查当前字符是否小于前一个已发现的相同字符,如果是,则继续添加。
下面是一个简单的示例代码实现这个功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CHAR 256
// 定义一个字符计数数组,用于存储相同字符及其数量
int char_count[MAX_CHAR] = {0};
char compare_chars(char str1[], char str2[]) {
int i, j;
for (i = 0, j = 0; str1[i] && str2[j]; ++i, ++j) {
if (str1[i] == str2[j]) {
// 如果字符相同并且还未出现过,更新计数
if (!char_count[str1[i]]) {
char_count[str1[i]]++;
printf("%d: '%c'\n", str1[i], str1[i]);
}
} else if (str1[i] < str2[j]) {
// 如果当前字符比之前的小,停止查找
break;
}
}
return j;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin);
str1[strlen(str1) - 1] = '\0'; // 去除fgets留下的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
// 比较两个字符串,并按ASCII码排序
int common_chars = compare_chars(str1, str2);
printf("\n共有 %d 个重复字符.\n", common_chars);
return 0;
}
```
在这个代码中,我们假设用户输入的字符串长度不会超过100个字符,并且只考虑ASCII码范围内的字符。如果你需要更复杂的功能或处理更大的数据量,可能需要调整数据结构或算法。
阅读全文