1.编写程序,在键盘上输入一个n值,输出n以内所有个位-|||-数为3,但不能被3整除的数并求出它们的和。-|||-要求:-|||-输入:100-|||-输出:13,23,23,53,73,83, sum=288用C语言程序编写
时间: 2024-10-24 20:10:58 浏览: 67
当然可以。这是一个简单的C语言程序,用于满足您的要求。我们将使用for循环遍历从1到用户输入的n之间的所有数字,然后检查每个数字是否满足条件(个位数是3且不能被3整除),如果符合条件,则将其添加到总和中。
```c
#include <stdio.h>
int main() {
int n, num, sum = 0;
// 输入n值
printf("请输入一个数值(n): ");
scanf("%d", &n);
for (num = 1; num <= n; num++) { // 遍历1到n
if (num % 10 == 3 && num % 3 != 0) { // 检查个位是否为3且不能被3整除
printf("%d, ", num); // 输出符合条件的数
sum += num; // 累加总和
}
}
printf("\n和(sum)为: %d\n", sum); // 输出最终的和
return 0;
}
```
当你运行这个程序时,按照提示输入100,它会输出13、23、23、53、73、83,并显示它们的和为288。
相关问题
编写程序,实现以下功能。 1. 编写程序,打印基本ASCII码表(可印刷32到126)。 2. 输出200以内的素数 。 3. 打印9*9乘法表。 4. 由键盘任意输入10个数据,分别统计其中的正数个数、正数之和、负数个数、负数之和。 5. 由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。 6. 求级数e = 1+1/1! +1/2! +1/3!+……1/n!+…,要求最后一项小于10-6结束。 7. 利用级数展开式计算求cos(x) 的近似值(精度为10-6)。 8. 36人一次搬完36块砖,男搬4,女搬2,两个小孩抬一块,要一次搬完。问:男、女、小孩各多少? 9. 找出1000以内的完数,所谓完数是指该数的各因子之和等于该数,如:6=1+2+3。 10. 编写程序,打印以下图案。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *,用C语言逐个实现
### 打印 ASCII 码表
以下是 C 语言实现打印 ASCII 码表的代码示例:
```c
#include <stdio.h>
int main() {
int i;
for (i = 0; i <= 255; i++) {
printf("ASCII value of %d is '%c'\n", i, i);
}
return 0;
}
```
---
### 输出素数
以下是一个优化后的素数输出程序,基于 `sqrt()` 函数[^3]:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n = 100, i, j, flag;
for (i = 2; i <= n; i++) {
flag = 1;
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) {
printf("%d ", i);
}
}
return 0;
}
```
---
### 打印乘法表
根据用户需求动态调整行数的乘法表代码如下[^2]:
```c
#include <stdio.h>
void print_multiplication_table(int lines) {
int i, j;
for (i = 1; i <= lines; i++) {
for (j = 1; j <= i; j++) {
if (lines >= 10 && lines < 20) {
printf("%d*%d=%-4d", j, i, i * j);
} else if (lines >= 20) {
printf("%d*%d=%-6d", j, i, i * j);
} else {
printf("%d*%d=%-2d", j, i, i * j);
}
}
printf("\n");
}
}
int main() {
int lines;
printf("Enter the number of rows: ");
scanf("%d", &lines);
print_multiplication_table(lines);
return 0;
}
```
---
### 数据统计
以下是对一组整数进行简单统计数据(最大值、最小值、平均值)的代码:
```c
#include <stdio.h>
int main() {
int numbers[10], max, min, sum = 0, i;
float avg;
printf("Enter 10 integers:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
sum += numbers[i];
}
max = min = numbers[0];
for (i = 1; i < 10; i++) {
if (max < numbers[i]) max = numbers[i];
if (min > numbers[i]) min = numbers[i];
}
avg = (float)sum / 10;
printf("Max: %d\nMin: %d\nAverage: %.2f\n", max, min, avg);
return 0;
}
```
---
### 数字倒置
以下是从键盘输入一个正整数并将其反转的代码:
```c
#include <stdio.h>
int reverse_number(int num) {
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return reversed;
}
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
printf("Reversed Number: %d\n", reverse_number(num));
return 0;
}
```
---
### 计算 e 的近似值
通过泰勒展开公式计算自然常数 \(e\) 的近似值[^4]:
```c
#include <stdio.h>
double calculate_e(int terms) {
double sum = 0.0, temp = 1.0;
int i;
for (i = 1; i <= terms; i++) {
temp *= i;
sum += 1.0 / temp;
}
return sum;
}
int main() {
int terms;
printf("Enter the number of terms to approximate e: ");
scanf("%d", &terms);
printf("Approximation of e with %d terms: %.8lf\n", terms, calculate_e(terms));
return 0;
}
```
---
### cos(x) 近似值
使用泰勒级数计算 \(\cos(x)\) 的近似值:
```c
#include <stdio.h>
#include <math.h>
double cosine_approx(double x, int terms) {
double term = 1.0, result = 0.0;
int sign = 1;
for (int i = 0; i < terms; i++) {
result += sign * term;
sign = -sign;
term *= (x * x) / ((2 * i + 2) * (2 * i + 3));
}
return result;
}
int main() {
double angle;
int terms;
printf("Enter angle in radians and number of terms: ");
scanf("%lf%d", &angle, &terms);
printf("Cosine approximation: %.8lf\n", cosine_approx(angle, terms));
return 0;
}
```
---
### 解方程分配问题
假设问题是线性方程组求解,以下是一个简单的高斯消元法实现:
```c
#include <stdio.h>
#define N 3
void gauss_jordan(float matrix[N][N + 1], float solution[N]) {
int i, j, k;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (i != j) {
float factor = matrix[j][i] / matrix[i][i];
for (k = 0; k <= N; k++) {
matrix[j][k] -= factor * matrix[i][k];
}
}
}
}
for (i = 0; i < N; i++) {
solution[i] = matrix[i][N] / matrix[i][i];
}
}
int main() {
float matrix[N][N + 1] = {{2, 1, -1, 8},
{-3, -1, 2, -11},
{-2, 1, 2, -3}};
float solutions[N];
gauss_jordan(matrix, solutions);
printf("Solutions: x=%.2f, y=%.2f, z=%.2f\n", solutions[0], solutions[1], solutions[2]);
return 0;
}
```
---
### 寻找完数
以下是一个寻找指定范围内的完全数的程序:
```c
#include <stdio.h>
void find_perfect_numbers(int start, int end) {
int i, j, sum;
for (i = start; i <= end; i++) {
sum = 0;
for (j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d is a perfect number.\n", i);
}
}
}
int main() {
int lower, upper;
printf("Enter range (lower and upper): ");
scanf("%d%d", &lower, &upper);
find_perfect_numbers(lower, upper);
return 0;
}
```
---
### 打印特定图案
以下是一个打印三角形图案的示例:
```c
#include <stdio.h>
void print_pattern(int height) {
for (int i = 1; i <= height; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
}
int main() {
int h;
printf("Enter pattern height: ");
scanf("%d", &h);
print_pattern(h);
return 0;
}
```
相关问题
1、编写程序,从键盘输入三角形的三条边,判断是否能构成三角形,如果能,则利用海伦公式计算并输出三角形的面积。海伦公式为: 其中a、b、c为三角形的三条边。 如果不能,则输出“无法构成三角形”。 要求:面积结果保留两位小数,在程序中加入异常处理模块,如果输入的不是数字,通过异常处理捕捉,要求用户重新输入。 2、回文数判断。设n是一个任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。请编写程序判断这个数字是不是回文数。 3、给定某数字a(1≤a≤9)以及非负整数n(0≤n≤100000),求数列之和sum=a+aa+aaa+…+aa…a(n个a).例如a=2,n=3时,sum=2+22+222=246. 4、编写程序,打印“水仙花数”。所谓“水仙花数”是指一个N位正整数(N≥3),其各位数字N次幂的和等于该数字本身。例如,153(153 = 13 + 53 + 33)是一个三位水仙花数。请打印所有三位水仙花数和四位水仙花数。 5、编写程序,要求用户从键盘输入某年的年份,若是闰年,则显示“闰年”;否则显示“平年”。 注:闰年是公历中的名词。闰年分为普通闰年和世纪闰年。普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年(如2004年就是闰年);世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)。 6、编写程序,输出300以内的所有素数,并输出这些素数的个数。
### **题目1** - 判断三角形及计算面积
以下是Python实现:
```python
import math
def is_triangle(a, b, c):
return a + b > c and a + c > b and b + c > a
while True:
try:
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if not (isinstance(a, (int, float)) and isinstance(b, (int, float)) and isinstance(c, (int, float))):
raise ValueError
if is_triangle(a, b, c):
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print(f"可以构成三角形,面积为{area:.2f}")
else:
print("无法构成三角形")
break
except Exception as e:
print("输入错误,请输入有效的数字!")
```
---
### **题目2** - 回文数判断
以下是Python实现:
```python
def is_palindrome(num):
str_num = str(num)
return str_num == str_num[::-1]
num = int(input("请输入一个自然数:"))
if is_palindrome(num):
print(f"{num}是回文数")
else:
print(f"{num}不是回文数")
```
---
### **题目3** - 数列之和
以下是Python实现:
```python
def sum_of_sequence(a, n):
total_sum = 0
current_term = ""
for _ in range(n):
current_term += str(a)
total_sum += int(current_term)
return total_sum
try:
a = int(input("请输入单个数字a(1≤a≤9):"))
n = int(input("请输入非负整数n(0≤n≤100000):"))
result = sum_of_sequence(a, n)
print(f"结果为 {result}")
except ValueError:
print("输入有误,请重新运行程序并输入正确的值!")
```
---
### **题目4** - 打印水仙花数
以下是Python实现:
```python
# 输出所有三位水仙花数
for num in range(100, 1000):
digits = [int(d) for d in str(num)]
if num == sum([d ** 3 for d in digits]):
print(num)
print("\n四位水仙花数:")
# 输出所有四位水仙花数
for num in range(1000, 10000):
digits = [int(d) for d in str(num)]
if num == sum([d ** 4 for d in digits]):
print(num)
```
---
### **题目5** - 判断闰年
以下是Python实现:
```python
year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year} 年是闰年")
else:
print(f"{year} 年是平年")
```
---
### **题目6** - 筛选素数
以下是Python实现:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
primes = []
count = 0
for i in range(2, 301):
if is_prime(i):
primes.append(i)
count += 1
print("300以内的素数:", primes)
print("素数总数:", count)
```
---
###
阅读全文
相关推荐

















