2024年1月28日发(作者:)
C语言入门训练代码(10条)
1. 输入n,计算出n的阶乘。
#include
int main()
{
int n, i;
long long ret = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i=1; i<=n; ++i)
{
ret *= i;
}
printf("%d的阶乘是%lldn", n, ret);
return 0;
}
2. 编写一个程序,将一个字符串中的字母全部转换为大写字母。
#include
#include
#define MAX_LEN 100
int main()
{
char str[MAX_LEN + 1];
int i;
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin);
for (i=0; str[i]!='0'; ++i)
{
str[i] = toupper(str[i]);
}
printf("转换后的字符串是:%s", str);
return 0;
}
3. 输入两个正整数m和n,求它们的最大公约数和最小公倍数。
#include
int main()
{
int m, n, i, gcd, lcm;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
for (i=1; i<=m && i<=n; ++i)
{
if (m%i==0 && n%i==0)
{
gcd = i;
}
}
lcm = m*n / gcd;
printf("%d和%d的最大公约数是%d,最小公倍数是%dn", m, n, gcd, lcm);
return 0;
}
4. 输入一组数据,计算它们的平均值以及大于平均值的个数。
#include
#define MAX_LEN 100
int main()
{
int arr[MAX_LEN], sum=0, count=0, i, len;
float avg;
printf("请输入一组数据(以-1结束):n");
for (i=0; i { scanf("%d", &arr[i]); if (arr[i]==-1) break; sum += arr[i]; } len = i; avg = (float)sum / len; for (i=0; i { if (arr[i] > avg) { count++; } } printf("平均值为%.2f,大于平均值的数的个数为%dn", avg, count); return 0; } 5. 编写一个程序,将一个三位数反转后输出。 #include int main() { int num, r; printf("请输入一个三位数:"); scanf("%d", &num); r = (num%10)*100 + ((num/10)%10)*10 + num/100; printf("反转后的数为:%dn", r); return 0; } 6. 输入一个日期,计算出是这一年的第几天。 #include int main() { int year, month, day, i, days=0; int month_day[] = {31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入一个日期(格式:年 月 日):"); scanf("%d %d %d", &year, &month, &day); if (year%4==0 && year%100!=0 || year%400==0) { month_day[1] = 29; } for (i=0; i { days += month_day[i]; } days += day; printf("%d年%d月%d日是这一年的第%d天n", year, month, day, days); return 0; } 7. 输入一个字符串,判断它是否是回文字符串。 #include #include #define MAX_LEN 100 int main() { char str[MAX_LEN + 1]; int i, j, is_palindrome=1; printf("请输入一个字符串:"); fgets(str, MAX_LEN, stdin); for (i=0, j=strlen(str)-1; i { if (str[i] != str[j]) { is_palindrome = 0; break; } } if (is_palindrome) { printf("是回文字符串n"); } else { printf("不是回文字符串n"); } return 0; } 8. 输入一个正整数n,输出n行杨辉三角。 #include int main() { int n, i, j; int arr[100][100] = {{0}}; printf("请输入一个正整数:"); scanf("%d", &n); for (i=0; i { for (j=0; j<=i; ++j) { if (j==0 || j==i) { arr[i][j] = 1; } else { arr[i][j] = arr[i-1][j] + arr[i-1][j-1]; } printf("%4d", arr[i][j]); } printf("n"); } return 0; } 9. 输入两个字符串s和t,判断t是否是s的子串。 #include #include #define MAX_LEN 100 int main() { char s[MAX_LEN + 1], t[MAX_LEN + 1]; int i, j, len_s, len_t, is_substr=0; printf("请输入两个字符串s和t(以空格分隔): scanf("%s%s", s, t); len_s = strlen(s); len_t = strlen(t); for (i=0; i { for (j=0; j "); { if (s[i+j] != t[j]) { break; } } if (j == len_t) { is_substr = 1; break; } } if (is_substr) { printf("t是s的子串n"); } else { printf("t不是s的子串n"); } return 0; } 10. 统计一篇英文文章中每个单词出现的次数。 #include #include #include #define MAX_LEN 1000 int main() { char str[MAX_LEN + 1], word[MAX_LEN + 1]; int len_str, len_word, i, j, k, count; int start, end; int is_delimiter; printf("请输入一篇英文文章:n"); fgets(str, MAX_LEN, stdin); len_str = strlen(str) - 1; i = 0; while (i < len_str) { while (i < len_str && !isalpha(str[i])) { ++i; } start = i; while (i < len_str && isalpha(str[i])) { ++i; } end = i; if (end > start) { len_word = end - start; strncpy(word, str+start, len_word); word[len_word] = '0'; count = 1; for (j=0; j { if (isalpha(str[j])) { k = j; is_delimiter = 1; while (isalpha(str[k])) { ++k; } if (k < start) { is_delimiter = 0; break; } } } if (is_delimiter) { for (j=0; j { if (tolower(str[j]) == tolower(word[0])) { k = j + 1; is_delimiter = 1; for (int l=1; l { if (tolower(str[k]) != tolower(word[l])) { is_delimiter = 0; break; } ++k; } if (is_delimiter && k < end) { is_delimiter = 0; break; } } } if (is_delimiter) { for (j=end; j { if (isalpha(str[j])) { k = j; is_delimiter = 1; while (isalpha(str[k])) { ++k; } if (k > end) { is_delimiter = 0; break; } } } if (is_delimiter) { for (j=0; j { if (tolower(str[j]) == tolower(word[0])) { k = j + 1; is_delimiter = 1; for (int l=1; l tolower(word[l])) { if (tolower(str[k]) != { is_delimiter = 0; break; } ++k; } if (is_delimiter && k < end) { is_delimiter = 0; break; } if (is_delimiter && k == end) { ++count; } } } } } } printf("%s: %dn", word, count); } } return 0; }
本文发布于:2024-01-28 06:33:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063947965489.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |