Защита от дурака при вводе элементов массива - C (СИ)
Формулировка задачи:
помоги, пожалуйста, написать защиту от дурака(после 38 и после 42 строк)
#include <stdio.h> #include <conio.h> #define N 100 void my_printf(int *m,int n) { int i; for(i=0;i<n;i++) printf("%d",m[i]); return; } int poisk1(int *m,int n) { int i,b=0,j=-1; for(i=0;i<n;i++) if(m[i]<i) { b++; if(b==1) j=i; } return j; } int poisk2(int *m,int n,int j) { int i,r=-1; for(i=j+1;i<n;i++) if(m[i]%2!=0) { r=i; } return r; } void main() { int M[N],n,i,kol=0,sum=0,j=-1,r=-1,b=0; printf("Vvedite razmer massiva\n"); scanf("%d",&n); printf("Vvedite massiv\n"); fflush(stdin); for(i=0;i<n;i++) scanf("%d",&M[i]); my_printf(M,n); j=poisk1(M,n); printf("\nindecs1=%d",j); r=poisk2(M,n,j); printf("\nindecs2=%d",r); if(j==-1) { sum=0; kol=0; } else { if(r>0) for(i=j;i<=r;i++) { sum+=M[i]; kol++; } else for(i=j;i<n;i++) { sum+=M[i]; kol++; } } printf("\nObschaya summa elementov zadannoy posledovatelnosti=%d\n",sum); printf("Kolichestvo elementov zadannoy posledovatelnosti=%d\n",kol); getch(); return; }
Решение задачи: «Защита от дурака при вводе элементов массива»
textual
Листинг программы
char s[8193],s2[8193]; int n; for(;;) { scanf("%s",s); n=atoi(s); itoa(n,s2,10); if(strcmp(s2,s)==0) break; }
Объяснение кода листинга программы
В этом коде используется цикл for(;;)
для выполнения повторяющегося блока кода. Блок кода внутри цикла включает следующие действия:
- Чтение строки из стандартного ввода с помощью функции scanf и сохранение ее в массиве s.
- Преобразование строки в целое число с помощью функции atoi и сохранение результата в переменной n.
- Преобразование числа обратно в строку с помощью функции itoa и сохранение результата в массиве s2.
- Сравнение строк s2 и s с помощью функции strcmp. Если они равны, то цикл завершается. В общем, этот код предназначен для чтения строки, преобразования ее в число, преобразования числа обратно в строку и проверки, совпадает ли эта строка с исходной. Это может быть использовано для защиты от ввода некорректных данных, например, в программе, которая принимает числа от пользователя. Если введенная строка не является числом или не совпадает с исходной строкой после преобразования, код будет повторять запрос на ввод, пока не будет введено корректное значение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д