Протестируйте код - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вообщем такая проблема.. на

24

строке, когда заходит в цикл for(..);, то выводится 2 раза printf("Want to sort row #%d in descending order (y/n): "..);

С чем это связано?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    int n;
    do{
        system("cls");
        printf("Enter the size of the matrix: ");
        scanf("%d", &n);
    }while( n < 1 );
    double arr[n][n];
    size_t i, j, z;
    srand(time(0));
    for( i = 0; i < n; i++ ){
        for( j = 0; j < n; j++ ){
            arr[i][j] = (-200 + rand()%400) + (rand()%10 * 0.1);
            printf(" %6.1lf", arr[i][j]);
        }
        printf("\r\n");
    }
    system("pause");
    for( i = 0; i < n; i++ ){
        char ans;
        do{
            //system("cls");
            printf("Want to sort row #%d in descending order (y/n): ", ((int)i+1));
            scanf("%c", &ans);
        }while( ans == 'y' || ans == 'Y' );
        if( ans == 'y' || ans == 'Y' ){
            for( j = 0; j < n-1; j++ ){
                for( z = j+1; z < n; z++ ){
                    if( arr[i][j] < arr[i][z] ){
                        double tmp_arr = arr[i][j];
                        arr[i][j] = arr[i][z];
                        arr[i][z] = tmp_arr;
                    }
                }
            }
        }
    }
    printf("Sorting finished!\r\n");
    system("pause");
    system("cls");
    printf("Result Matrix:\r\n\n");
    for( i = 0; i < n; i++ ){
        for( j = 0; j < n; j++ )
            printf(" %6.1lf", arr[i][j]);
        printf("\r\n");
    }
    system("pause");
    return 0;
}

Решение задачи: «Протестируйте код»

textual
Листинг программы
getchar();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5