fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6. char input[20];
  7. long n;
  8. int result;
  9. char *endptr;
  10. long sum = 0;
  11. long count = 0;
  12. char str[100] = "";
  13.  
  14. printf("请输入一个正整数: ");
  15. fgets(input, sizeof(input), stdin);
  16.  
  17. // 检查输入是否为空
  18. if (input[0] == '\n') { // 如果输入的第一字符是换行符,说明输入为空
  19. printf("\nError! No input provided.\n");
  20. printf("Press any key to continue...\n");
  21. return 1;
  22. }
  23.  
  24. // 使用 sscanf 直接从输入字符串中提取第一个整数
  25. result = sscanf(input, "%ld%n", &n, &endptr);
  26.  
  27. if (result == 1 && endptr >= input && *endptr == '\0') {
  28. // 输入是一个有效的正整数
  29. if (n > 0) {
  30. for (long i = 1; i <= n; i++) {
  31. if (i % 5 == 0 && i % 7 != 0) {
  32. sum += i;
  33. count++;
  34. if (count == 1) {
  35. sprintf(str, "%ld", i); // 第一个数
  36. } else {
  37. strcat(str, " + "); // 添加分隔符
  38. sprintf(str + strlen(str), "%ld", i); // 追加下一个数
  39. }
  40. }
  41. }
  42.  
  43. printf("\n符合条件的数列和为: %s = %ld\n", str, sum);
  44. printf("Press any key to continue...\n");
  45. } else {
  46. printf("\nError! Input is not a positive integer.\n");
  47. printf("Press any key to continue...\n");
  48. }
  49. } else {
  50. printf("\nError! Invalid input format.\n");
  51. printf("Press any key to continue...\n");
  52. }
  53.  
  54. return 0;
  55. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
请输入一个正整数: 
Error! Invalid input format.
Press any key to continue...